From 86d4d6669bb21fd220f6a2d0d0b2ad0e27954ed7 Mon Sep 17 00:00:00 2001 From: Rafael Reggiani Manzo Date: Tue, 23 Oct 2012 15:21:17 -0200 Subject: [PATCH] Assets moved from the public and adapted to Rails 3 standard --- app/assets/images/balloon-footer.png | Bin 0 -> 1953 bytes app/assets/images/balloon-header.png | Bin 0 -> 1037 bytes app/assets/images/balloon-middle.png | Bin 0 -> 267 bytes app/assets/images/beta.gif | Bin 0 -> 60 bytes app/assets/images/black-alpha-pixel-5.png | Bin 0 -> 178 bytes app/assets/images/black-alpha-pixel.png | Bin 0 -> 178 bytes app/assets/images/blocks/1.png | Bin 0 -> 1079 bytes app/assets/images/blocks/1.svg | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/blocks/2.png | Bin 0 -> 1350 bytes app/assets/images/blocks/2.svg | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/blocks/3.png | Bin 0 -> 1383 bytes app/assets/images/blocks/3.svg | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/bolota.gif | Bin 0 -> 70 bytes app/assets/images/borda-esq-aba-azul.gif | Bin 0 -> 179 bytes app/assets/images/bt-bookmark.gif | Bin 0 -> 1287 bytes app/assets/images/calendar_date_select/calendar.gif | Bin 0 -> 581 bytes app/assets/images/calendar_date_select/calendar.png | Bin 0 -> 1780 bytes app/assets/images/catalog-expanders.png | Bin 0 -> 777 bytes app/assets/images/ccc.gif | Bin 0 -> 149 bytes app/assets/images/colorbox/border.png | Bin 0 -> 112 bytes app/assets/images/colorbox/controls.png | Bin 0 -> 1249 bytes app/assets/images/colorbox/ie6/borderBottomCenter.png | Bin 0 -> 111 bytes app/assets/images/colorbox/ie6/borderBottomLeft.png | Bin 0 -> 215 bytes app/assets/images/colorbox/ie6/borderBottomRight.png | Bin 0 -> 217 bytes app/assets/images/colorbox/ie6/borderMiddleLeft.png | Bin 0 -> 108 bytes app/assets/images/colorbox/ie6/borderMiddleRight.png | Bin 0 -> 108 bytes app/assets/images/colorbox/ie6/borderTopCenter.png | Bin 0 -> 111 bytes app/assets/images/colorbox/ie6/borderTopLeft.png | Bin 0 -> 216 bytes app/assets/images/colorbox/ie6/borderTopRight.png | Bin 0 -> 214 bytes app/assets/images/colorbox/loading.gif | Bin 0 -> 9427 bytes app/assets/images/colorbox/loading_background.png | Bin 0 -> 157 bytes app/assets/images/colorbox/overlay.png | Bin 0 -> 182 bytes app/assets/images/colorpicker/apply.png | Bin 0 -> 955 bytes app/assets/images/colorpicker/gradiente.png | Bin 0 -> 595 bytes app/assets/images/colorpicker/indic.gif | Bin 0 -> 86 bytes app/assets/images/colorpicker/overlay.png | Bin 0 -> 10355 bytes app/assets/images/colorpicker/select.gif | Bin 0 -> 78 bytes app/assets/images/comment-owner-bg-L.png | Bin 0 -> 188 bytes app/assets/images/comment-owner-bg-N.png | Bin 0 -> 167 bytes app/assets/images/comment-owner-bg-NL.png | Bin 0 -> 255 bytes app/assets/images/comment-owner-bg-NO.png | Bin 0 -> 518 bytes app/assets/images/comment-owner-bg-O.png | Bin 0 -> 198 bytes app/assets/images/comment-owner-bg-S.png | Bin 0 -> 475 bytes app/assets/images/comment-owner-bg-SL.png | Bin 0 -> 259 bytes app/assets/images/comment-owner-bg-SO.png | Bin 0 -> 271 bytes app/assets/images/comment-reply-owner-bg.png | Bin 0 -> 279 bytes app/assets/images/control-panel/Makefile | 13 +++++++++++++ app/assets/images/control-panel/application-certificate.gif | Bin 0 -> 1802 bytes app/assets/images/control-panel/application-certificate.png | Bin 0 -> 3278 bytes app/assets/images/control-panel/application-certificate.svg | 443 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/control-panel/blocks.gif | Bin 0 -> 691 bytes app/assets/images/control-panel/blocks.png | Bin 0 -> 651 bytes app/assets/images/control-panel/blocks.svg | 334 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/control-panel/contact.gif | Bin 0 -> 1388 bytes app/assets/images/control-panel/contact.png | Bin 0 -> 2707 bytes app/assets/images/control-panel/contact.svg | 795 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/control-panel/edit-profile-enterprise.gif | Bin 0 -> 2126 bytes app/assets/images/control-panel/edit-profile-enterprise.png | Bin 0 -> 3969 bytes app/assets/images/control-panel/edit-profile-enterprise.svg | 549 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/control-panel/edit-profile-group.gif | Bin 0 -> 2093 bytes app/assets/images/control-panel/edit-profile-group.png | Bin 0 -> 4065 bytes app/assets/images/control-panel/edit-profile-group.svg | 675 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/control-panel/edit-profile.gif | Bin 0 -> 1809 bytes app/assets/images/control-panel/edit-profile.png | Bin 0 -> 3251 bytes app/assets/images/control-panel/edit-profile.svg | 590 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/control-panel/editpaste.gif | Bin 0 -> 1365 bytes app/assets/images/control-panel/editpaste.png | Bin 0 -> 1765 bytes app/assets/images/control-panel/editpaste.svg | 1 + app/assets/images/control-panel/email.gif | Bin 0 -> 1873 bytes app/assets/images/control-panel/email.png | Bin 0 -> 2500 bytes app/assets/images/control-panel/email.svg | 1 + app/assets/images/control-panel/emblem-favorite.gif | Bin 0 -> 1054 bytes app/assets/images/control-panel/emblem-favorite.png | Bin 0 -> 2394 bytes app/assets/images/control-panel/emblem-favorite.svg | 1 + app/assets/images/control-panel/header-footer.gif | Bin 0 -> 899 bytes app/assets/images/control-panel/header-footer.png | Bin 0 -> 773 bytes app/assets/images/control-panel/header-footer.svg | 325 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/control-panel/important.gif | Bin 0 -> 1070 bytes app/assets/images/control-panel/important.png | Bin 0 -> 2311 bytes app/assets/images/control-panel/important.svg | 1 + app/assets/images/control-panel/mail-mark-junk.png | Bin 0 -> 4035 bytes app/assets/images/control-panel/mail-mark-junk.svg | 504 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/control-panel/package.gif | Bin 0 -> 1567 bytes app/assets/images/control-panel/package.png | Bin 0 -> 2053 bytes app/assets/images/control-panel/package.svg | 485 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/control-panel/password.gif | Bin 0 -> 1652 bytes app/assets/images/control-panel/password.png | Bin 0 -> 2000 bytes app/assets/images/control-panel/password.svg | 1 + app/assets/images/control-panel/preferences-desktop-wallpaper.gif | Bin 0 -> 2086 bytes app/assets/images/control-panel/preferences-desktop-wallpaper.png | Bin 0 -> 3253 bytes app/assets/images/control-panel/preferences-desktop-wallpaper.svg | 1 + app/assets/images/control-panel/set-geolocation.gif | Bin 0 -> 2219 bytes app/assets/images/control-panel/set-geolocation.png | Bin 0 -> 4305 bytes app/assets/images/control-panel/stop.gif | Bin 0 -> 1454 bytes app/assets/images/control-panel/stop.png | Bin 0 -> 3136 bytes app/assets/images/control-panel/stop.svg | 336 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/control-panel/system-file-manager.gif | Bin 0 -> 1095 bytes app/assets/images/control-panel/system-file-manager.png | Bin 0 -> 1403 bytes app/assets/images/control-panel/system-file-manager.svg | 1 + app/assets/images/control-panel/system-users.gif | Bin 0 -> 1925 bytes app/assets/images/control-panel/system-users.png | Bin 0 -> 3562 bytes app/assets/images/control-panel/system-users.svg | 1 + app/assets/images/control-panel/text-editor-disabled.gif | Bin 0 -> 1878 bytes app/assets/images/control-panel/text-editor-disabled.png | 1 + app/assets/images/control-panel/text-editor-disabled.svg | 1 + app/assets/images/control-panel/text-editor.gif | Bin 0 -> 1833 bytes app/assets/images/control-panel/text-editor.png | Bin 0 -> 2565 bytes app/assets/images/control-panel/text-editor.svg | 1 + app/assets/images/doc/activation-conlusion.en.png | Bin 0 -> 9668 bytes app/assets/images/doc/activation-conlusion.pt.png | Bin 0 -> 11603 bytes app/assets/images/doc/activation-question.en.png | Bin 0 -> 21710 bytes app/assets/images/doc/activation-question.pt.png | Bin 0 -> 23004 bytes app/assets/images/doc/add-member-enterprise.en.png | Bin 0 -> 19239 bytes app/assets/images/doc/add-member-enterprise.pt.png | Bin 0 -> 20421 bytes app/assets/images/doc/admin-panel-export-users.en.png | Bin 0 -> 9744 bytes app/assets/images/doc/admin-panel-export-users.pt.png | Bin 0 -> 11070 bytes app/assets/images/doc/admin-panel-manage-users.en.png | Bin 0 -> 21666 bytes app/assets/images/doc/admin-panel-manage-users.pt.png | Bin 0 -> 24760 bytes app/assets/images/doc/admin-panel-send-email.en.png | Bin 0 -> 9528 bytes app/assets/images/doc/admin-panel-send-email.pt.png | Bin 0 -> 10689 bytes app/assets/images/doc/admin-send-email.en.png | Bin 0 -> 17002 bytes app/assets/images/doc/admin-send-email.pt.png | Bin 0 -> 16471 bytes app/assets/images/doc/advanced-article-archives-list.en.png | Bin 0 -> 13905 bytes app/assets/images/doc/advanced-article-archives-list.pt.png | Bin 0 -> 16153 bytes app/assets/images/doc/advanced-article-created-link.en.png | Bin 0 -> 16076 bytes app/assets/images/doc/advanced-article-created-link.pt.png | Bin 0 -> 16314 bytes app/assets/images/doc/advanced-article-created-object.en.png | Bin 0 -> 15823 bytes app/assets/images/doc/advanced-article-created-object.pt.png | Bin 0 -> 16983 bytes app/assets/images/doc/advanced-article-insert-html.en.png | Bin 0 -> 15547 bytes app/assets/images/doc/advanced-article-insert-html.pt.png | Bin 0 -> 16798 bytes app/assets/images/doc/advanced-article-insert-links.en.png | Bin 0 -> 14301 bytes app/assets/images/doc/advanced-article-insert-links.pt.png | Bin 0 -> 14654 bytes app/assets/images/doc/advanced-article-popup-insert-html.en.png | Bin 0 -> 25518 bytes app/assets/images/doc/advanced-article-popup-insert-html.pt.png | Bin 0 -> 25989 bytes app/assets/images/doc/advanced-article-popup-insert-link.en.png | Bin 0 -> 10870 bytes app/assets/images/doc/advanced-article-popup-insert-link.pt.png | Bin 0 -> 13102 bytes app/assets/images/doc/advanced-article-upload-images.en.png | Bin 0 -> 17880 bytes app/assets/images/doc/advanced-article-upload-images.pt.png | Bin 0 -> 18266 bytes app/assets/images/doc/article-bigger-spread-view.en.png | Bin 0 -> 55019 bytes app/assets/images/doc/article-bigger-spread-view.pt.png | Bin 0 -> 59572 bytes app/assets/images/doc/article-block.en.png | Bin 0 -> 8130 bytes app/assets/images/doc/article-block.pt.png | Bin 0 -> 8124 bytes app/assets/images/doc/article-creation-categorization.en.png | Bin 0 -> 7513 bytes app/assets/images/doc/article-creation-categorization.pt.png | Bin 0 -> 10382 bytes app/assets/images/doc/article-creation-category-choosen.en.png | Bin 0 -> 12410 bytes app/assets/images/doc/article-creation-category-choosen.pt.png | Bin 0 -> 30006 bytes app/assets/images/doc/article-creation-options.en.png | Bin 0 -> 11411 bytes app/assets/images/doc/article-creation-options.pt.png | Bin 0 -> 13693 bytes app/assets/images/doc/article-creation-tags.en.png | Bin 0 -> 3616 bytes app/assets/images/doc/article-creation-tags.pt.png | Bin 0 -> 3015 bytes app/assets/images/doc/article-spread-view.en.png | Bin 0 -> 15515 bytes app/assets/images/doc/article-spread-view.pt.png | Bin 0 -> 16449 bytes app/assets/images/doc/article-spread.en.png | Bin 0 -> 18541 bytes app/assets/images/doc/article-spread.pt.png | Bin 0 -> 18062 bytes app/assets/images/doc/article-text-lead.en.png | Bin 0 -> 14196 bytes app/assets/images/doc/article-text-lead.pt.png | Bin 0 -> 14203 bytes app/assets/images/doc/article-text.en.png | Bin 0 -> 21005 bytes app/assets/images/doc/article-text.pt.png | Bin 0 -> 19784 bytes app/assets/images/doc/block-actions.en.png | Bin 0 -> 3671 bytes app/assets/images/doc/blog-buttons.en.png | Bin 0 -> 6425 bytes app/assets/images/doc/blog-buttons.pt.png | Bin 0 -> 6622 bytes app/assets/images/doc/box-register.en.png | Bin 0 -> 33104 bytes app/assets/images/doc/box-register.pt.png | Bin 0 -> 33025 bytes app/assets/images/doc/change-password.en.png | Bin 0 -> 14187 bytes app/assets/images/doc/change-password.pt.png | Bin 0 -> 11155 bytes app/assets/images/doc/changing-role-enterprise-member.en.png | Bin 0 -> 10882 bytes app/assets/images/doc/changing-role-enterprise-member.pt.png | Bin 0 -> 11035 bytes app/assets/images/doc/closed-comment-box.en.png | Bin 0 -> 14601 bytes app/assets/images/doc/closed-comment-box.pt.png | Bin 0 -> 15648 bytes app/assets/images/doc/cms-article-icons.en.png | Bin 0 -> 3019 bytes app/assets/images/doc/cms-article-icons.pt.png | Bin 0 -> 3019 bytes app/assets/images/doc/cms-article-types.en.png | Bin 0 -> 22860 bytes app/assets/images/doc/cms-article-types.pt.png | Bin 0 -> 20287 bytes app/assets/images/doc/cms-blog-creation.en.png | Bin 0 -> 33909 bytes app/assets/images/doc/cms-blog-creation.pt.png | Bin 0 -> 34335 bytes app/assets/images/doc/cms-blog-public-visualization.en.png | Bin 0 -> 30103 bytes app/assets/images/doc/cms-blog-public-visualization.pt.png | Bin 0 -> 31206 bytes app/assets/images/doc/cms-folder-icons.en.png | Bin 0 -> 2430 bytes app/assets/images/doc/cms-folder-icons.pt.png | Bin 0 -> 2430 bytes app/assets/images/doc/cms-gallery-public-visualization.en.png | Bin 0 -> 29716 bytes app/assets/images/doc/cms-gallery-public-visualization.pt.png | Bin 0 -> 30670 bytes app/assets/images/doc/cms-new-article.en.png | Bin 0 -> 29802 bytes app/assets/images/doc/cms-new-article.pt.png | Bin 0 -> 30477 bytes app/assets/images/doc/cms-spread-article-icon.en.png | Bin 0 -> 24692 bytes app/assets/images/doc/cms-spread-article-icon.pt.png | Bin 0 -> 25228 bytes app/assets/images/doc/cms-uploading-files.en.png | Bin 0 -> 24675 bytes app/assets/images/doc/cms-uploading-files.pt.png | Bin 0 -> 26547 bytes app/assets/images/doc/cms.en.png | Bin 0 -> 28817 bytes app/assets/images/doc/cms.pt.png | Bin 0 -> 29618 bytes app/assets/images/doc/comments-of-logged-in-out-person.en.png | Bin 0 -> 35608 bytes app/assets/images/doc/comments-of-logged-in-out-person.pt.png | Bin 0 -> 36579 bytes app/assets/images/doc/comments.en.png | Bin 0 -> 14799 bytes app/assets/images/doc/comments.pt.png | Bin 0 -> 14654 bytes app/assets/images/doc/communities-block.en.png | Bin 0 -> 20837 bytes app/assets/images/doc/communities-block.pt.png | Bin 0 -> 21690 bytes app/assets/images/doc/communities-search-field.en.png | Bin 0 -> 48251 bytes app/assets/images/doc/communities-search-field.pt.png | Bin 0 -> 48736 bytes app/assets/images/doc/communities-search-results-with-example.en.png | Bin 0 -> 24421 bytes app/assets/images/doc/communities-search-results-with-example.pt.png | Bin 0 -> 24967 bytes app/assets/images/doc/community-balloon-closed-en.png | Bin 0 -> 8141 bytes app/assets/images/doc/community-balloon-closed.en.png | Bin 0 -> 8141 bytes app/assets/images/doc/community-balloon-en.png | Bin 0 -> 14787 bytes app/assets/images/doc/community-balloon-pt.png | Bin 0 -> 13267 bytes app/assets/images/doc/community-balloon.en.png | Bin 0 -> 14787 bytes app/assets/images/doc/community-balloon.pt.png | Bin 0 -> 13267 bytes app/assets/images/doc/community-control-panel-manage-members.en.png | Bin 0 -> 35386 bytes app/assets/images/doc/community-control-panel-manage-members.pt.png | Bin 0 -> 36923 bytes app/assets/images/doc/community-control-panel-with-approval-task.en.png | Bin 0 -> 11485 bytes app/assets/images/doc/community-control-panel-with-approval-task.pt.png | Bin 0 -> 12060 bytes app/assets/images/doc/community-control-panel-with-tasks.en.png | Bin 0 -> 11076 bytes app/assets/images/doc/community-control-panel-with-tasks.pt.png | Bin 0 -> 11569 bytes app/assets/images/doc/community-creation-form.en.png | Bin 0 -> 27317 bytes app/assets/images/doc/community-creation-form.pt.png | Bin 0 -> 28206 bytes app/assets/images/doc/community-creation.en.png | Bin 0 -> 27303 bytes app/assets/images/doc/community-creation.pt.png | Bin 0 -> 28294 bytes app/assets/images/doc/community-edit-sideboxes.en.png | Bin 0 -> 25732 bytes app/assets/images/doc/community-edit-sideboxes.pt.png | Bin 0 -> 75674 bytes app/assets/images/doc/community-image-block.en.png | Bin 0 -> 32805 bytes app/assets/images/doc/community-image-block.pt.png | Bin 0 -> 32812 bytes app/assets/images/doc/community-import-invitation-step-1.en.png | Bin 0 -> 20669 bytes app/assets/images/doc/community-import-invitation-step-1.pt.png | Bin 0 -> 22366 bytes app/assets/images/doc/community-import-invitation-step-2.en.png | Bin 0 -> 38317 bytes app/assets/images/doc/community-import-invitation-step-2.pt.png | Bin 0 -> 40928 bytes app/assets/images/doc/community-info-block.en.png | Bin 0 -> 21859 bytes app/assets/images/doc/community-info-block.pt.png | Bin 0 -> 21646 bytes app/assets/images/doc/community-manually-invitation-step-1.en.png | Bin 0 -> 15506 bytes app/assets/images/doc/community-manually-invitation-step-1.pt.png | Bin 0 -> 16035 bytes app/assets/images/doc/community-manually-invitation-step-2.en.png | Bin 0 -> 28713 bytes app/assets/images/doc/community-manually-invitation-step-2.pt.png | Bin 0 -> 31579 bytes app/assets/images/doc/community-members-with-invitation-button.en.png | Bin 0 -> 19444 bytes app/assets/images/doc/community-members-with-invitation-button.pt.png | Bin 0 -> 19963 bytes app/assets/images/doc/community-members-with-send-mail-button.en.png | Bin 0 -> 32532 bytes app/assets/images/doc/community-members-with-send-mail-button.pt.png | Bin 0 -> 32410 bytes app/assets/images/doc/community-network-block.en.png | Bin 0 -> 12335 bytes app/assets/images/doc/community-network-block.pt.png | Bin 0 -> 11689 bytes app/assets/images/doc/community-send-email.en.png | Bin 0 -> 17614 bytes app/assets/images/doc/community-send-email.pt.png | Bin 0 -> 17164 bytes app/assets/images/doc/community-sideboxes-add-block.en.png | Bin 0 -> 26709 bytes app/assets/images/doc/community-sideboxes-add-block.pt.png | Bin 0 -> 26765 bytes app/assets/images/doc/confirmation-adding-friend.en.png | Bin 0 -> 18134 bytes app/assets/images/doc/confirmation-adding-friend.pt.png | Bin 0 -> 18842 bytes app/assets/images/doc/contact-button.en.png | Bin 0 -> 21201 bytes app/assets/images/doc/contact-button.pt.png | Bin 0 -> 20538 bytes app/assets/images/doc/control-panel-change-password.en.png | Bin 0 -> 46830 bytes app/assets/images/doc/control-panel-change-password.pt.png | Bin 0 -> 48458 bytes app/assets/images/doc/control-panel-community-edit-appearance.en.png | Bin 0 -> 34489 bytes app/assets/images/doc/control-panel-community-edit-appearance.pt.png | Bin 0 -> 36486 bytes app/assets/images/doc/control-panel-community-edit-header-footer.en.png | Bin 0 -> 35200 bytes app/assets/images/doc/control-panel-community-edit-header-footer.pt.png | Bin 0 -> 36671 bytes app/assets/images/doc/control-panel-community-edit-sideboxes.en.png | Bin 0 -> 35075 bytes app/assets/images/doc/control-panel-community-edit-sideboxes.pt.png | Bin 0 -> 36930 bytes app/assets/images/doc/control-panel-content-management.en.png | Bin 0 -> 46256 bytes app/assets/images/doc/control-panel-content-management.pt.png | Bin 0 -> 48516 bytes app/assets/images/doc/control-panel-create-blog.en.png | Bin 0 -> 48046 bytes app/assets/images/doc/control-panel-create-blog.pt.png | Bin 0 -> 50685 bytes app/assets/images/doc/control-panel-disable-enterprise.en.png | Bin 0 -> 46970 bytes app/assets/images/doc/control-panel-disable-enterprise.pt.png | Bin 0 -> 50086 bytes app/assets/images/doc/control-panel-enterprise-edit-appearance.en.png | Bin 0 -> 47016 bytes app/assets/images/doc/control-panel-enterprise-edit-appearance.pt.png | Bin 0 -> 50141 bytes app/assets/images/doc/control-panel-enterprise-edit-header-footer.en.png | Bin 0 -> 47051 bytes app/assets/images/doc/control-panel-enterprise-edit-header-footer.pt.png | Bin 0 -> 50159 bytes app/assets/images/doc/control-panel-enterprise-edit-profile-info.en.png | Bin 0 -> 47613 bytes app/assets/images/doc/control-panel-enterprise-edit-profile-info.pt.png | Bin 0 -> 50666 bytes app/assets/images/doc/control-panel-enterprise-edit-sideboxes.en.png | Bin 0 -> 47121 bytes app/assets/images/doc/control-panel-enterprise-edit-sideboxes.pt.png | Bin 0 -> 50068 bytes app/assets/images/doc/control-panel-manage-groups.en.png | Bin 0 -> 48421 bytes app/assets/images/doc/control-panel-manage-groups.pt.png | Bin 0 -> 51220 bytes app/assets/images/doc/control-panel-manage-members.en.png | Bin 0 -> 46468 bytes app/assets/images/doc/control-panel-manage-members.pt.png | Bin 0 -> 49821 bytes app/assets/images/doc/control-panel-manage-products.en.png | Bin 0 -> 44508 bytes app/assets/images/doc/control-panel-manage-products.pt.png | Bin 0 -> 47986 bytes app/assets/images/doc/control-panel-menu.en.png | Bin 0 -> 10011 bytes app/assets/images/doc/control-panel-menu.pt.png | Bin 0 -> 10653 bytes app/assets/images/doc/control-panel-person-delete-profile.en.png | Bin 0 -> 27581 bytes app/assets/images/doc/control-panel-person-delete-profile.pt.png | Bin 0 -> 28366 bytes app/assets/images/doc/control-panel-person-edit-profile-info.en.png | Bin 0 -> 45688 bytes app/assets/images/doc/control-panel-person-edit-profile-info.pt.png | Bin 0 -> 48558 bytes app/assets/images/doc/control-panel-user-edit-appearance.en.png | Bin 0 -> 46608 bytes app/assets/images/doc/control-panel-user-edit-appearance.pt.png | Bin 0 -> 48644 bytes app/assets/images/doc/control-panel-user-edit-header-footer.en.png | Bin 0 -> 47314 bytes app/assets/images/doc/control-panel-user-edit-header-footer.pt.png | Bin 0 -> 48956 bytes app/assets/images/doc/control-panel-user-edit-sideboxes.en.png | Bin 0 -> 47107 bytes app/assets/images/doc/control-panel-user-edit-sideboxes.pt.png | Bin 0 -> 49118 bytes app/assets/images/doc/control-panel-with-tasks.en.png | Bin 0 -> 11384 bytes app/assets/images/doc/control-panel-with-tasks.pt.png | Bin 0 -> 11869 bytes app/assets/images/doc/disable-enterprise-confirmation.en.png | Bin 0 -> 12091 bytes app/assets/images/doc/disable-enterprise-confirmation.pt.png | Bin 0 -> 12253 bytes app/assets/images/doc/disabled-enterprise-block.en.png | Bin 0 -> 4585 bytes app/assets/images/doc/disabled-enterprise-block.pt.png | Bin 0 -> 4855 bytes app/assets/images/doc/edit-appearance.en.png | Bin 0 -> 13457 bytes app/assets/images/doc/edit-appearance.pt.png | Bin 0 -> 13351 bytes app/assets/images/doc/edit-block.en.png | Bin 0 -> 15391 bytes app/assets/images/doc/edit-block.pt.png | Bin 0 -> 15382 bytes app/assets/images/doc/edit-header-footer.en.png | Bin 0 -> 91368 bytes app/assets/images/doc/edit-header-footer.pt.png | Bin 0 -> 93776 bytes app/assets/images/doc/enterprise-activation-box.en.png | Bin 0 -> 54565 bytes app/assets/images/doc/enterprise-activation-box.pt.png | Bin 0 -> 54857 bytes app/assets/images/doc/enterprise-activation-terms.en.png | Bin 0 -> 8881 bytes app/assets/images/doc/enterprise-activation-terms.pt.png | Bin 0 -> 9370 bytes app/assets/images/doc/enterprise-edit-profile-categories.en.png | Bin 0 -> 11803 bytes app/assets/images/doc/enterprise-edit-profile-categories.pt.png | Bin 0 -> 11617 bytes app/assets/images/doc/enterprise-edit-profile-info-add-picture.en.png | Bin 0 -> 6203 bytes app/assets/images/doc/enterprise-edit-profile-info-add-picture.pt.png | Bin 0 -> 5276 bytes app/assets/images/doc/enterprise-edit-profile-info-change-picture.en.png | Bin 0 -> 18971 bytes app/assets/images/doc/enterprise-edit-profile-info-change-picture.pt.png | Bin 0 -> 18518 bytes app/assets/images/doc/enterprise-edit-profile-info-general-information.en.png | Bin 0 -> 15799 bytes app/assets/images/doc/enterprise-edit-profile-info-general-information.pt.png | Bin 0 -> 16759 bytes app/assets/images/doc/enterprise-edit-profile-info-moderation-options.en.png | Bin 0 -> 12904 bytes app/assets/images/doc/enterprise-edit-profile-info-moderation-options.pt.png | Bin 0 -> 12928 bytes app/assets/images/doc/enterprise-edit-profile-privacy-options.en.png | Bin 0 -> 13549 bytes app/assets/images/doc/enterprise-edit-profile-privacy-options.pt.png | Bin 0 -> 14679 bytes app/assets/images/doc/enterprise-edit-sideboxes.en.png | Bin 0 -> 97200 bytes app/assets/images/doc/enterprise-edit-sideboxes.pt.png | Bin 0 -> 100924 bytes app/assets/images/doc/enterprise-image-block.en.png | Bin 0 -> 34630 bytes app/assets/images/doc/enterprise-image-block.pt.png | Bin 0 -> 34545 bytes app/assets/images/doc/enterprise-info-block.en.png | Bin 0 -> 23777 bytes app/assets/images/doc/enterprise-info-block.pt.png | Bin 0 -> 23418 bytes app/assets/images/doc/enterprise-members-list.en.png | Bin 0 -> 11345 bytes app/assets/images/doc/enterprise-members-list.pt.png | Bin 0 -> 11722 bytes app/assets/images/doc/enterprise-network-block.en.png | Bin 0 -> 10300 bytes app/assets/images/doc/enterprise-network-block.pt.png | Bin 0 -> 9561 bytes app/assets/images/doc/enterprise-new-product-last-category.en.png | Bin 0 -> 33153 bytes app/assets/images/doc/enterprise-new-product-no-category.en.png | Bin 0 -> 21536 bytes app/assets/images/doc/enterprise-new-product-second-category.en.png | Bin 0 -> 26147 bytes app/assets/images/doc/enterprise-product-add-input-button.en.png | Bin 0 -> 14943 bytes app/assets/images/doc/enterprise-product-add-input-form.en.png | Bin 0 -> 29770 bytes app/assets/images/doc/enterprise-product-change-image-form.en.png | Bin 0 -> 30127 bytes app/assets/images/doc/enterprise-product-complete.en.png | Bin 0 -> 69736 bytes app/assets/images/doc/enterprise-product-edit-basic-info-form.en.png | Bin 0 -> 22449 bytes app/assets/images/doc/enterprise-product-edit-description-form.en.png | Bin 0 -> 14748 bytes app/assets/images/doc/enterprise-product-edit-name-form.en.png | Bin 0 -> 13528 bytes app/assets/images/doc/enterprise-product-list-new-product-button.en.png | Bin 0 -> 14467 bytes app/assets/images/doc/enterprise-product-list-new-product-button.pt.png | Bin 0 -> 14510 bytes app/assets/images/doc/enterprise-product.en.png | Bin 0 -> 33184 bytes app/assets/images/doc/enterprise-sideboxes-add-block.en.png | Bin 0 -> 26709 bytes app/assets/images/doc/enterprise-sideboxes-add-block.pt.png | Bin 0 -> 27731 bytes app/assets/images/doc/enterprises-block.en.png | Bin 0 -> 12515 bytes app/assets/images/doc/enterprises-block.pt.png | Bin 0 -> 12865 bytes app/assets/images/doc/enterprises-search-field.en.png | Bin 0 -> 22688 bytes app/assets/images/doc/enterprises-search-field.pt.png | Bin 0 -> 23334 bytes app/assets/images/doc/enterprises-search-results-with-example.en.png | Bin 0 -> 19992 bytes app/assets/images/doc/enterprises-search-results-with-example.pt.png | Bin 0 -> 23334 bytes app/assets/images/doc/environment-homepage-with-login-button.en.png | Bin 0 -> 32840 bytes app/assets/images/doc/environment-homepage-with-login-button.pt.png | Bin 0 -> 32733 bytes app/assets/images/doc/favorite-enterprises-block.en.png | Bin 0 -> 6526 bytes app/assets/images/doc/favorite-enterprises-block.pt.png | Bin 0 -> 7681 bytes app/assets/images/doc/feed-reader-block.en.png | Bin 0 -> 5793 bytes app/assets/images/doc/feed-reader-block.pt.png | Bin 0 -> 6023 bytes app/assets/images/doc/friends-block.en.png | Bin 0 -> 25813 bytes app/assets/images/doc/friends-block.pt.png | Bin 0 -> 26716 bytes app/assets/images/doc/gallery-buttons.en.png | Bin 0 -> 10195 bytes app/assets/images/doc/gallery-buttons.pt.png | Bin 0 -> 10804 bytes app/assets/images/doc/groups-list-with-create-community.en.png | Bin 0 -> 25000 bytes app/assets/images/doc/groups-list-with-create-community.pt.png | Bin 0 -> 25668 bytes app/assets/images/doc/groups-list-with-manage-community.en.png | Bin 0 -> 23532 bytes app/assets/images/doc/groups-list-with-manage-community.pt.png | Bin 0 -> 24020 bytes app/assets/images/doc/groups-list-with-manage-enterprise.en.png | Bin 0 -> 23307 bytes app/assets/images/doc/groups-list-with-manage-enterprise.pt.png | Bin 0 -> 23783 bytes app/assets/images/doc/join-community-confirmation.en.png | Bin 0 -> 12743 bytes app/assets/images/doc/join-community-confirmation.pt.png | Bin 0 -> 11879 bytes app/assets/images/doc/joining-community-button.en.png | Bin 0 -> 114913 bytes app/assets/images/doc/joining-community-button.pt.png | Bin 0 -> 120894 bytes app/assets/images/doc/links-block.en.png | Bin 0 -> 7097 bytes app/assets/images/doc/links-block.pt.png | Bin 0 -> 7081 bytes app/assets/images/doc/location-map-block.en.png | Bin 0 -> 31614 bytes app/assets/images/doc/location-map-block.pt.png | Bin 0 -> 31572 bytes app/assets/images/doc/manage-friends.en.png | Bin 0 -> 45780 bytes app/assets/images/doc/manage-friends.pt.png | Bin 0 -> 48003 bytes app/assets/images/doc/members-block.en.png | Bin 0 -> 14706 bytes app/assets/images/doc/members-block.pt.png | Bin 0 -> 15409 bytes app/assets/images/doc/menu-admin.en.png | Bin 0 -> 10712 bytes app/assets/images/doc/menu-admin.pt.png | Bin 0 -> 11265 bytes app/assets/images/doc/menu-communities.en.png | Bin 0 -> 12682 bytes app/assets/images/doc/menu-communities.pt.png | Bin 0 -> 12700 bytes app/assets/images/doc/menu-control-panel.en.png | Bin 0 -> 10011 bytes app/assets/images/doc/menu-control-panel.pt.png | Bin 0 -> 10653 bytes app/assets/images/doc/menu-enterprises.en.png | Bin 0 -> 12565 bytes app/assets/images/doc/menu-enterprises.pt.png | Bin 0 -> 12998 bytes app/assets/images/doc/menu-logout.en.png | Bin 0 -> 10904 bytes app/assets/images/doc/menu-logout.pt.png | Bin 0 -> 10711 bytes app/assets/images/doc/menu-more-active-communities.en.png | Bin 0 -> 22951 bytes app/assets/images/doc/menu-more-active-communities.pt.png | Bin 0 -> 25864 bytes app/assets/images/doc/menu-more-active-people.en.png | Bin 0 -> 31432 bytes app/assets/images/doc/menu-more-active-people.pt.png | Bin 0 -> 33021 bytes app/assets/images/doc/menu-more-popular-communities.en.png | Bin 0 -> 24080 bytes app/assets/images/doc/menu-more-popular-communities.pt.png | Bin 0 -> 25215 bytes app/assets/images/doc/menu-more-popular-people.en.png | Bin 0 -> 31182 bytes app/assets/images/doc/menu-more-popular-people.pt.png | Bin 0 -> 32053 bytes app/assets/images/doc/menu-more-recent-communities.en.png | Bin 0 -> 23113 bytes app/assets/images/doc/menu-more-recent-communities.pt.png | Bin 0 -> 26099 bytes app/assets/images/doc/menu-more-recent-people.en.png | Bin 0 -> 31527 bytes app/assets/images/doc/menu-more-recent-people.pt.png | Bin 0 -> 24386 bytes app/assets/images/doc/menu-people.en.png | Bin 0 -> 12138 bytes app/assets/images/doc/menu-people.pt.png | Bin 0 -> 12302 bytes app/assets/images/doc/menu-products.en.png | Bin 0 -> 12296 bytes app/assets/images/doc/menu-products.pt.png | Bin 0 -> 12276 bytes app/assets/images/doc/menu-search.en.png | Bin 0 -> 12002 bytes app/assets/images/doc/menu-search.pt.png | Bin 0 -> 11715 bytes app/assets/images/doc/more-active-communities-detail.en.png | Bin 0 -> 6686 bytes app/assets/images/doc/more-active-communities-detail.pt.png | Bin 0 -> 6731 bytes app/assets/images/doc/more-active-communities-with-example.en.png | Bin 0 -> 13981 bytes app/assets/images/doc/more-active-communities-with-example.pt.png | Bin 0 -> 13842 bytes app/assets/images/doc/more-active-communities.en.png | Bin 0 -> 26776 bytes app/assets/images/doc/more-active-communities.pt.png | Bin 0 -> 26558 bytes app/assets/images/doc/more-active-people-detail.en.png | Bin 0 -> 5141 bytes app/assets/images/doc/more-active-people-detail.pt.png | Bin 0 -> 5115 bytes app/assets/images/doc/more-active-people-with-example.en.png | Bin 0 -> 13773 bytes app/assets/images/doc/more-active-people-with-example.pt.png | Bin 0 -> 13700 bytes app/assets/images/doc/more-active-people.en.png | Bin 0 -> 29664 bytes app/assets/images/doc/more-active-people.pt.png | Bin 0 -> 29948 bytes app/assets/images/doc/more-popular-communities-detail.en.png | Bin 0 -> 6561 bytes app/assets/images/doc/more-popular-communities-detail.pt.png | Bin 0 -> 6677 bytes app/assets/images/doc/more-popular-communities-with-example.en.png | Bin 0 -> 13407 bytes app/assets/images/doc/more-popular-communities-with-example.pt.png | Bin 0 -> 13670 bytes app/assets/images/doc/more-popular-communities.en.png | Bin 0 -> 25275 bytes app/assets/images/doc/more-popular-communities.pt.png | Bin 0 -> 25189 bytes app/assets/images/doc/more-popular-people-detail.en.png | Bin 0 -> 5080 bytes app/assets/images/doc/more-popular-people-detail.pt.png | Bin 0 -> 5072 bytes app/assets/images/doc/more-popular-people-with-example.en.png | Bin 0 -> 12961 bytes app/assets/images/doc/more-popular-people-with-example.pt.png | Bin 0 -> 13413 bytes app/assets/images/doc/more-popular-people.en.png | Bin 0 -> 31706 bytes app/assets/images/doc/more-popular-people.pt.png | Bin 0 -> 32130 bytes app/assets/images/doc/more-recent-communities-detail.en.png | Bin 0 -> 7225 bytes app/assets/images/doc/more-recent-communities-detail.pt.png | Bin 0 -> 7355 bytes app/assets/images/doc/more-recent-communities-with-example.en.png | Bin 0 -> 14371 bytes app/assets/images/doc/more-recent-communities-with-example.pt.png | Bin 0 -> 14951 bytes app/assets/images/doc/more-recent-communities.en.png | Bin 0 -> 26855 bytes app/assets/images/doc/more-recent-communities.pt.png | Bin 0 -> 27718 bytes app/assets/images/doc/more-recent-people-detail.en.png | Bin 0 -> 5829 bytes app/assets/images/doc/more-recent-people-detail.pt.png | Bin 0 -> 5942 bytes app/assets/images/doc/more-recent-people-with-example.en.png | Bin 0 -> 14022 bytes app/assets/images/doc/more-recent-people-with-example.pt.png | Bin 0 -> 14863 bytes app/assets/images/doc/more-recent-people.en.png | Bin 0 -> 34745 bytes app/assets/images/doc/more-recent-people.pt.png | Bin 0 -> 35875 bytes app/assets/images/doc/new-folder.en.png | Bin 0 -> 29766 bytes app/assets/images/doc/new-folder.pt.png | Bin 0 -> 32447 bytes app/assets/images/doc/open-comment-box-for-logged-in.en.png | Bin 0 -> 9160 bytes app/assets/images/doc/open-comment-box-for-logged-in.pt.png | Bin 0 -> 10499 bytes app/assets/images/doc/open-comment-box-for-not-logged-in.en.png | Bin 0 -> 14210 bytes app/assets/images/doc/open-comment-box-for-not-logged-in.pt.png | Bin 0 -> 16247 bytes app/assets/images/doc/other-person-view-profile-link.en.png | Bin 0 -> 48146 bytes app/assets/images/doc/other-person-view-profile-link.pt.png | Bin 0 -> 48555 bytes app/assets/images/doc/people-search-field.en.png | Bin 0 -> 49899 bytes app/assets/images/doc/people-search-field.pt.png | Bin 0 -> 50475 bytes app/assets/images/doc/people-search-results-with-example.en.png | Bin 0 -> 15278 bytes app/assets/images/doc/people-search-results-with-example.pt.png | Bin 0 -> 15858 bytes app/assets/images/doc/person-activities-list.en.png | Bin 0 -> 51683 bytes app/assets/images/doc/person-activities-list.pt.png | Bin 0 -> 53725 bytes app/assets/images/doc/person-balloon-closed-en.png | Bin 0 -> 6584 bytes app/assets/images/doc/person-balloon-closed.en.png | Bin 0 -> 6584 bytes app/assets/images/doc/person-balloon-en.png | Bin 0 -> 12277 bytes app/assets/images/doc/person-balloon-pt.png | Bin 0 -> 12966 bytes app/assets/images/doc/person-balloon.en.png | Bin 0 -> 12277 bytes app/assets/images/doc/person-balloon.pt.png | Bin 0 -> 12966 bytes app/assets/images/doc/person-delete-profile-confirmation.en.png | Bin 0 -> 13375 bytes app/assets/images/doc/person-delete-profile-confirmation.pt.png | Bin 0 -> 13981 bytes app/assets/images/doc/person-edit-profile-categories.en.png | Bin 0 -> 24323 bytes app/assets/images/doc/person-edit-profile-categories.pt.png | Bin 0 -> 25211 bytes app/assets/images/doc/person-edit-profile-info-change-picture.en.png | Bin 0 -> 20640 bytes app/assets/images/doc/person-edit-profile-info-change-picture.pt.png | Bin 0 -> 20093 bytes app/assets/images/doc/person-edit-profile-info-general-informationen.en.png | Bin 0 -> 11650 bytes app/assets/images/doc/person-edit-profile-info-general-informationen.pt.png | Bin 0 -> 12938 bytes app/assets/images/doc/person-edit-profile-privacy-options.en.png | Bin 0 -> 13897 bytes app/assets/images/doc/person-edit-profile-privacy-options.pt.png | Bin 0 -> 14228 bytes app/assets/images/doc/person-view-profile-link.en.png | Bin 0 -> 42751 bytes app/assets/images/doc/person-view-profile-link.pt.png | Bin 0 -> 42472 bytes app/assets/images/doc/person-wall-scrap-reply-button.en.png | Bin 0 -> 32889 bytes app/assets/images/doc/person-wall-scrap-reply-form.en.png | Bin 0 -> 40929 bytes app/assets/images/doc/person-wall-scrap-reply-form.pt.png | Bin 0 -> 41950 bytes app/assets/images/doc/person-wall-scrap-reply-sent.en.png | Bin 0 -> 34429 bytes app/assets/images/doc/person-wall-scrap-reply-sent.pt.png | Bin 0 -> 34743 bytes app/assets/images/doc/person-wall-scrap-sent.en.png | Bin 0 -> 25913 bytes app/assets/images/doc/person-wall-scrap-sent.pt.png | Bin 0 -> 29733 bytes app/assets/images/doc/person-wall-writing-scrap.en.png | Bin 0 -> 20981 bytes app/assets/images/doc/person-wall-writing-scrap.pt.png | Bin 0 -> 20203 bytes app/assets/images/doc/products-block.en.png | Bin 0 -> 7553 bytes app/assets/images/doc/products-block.pt.png | Bin 0 -> 7257 bytes app/assets/images/doc/products-search-field.en.png | Bin 0 -> 41796 bytes app/assets/images/doc/products-search-field.pt.png | Bin 0 -> 42149 bytes app/assets/images/doc/products-search-results-with-example.en.png | Bin 0 -> 18909 bytes app/assets/images/doc/products-search-results-with-example.pt.png | Bin 0 -> 18938 bytes app/assets/images/doc/profile-image-block.en.png | Bin 0 -> 33475 bytes app/assets/images/doc/profile-image-block.pt.png | Bin 0 -> 33548 bytes app/assets/images/doc/profile-info-block.en.png | Bin 0 -> 22656 bytes app/assets/images/doc/profile-info-block.pt.png | Bin 0 -> 22572 bytes app/assets/images/doc/profile-with-button-to-add-friends.en.png | Bin 0 -> 67705 bytes app/assets/images/doc/profile-with-button-to-add-friends.pt.png | Bin 0 -> 64486 bytes app/assets/images/doc/recent-content-block.en.png | Bin 0 -> 7774 bytes app/assets/images/doc/recent-content-block.pt.png | Bin 0 -> 8109 bytes app/assets/images/doc/remove-comment-confirmation.en.png | Bin 0 -> 7838 bytes app/assets/images/doc/remove-comment-confirmation.pt.png | Bin 0 -> 7548 bytes app/assets/images/doc/remove-friend-confirmation.en.png | Bin 0 -> 33248 bytes app/assets/images/doc/remove-friend-confirmation.pt.png | Bin 0 -> 33904 bytes app/assets/images/doc/remove-friend.en.png | Bin 0 -> 30219 bytes app/assets/images/doc/remove-friend.pt.png | Bin 0 -> 35491 bytes app/assets/images/doc/search-more-options-open.en.png | Bin 0 -> 19178 bytes app/assets/images/doc/search-more-options-open.pt.png | Bin 0 -> 20380 bytes app/assets/images/doc/search-more-options.en.png | Bin 0 -> 9271 bytes app/assets/images/doc/search-more-options.pt.png | Bin 0 -> 9638 bytes app/assets/images/doc/search-results-with-example.en.png | Bin 0 -> 75255 bytes app/assets/images/doc/search-results-with-example.pt.png | Bin 0 -> 79334 bytes app/assets/images/doc/search-view-all-results-with-example.en.png | Bin 0 -> 22921 bytes app/assets/images/doc/search-view-all-results-with-example.pt.png | Bin 0 -> 23286 bytes app/assets/images/doc/send-message.en.png | Bin 0 -> 16795 bytes app/assets/images/doc/send-message.pt.png | Bin 0 -> 19068 bytes app/assets/images/doc/signup-form.en.png | Bin 0 -> 30299 bytes app/assets/images/doc/signup-form.pt.png | Bin 0 -> 31325 bytes app/assets/images/doc/slideshow-block.en.png | Bin 0 -> 5952 bytes app/assets/images/doc/slideshow-block.pt.png | Bin 0 -> 6257 bytes app/assets/images/doc/system-homepage-top-menu-admin.en.png | Bin 0 -> 145627 bytes app/assets/images/doc/system-homepage-top-menu-admin.pt.png | Bin 0 -> 120878 bytes app/assets/images/doc/system-homepage-top-menu.en.png | Bin 0 -> 145851 bytes app/assets/images/doc/system-homepage-top-menu.pt.png | Bin 0 -> 148763 bytes app/assets/images/doc/tags-block.en.png | Bin 0 -> 6428 bytes app/assets/images/doc/tags-block.pt.png | Bin 0 -> 6908 bytes app/assets/images/doc/tasks-list-approval-request.en.png | Bin 0 -> 26710 bytes app/assets/images/doc/tasks-list-approval-request.pt.png | Bin 0 -> 22428 bytes app/assets/images/doc/tasks-list-friendship-request.en.png | Bin 0 -> 19451 bytes app/assets/images/doc/tasks-list-friendship-request.pt.png | Bin 0 -> 19378 bytes app/assets/images/doc/tasks-list-membership-request.en.png | Bin 0 -> 18961 bytes app/assets/images/doc/tasks-list-membership-request.pt.png | Bin 0 -> 16878 bytes app/assets/images/doc/top-menu.en.png | Bin 0 -> 9761 bytes app/assets/images/doc/top-menu.pt.png | Bin 0 -> 9589 bytes app/assets/images/doc/uploading-files-to-gallery.en.png | Bin 0 -> 23475 bytes app/assets/images/doc/uploading-files-to-gallery.pt.png | Bin 0 -> 23852 bytes app/assets/images/doc/user-edit-sideboxes.en.png | Bin 0 -> 118141 bytes app/assets/images/doc/user-edit-sideboxes.pt.png | Bin 0 -> 122067 bytes app/assets/images/doc/user-friends-with-invitation-button.en.png | Bin 0 -> 30845 bytes app/assets/images/doc/user-friends-with-invitation-button.pt.png | Bin 0 -> 33564 bytes app/assets/images/doc/user-import-invitation-step-1.en.png | Bin 0 -> 20134 bytes app/assets/images/doc/user-import-invitation-step-1.pt.png | Bin 0 -> 21841 bytes app/assets/images/doc/user-import-invitation-step-2.en.png | Bin 0 -> 37783 bytes app/assets/images/doc/user-import-invitation-step-2.pt.png | Bin 0 -> 40475 bytes app/assets/images/doc/user-manually-invitation-step-1.en.png | Bin 0 -> 14999 bytes app/assets/images/doc/user-manually-invitation-step-1.pt.png | Bin 0 -> 15554 bytes app/assets/images/doc/user-manually-invitation-step-2.en.png | Bin 0 -> 28208 bytes app/assets/images/doc/user-manually-invitation-step-2.pt.png | Bin 0 -> 31091 bytes app/assets/images/doc/user-network-block.en.png | Bin 0 -> 9183 bytes app/assets/images/doc/user-network-block.pt.png | Bin 0 -> 8876 bytes app/assets/images/doc/user-sideboxes-add-block.en.png | Bin 0 -> 32631 bytes app/assets/images/doc/user-sideboxes-add-block.pt.png | Bin 0 -> 35865 bytes app/assets/images/doc/wysiwyg-buttons.en.png | Bin 0 -> 6534 bytes app/assets/images/doc/wysiwyg-buttons.pt.png | Bin 0 -> 6399 bytes app/assets/images/dotleaders.png | Bin 0 -> 174 bytes app/assets/images/down-arrow.png | Bin 0 -> 407 bytes app/assets/images/ecosol-tree-sprite.png | Bin 0 -> 2861 bytes app/assets/images/fancybox/blank.gif | Bin 0 -> 43 bytes app/assets/images/fancybox/fancy_close.png | Bin 0 -> 1517 bytes app/assets/images/fancybox/fancy_loading.png | Bin 0 -> 10195 bytes app/assets/images/fancybox/fancy_nav_left.png | Bin 0 -> 1446 bytes app/assets/images/fancybox/fancy_nav_right.png | Bin 0 -> 1454 bytes app/assets/images/fancybox/fancy_shadow_e.png | Bin 0 -> 107 bytes app/assets/images/fancybox/fancy_shadow_n.png | Bin 0 -> 106 bytes app/assets/images/fancybox/fancy_shadow_ne.png | Bin 0 -> 347 bytes app/assets/images/fancybox/fancy_shadow_nw.png | Bin 0 -> 324 bytes app/assets/images/fancybox/fancy_shadow_s.png | Bin 0 -> 111 bytes app/assets/images/fancybox/fancy_shadow_se.png | Bin 0 -> 352 bytes app/assets/images/fancybox/fancy_shadow_sw.png | Bin 0 -> 340 bytes app/assets/images/fancybox/fancy_shadow_w.png | Bin 0 -> 103 bytes app/assets/images/fancybox/fancy_title_left.png | Bin 0 -> 503 bytes app/assets/images/fancybox/fancy_title_main.png | Bin 0 -> 96 bytes app/assets/images/fancybox/fancy_title_over.png | Bin 0 -> 70 bytes app/assets/images/fancybox/fancy_title_right.png | Bin 0 -> 506 bytes app/assets/images/fancybox/fancybox-x.png | Bin 0 -> 203 bytes app/assets/images/fancybox/fancybox-y.png | Bin 0 -> 176 bytes app/assets/images/fancybox/fancybox.png | Bin 0 -> 15287 bytes app/assets/images/fff.gif | Bin 0 -> 149 bytes app/assets/images/field-bg.png | Bin 0 -> 399 bytes app/assets/images/forum-activity-bg-onecol.png | Bin 0 -> 1773 bytes app/assets/images/forum-activity-bg.png | Bin 0 -> 1758 bytes app/assets/images/forum-activity-icon.png | Bin 0 -> 477 bytes app/assets/images/gallery-image-activity-border-big-onecol.png | Bin 0 -> 2265 bytes app/assets/images/gallery-image-activity-border-big.png | Bin 0 -> 1349 bytes app/assets/images/gallery-image-activity-border-onecol.png | Bin 0 -> 1479 bytes app/assets/images/gallery-image-activity-border.png | Bin 0 -> 1039 bytes app/assets/images/grip-clue.png | Bin 0 -> 159 bytes app/assets/images/hachure.png | Bin 0 -> 233 bytes app/assets/images/help-avatar.gif | Bin 0 -> 2489 bytes app/assets/images/icon_filter_exclude.png | Bin 0 -> 1190 bytes app/assets/images/icon_more_options.png | Bin 0 -> 1004 bytes app/assets/images/icons-app/alert.png | 1 + app/assets/images/icons-app/article-minor.png | Bin 0 -> 3076 bytes app/assets/images/icons-app/article-portrait.png | Bin 0 -> 2756 bytes app/assets/images/icons-app/article-thumb.png | Bin 0 -> 4967 bytes app/assets/images/icons-app/chat-22x22.png | 1 + app/assets/images/icons-app/community-big.png | Bin 0 -> 20086 bytes app/assets/images/icons-app/community-icon.png | Bin 0 -> 1218 bytes app/assets/images/icons-app/community-minor.png | Bin 0 -> 4414 bytes app/assets/images/icons-app/community-portrait.png | Bin 0 -> 6359 bytes app/assets/images/icons-app/community-thumb.png | Bin 0 -> 11813 bytes app/assets/images/icons-app/design-editor.png | Bin 0 -> 6115 bytes app/assets/images/icons-app/emblem-important.png | Bin 0 -> 2207 bytes app/assets/images/icons-app/enterprise-big.png | Bin 0 -> 25130 bytes app/assets/images/icons-app/enterprise-icon.png | Bin 0 -> 2738 bytes app/assets/images/icons-app/enterprise-minor.png | Bin 0 -> 5318 bytes app/assets/images/icons-app/enterprise-portrait.png | Bin 0 -> 7746 bytes app/assets/images/icons-app/enterprise-registration.png | 1 + app/assets/images/icons-app/enterprise-thumb.png | Bin 0 -> 14380 bytes app/assets/images/icons-app/gnome-irc-22x22.png | Bin 0 -> 1261 bytes app/assets/images/icons-app/gnome-irc.png | Bin 0 -> 2256 bytes app/assets/images/icons-app/gnome-settings-theme.png | Bin 0 -> 2288 bytes app/assets/images/icons-app/gtk-folder.png | Bin 0 -> 3101 bytes app/assets/images/icons-app/ico-female.png | Bin 0 -> 500 bytes app/assets/images/icons-app/ico-male.png | Bin 0 -> 516 bytes app/assets/images/icons-app/ico-sex-undef.png | Bin 0 -> 431 bytes app/assets/images/icons-app/image-loading-big.png | Bin 0 -> 10950 bytes app/assets/images/icons-app/image-loading-display.png | Bin 0 -> 43168 bytes app/assets/images/icons-app/image-loading-icon.png | Bin 0 -> 960 bytes app/assets/images/icons-app/image-loading-minor.png | Bin 0 -> 3074 bytes app/assets/images/icons-app/image-loading-portrait.png | Bin 0 -> 4124 bytes app/assets/images/icons-app/image-loading-slideshow.png | Bin 0 -> 18814 bytes app/assets/images/icons-app/image-loading-small.png | Bin 0 -> 1779 bytes app/assets/images/icons-app/image-loading-thumb.png | Bin 0 -> 7066 bytes app/assets/images/icons-app/person-big.png | Bin 0 -> 13796 bytes app/assets/images/icons-app/person-icon.png | Bin 0 -> 1052 bytes app/assets/images/icons-app/person-minor.png | Bin 0 -> 3675 bytes app/assets/images/icons-app/person-portrait.png | Bin 0 -> 5153 bytes app/assets/images/icons-app/person-thumb.png | Bin 0 -> 8938 bytes app/assets/images/icons-app/product-default-pic-big.png | Bin 0 -> 20547 bytes app/assets/images/icons-app/product-default-pic-minor.png | Bin 0 -> 3815 bytes app/assets/images/icons-app/product-default-pic-portrait.png | Bin 0 -> 5172 bytes app/assets/images/icons-app/product-default-pic-thumb.png | Bin 0 -> 9206 bytes app/assets/images/icons-app/user_icon.png | Bin 0 -> 3522 bytes app/assets/images/icons-app/user_icon.svg | 529 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/icons-app/users.svg | 863 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/icons-bar/accessibility.png | Bin 0 -> 1217 bytes app/assets/images/icons-bar/admin.png | Bin 0 -> 1393 bytes app/assets/images/icons-bar/go-content.png | Bin 0 -> 974 bytes app/assets/images/icons-bar/go-home.png | Bin 0 -> 854 bytes app/assets/images/icons-bar/help.png | Bin 0 -> 1581 bytes app/assets/images/icons-bar/login.png | Bin 0 -> 1095 bytes app/assets/images/icons-bar/logout.png | Bin 0 -> 935 bytes app/assets/images/icons-bar/logout2.png | Bin 0 -> 956 bytes app/assets/images/icons-cat/Agropecuária_extrativismo_e_pesca.png | Bin 0 -> 509 bytes app/assets/images/icons-cat/Alimentos_e_bebidas.png | Bin 0 -> 444 bytes app/assets/images/icons-cat/Artefatos_artesanais.png | Bin 0 -> 461 bytes app/assets/images/icons-cat/Ação_comunitária.png | Bin 0 -> 320 bytes app/assets/images/icons-cat/Coleta_e_reciclagem_de_materiais.png | Bin 0 -> 435 bytes app/assets/images/icons-cat/Crédito_e_finanças.png | Bin 0 -> 472 bytes app/assets/images/icons-cat/Fitoterápicos_e_produtos_de_limpeza_e_higiene.png | Bin 0 -> 475 bytes app/assets/images/icons-cat/Prestação_de_serviços_diversos.png | Bin 0 -> 380 bytes app/assets/images/icons-cat/Produção_industrial.png | Bin 0 -> 322 bytes app/assets/images/icons-cat/Produção_têxtil_e_confecção.png | Bin 0 -> 475 bytes app/assets/images/icons-cat/Software.png | Bin 0 -> 408 bytes app/assets/images/icons-cat/Software_Livre.png | Bin 0 -> 408 bytes app/assets/images/icons-cat/undefined.png | Bin 0 -> 338 bytes app/assets/images/icons-map/enterprise.png | Bin 0 -> 4872 bytes app/assets/images/icons-map/enterprise_shadow.png | Bin 0 -> 1761 bytes app/assets/images/icons-mime/README | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/icons-mime/empty.png | Bin 0 -> 3231 bytes app/assets/images/icons-mime/event.png | 1 + app/assets/images/icons-mime/folder.png | 1 + app/assets/images/icons-mime/gnome-folder.png | Bin 0 -> 1026 bytes app/assets/images/icons-mime/gnome-mime-empty.png | Bin 0 -> 540 bytes app/assets/images/icons-mime/gnome-mime-text-html.png | Bin 0 -> 1220 bytes app/assets/images/icons-mime/ico-feed-on.png | Bin 0 -> 1179 bytes app/assets/images/icons-mime/rss-feed-16.png | Bin 0 -> 849 bytes app/assets/images/icons-mime/rss-feed.png | 1 + app/assets/images/icons-mime/text-html.png | 1 + app/assets/images/icons-mime/unknown.png | 1 + app/assets/images/icons-task/closed-arrow-hover.png | Bin 0 -> 216 bytes app/assets/images/icons-task/closed-arrow.png | Bin 0 -> 204 bytes app/assets/images/icons-task/opened-arrow-hover.png | Bin 0 -> 189 bytes app/assets/images/icons-task/opened-arrow.png | Bin 0 -> 199 bytes app/assets/images/input-bg.gif | Bin 0 -> 4091 bytes app/assets/images/loading-dark.gif | Bin 0 -> 3208 bytes app/assets/images/loading-small-dark.gif | Bin 0 -> 1912 bytes app/assets/images/loading-small.gif | Bin 0 -> 1553 bytes app/assets/images/loading.gif | Bin 0 -> 1787 bytes app/assets/images/login_checking.png | Bin 0 -> 1117 bytes app/assets/images/logo-anhetegua-200x50.png | Bin 0 -> 7233 bytes app/assets/images/logo-anhetegua.png | Bin 0 -> 18213 bytes app/assets/images/noosfero-network.png | Bin 0 -> 99130 bytes app/assets/images/noosfero-network.svg | 4618 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/images/orange-balloon.png | Bin 0 -> 1146 bytes app/assets/images/orange-bg.png | Bin 0 -> 191 bytes app/assets/images/passwords_match.png | Bin 0 -> 777 bytes app/assets/images/passwords_nomatch.png | Bin 0 -> 374 bytes app/assets/images/rails.png | Bin 0 -> 6646 bytes app/assets/images/scrap-bg-gray.png | Bin 0 -> 289 bytes app/assets/images/scrap-bg.png | Bin 0 -> 290 bytes app/assets/images/solidarity-economy.png | Bin 0 -> 976 bytes app/assets/images/top-arrow.png | Bin 0 -> 261 bytes app/assets/images/white-pixel.gif | Bin 0 -> 35 bytes app/assets/images/zoom-dark.png | Bin 0 -> 177 bytes app/assets/images/zoom.png | Bin 0 -> 420 bytes app/assets/javascripts/add-and-join.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/application.js | 16 ++++++++++++++++ app/assets/javascripts/article.js | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/ba-linkify.js | 214 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/catalog.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/chat.js | 641 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/codepress.css | 21 +++++++++++++++++++++ app/assets/javascripts/codepress/codepress.html | 35 +++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/codepress.js | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/engines/gecko.js | 293 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/engines/khtml.js | 0 app/assets/javascripts/codepress/engines/msie.js | 304 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/engines/older.js | 0 app/assets/javascripts/codepress/engines/opera.js | 260 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/images/line-numbers.png | Bin 0 -> 16556 bytes app/assets/javascripts/codepress/index.html | 443 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/asp.css | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/asp.js | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/autoit.css | 13 +++++++++++++ app/assets/javascripts/codepress/languages/autoit.js | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/csharp.css | 9 +++++++++ app/assets/javascripts/codepress/languages/csharp.js | 25 +++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/css.css | 10 ++++++++++ app/assets/javascripts/codepress/languages/css.js | 23 +++++++++++++++++++++++ app/assets/javascripts/codepress/languages/generic.css | 9 +++++++++ app/assets/javascripts/codepress/languages/generic.js | 25 +++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/html.css | 13 +++++++++++++ app/assets/javascripts/codepress/languages/html.js | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/java.css | 7 +++++++ app/assets/javascripts/codepress/languages/java.js | 24 ++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/javascript.css | 8 ++++++++ app/assets/javascripts/codepress/languages/javascript.js | 30 ++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/perl.css | 11 +++++++++++ app/assets/javascripts/codepress/languages/perl.js | 27 +++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/php.css | 12 ++++++++++++ app/assets/javascripts/codepress/languages/php.js | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/ruby.css | 10 ++++++++++ app/assets/javascripts/codepress/languages/ruby.js | 26 ++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/sql.css | 10 ++++++++++ app/assets/javascripts/codepress/languages/sql.js | 30 ++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/text.css | 5 +++++ app/assets/javascripts/codepress/languages/text.js | 9 +++++++++ app/assets/javascripts/codepress/languages/vbscript.css | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/vbscript.js | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/languages/xsl.css | 15 +++++++++++++++ app/assets/javascripts/codepress/languages/xsl.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/codepress/license.txt | 458 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/colorbox.js | 814 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/colorpicker-noosfero.js | 19 +++++++++++++++++++ app/assets/javascripts/colorpicker.js | 484 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/controls.js | 963 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/dragdrop.js | 972 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/effects.js | 1120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/errors.js | 16 ++++++++++++++++ app/assets/javascripts/google_maps.js | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-latest.js | 8316 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-ui-1.8.2.custom.min.js | 1012 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/README.md | 8 ++++++++ app/assets/javascripts/jquery-validation/changelog.txt | 251 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/jquery.validate.js | 1159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/jquery.validate.min.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/lib/jquery-1.4.2.js | 6240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/lib/jquery-1.4.4.js | 7179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/lib/jquery-1.5.1.js | 8316 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/lib/jquery-1.5.js | 8176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/lib/jquery.form.js | 660 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/lib/jquery.js | 4376 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/lib/jquery.metadata.js | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_ar.js | 24 ++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_bg.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_ca.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_cn.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_cs.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_da.js | 20 ++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_de.js | 20 ++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_el.js | 24 ++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_es.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_fa.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_fi.js | 21 +++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_fr.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_ge.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_he.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_hu.js | 20 ++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_it.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_ja.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_kk.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_lt.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_lv.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_nl.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_no.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_pl.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_pt.js | 1 + app/assets/javascripts/jquery-validation/localization/messages_ptbr.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_ptpt.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_ro.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_ru.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_se.js | 21 +++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_si.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_sk.js | 20 ++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_sr.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_tr.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_tw.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/messages_ua.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/localization/methods_de.js | 12 ++++++++++++ app/assets/javascripts/jquery-validation/localization/methods_nl.js | 9 +++++++++ app/assets/javascripts/jquery-validation/localization/methods_pt.js | 9 +++++++++ app/assets/javascripts/jquery-validation/test/events.html | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/firebug/errorIcon.png | Bin 0 -> 457 bytes app/assets/javascripts/jquery-validation/test/firebug/firebug.css | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/firebug/firebug.html | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/firebug/firebug.js | 672 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/firebug/firebugx.js | 10 ++++++++++ app/assets/javascripts/jquery-validation/test/firebug/infoIcon.png | Bin 0 -> 524 bytes app/assets/javascripts/jquery-validation/test/firebug/warningIcon.png | Bin 0 -> 516 bytes app/assets/javascripts/jquery-validation/test/index.html | 270 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/jquery.js | 23 +++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/large.html | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/messages.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/methods.js | 584 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/qunit/qunit.css | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/qunit/qunit.js | 1428 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/rules.js | 267 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/selects/index.html | 444 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/tabs.html | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/test.js | 1124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/test/users.php | 11 +++++++++++ app/assets/javascripts/jquery-validation/test/users2.php | 11 +++++++++++ app/assets/javascripts/jquery-validation/todo | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery-validation/version.txt | 1 + app/assets/javascripts/jquery.ba-bbq.min.js | 18 ++++++++++++++++++ app/assets/javascripts/jquery.ba-hashchange.js | 390 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery.cookie.js | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery.cycle.all.min.js | 27 +++++++++++++++++++++++++++ app/assets/javascripts/jquery.emoticon.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery.fancybox-1.3.4.pack.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery.form.js | 1076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery.noconflict.js | 1 + app/assets/javascripts/jquery.scrollTo.js | 215 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery.scrollabletab.js | 277 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery.sound.js | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/jquery.tokeninput.js | 865 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/lightbox.js | 232 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/lowpro.js | 338 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/manage-categories.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/manage-products.js | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/miscellaneous.js | 934 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/pikachoose.js | 276 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/prototype.js | 4221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/reflection.js | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/report-abuse.js | 17 +++++++++++++++++ app/assets/javascripts/sliderjs.js | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/LICENSE.txt | 19 +++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/README.txt | 15 +++++++++++++++ app/assets/javascripts/strophejs-1.0.1/contrib/discojs/README.txt | 42 ++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/contrib/discojs/css/disco.css | 16 ++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/contrib/discojs/index.html | 47 +++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/contrib/discojs/punjab.tac | 18 ++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/contrib/discojs/scripts/basic.js | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/contrib/discojs/scripts/disco.js | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/files/core-js.html | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/index.html | 1 + app/assets/javascripts/strophejs-1.0.1/doc/javascript/main.js | 836 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/javascript/searchdata.js | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ClassesS.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsA.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsB.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsC.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsD.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsE.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsF.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsH.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsI.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsL.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsM.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsP.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsR.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsS.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsV.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsW.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsX.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FilesS.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsA.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsB.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsC.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsD.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsE.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsF.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsG.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsI.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsL.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsP.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsR.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsS.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsSymbols.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsT.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsU.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsW.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsX.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralA.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralB.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralC.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralD.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralE.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralF.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralG.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralH.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralI.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralL.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralM.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralP.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralR.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralS.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralSymbols.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralT.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralU.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralV.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralW.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralX.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/search/NoResults.html | 15 +++++++++++++++ app/assets/javascripts/strophejs-1.0.1/doc/styles/main.css | 767 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/attach/README | 37 +++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/attach/__init__.py | 0 app/assets/javascripts/strophejs-1.0.1/examples/attach/attacher/__init__.py | 0 app/assets/javascripts/strophejs-1.0.1/examples/attach/attacher/views.py | 18 ++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/attach/boshclient.py | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/attach/manage.py | 11 +++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/attach/settings.py | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/attach/templates/attacher/index.html | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/attach/urls.py | 19 +++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/basic.html | 25 +++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/basic.js | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.html | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.xml | 12 ++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/dojo-ping.html | 27 +++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/dojo-ping.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/echobot.html | 25 +++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/echobot.js | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/prebind.html | 39 +++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/prebind.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/prototype-ping.html | 27 +++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/prototype-ping.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/yui-ping.html | 26 ++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/examples/yui-ping.js | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.js | 31 +++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.min.js | 1 + app/assets/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.js | 270 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.min.js | 1 + app/assets/javascripts/strophejs-1.0.1/strophe.js | 3543 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/strophe.min.js | 1 + app/assets/javascripts/strophejs-1.0.1/tests/jstests.js | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/tests/jsyuitests.js | 31 +++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/tests/pubsub.html | 28 ++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/tests/pubsub.js | 314 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/tests/strophe.html | 22 ++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/tests/testrunner.js | 735 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/tests/tests.js | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/tests/testsuite.css | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/tests/yuitests.html | 20 ++++++++++++++++++++ app/assets/javascripts/strophejs-1.0.1/tests/yuitests.js | 26 ++++++++++++++++++++++++++ app/assets/javascripts/tasks.js | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/thickbox.js | 319 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/changelog.txt | 1303 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/examples/accessibility.html | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/examples/css/content.css | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/examples/css/word.css | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/examples/custom_formats.html | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/examples/full.html | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/examples/index.html | 10 ++++++++++ app/assets/javascripts/tinymce/examples/lists/image_list.js | 9 +++++++++ app/assets/javascripts/tinymce/examples/lists/link_list.js | 10 ++++++++++ app/assets/javascripts/tinymce/examples/lists/media_list.js | 14 ++++++++++++++ app/assets/javascripts/tinymce/examples/lists/template_list.js | 9 +++++++++ app/assets/javascripts/tinymce/examples/media/logo.jpg | Bin 0 -> 2729 bytes app/assets/javascripts/tinymce/examples/media/logo_over.jpg | Bin 0 -> 6473 bytes app/assets/javascripts/tinymce/examples/media/sample.avi | Bin 0 -> 82944 bytes app/assets/javascripts/tinymce/examples/media/sample.dcr | Bin 0 -> 6774 bytes app/assets/javascripts/tinymce/examples/media/sample.flv | Bin 0 -> 88722 bytes app/assets/javascripts/tinymce/examples/media/sample.mov | Bin 0 -> 55622 bytes app/assets/javascripts/tinymce/examples/media/sample.ram | 1 + app/assets/javascripts/tinymce/examples/media/sample.rm | Bin 0 -> 17846 bytes app/assets/javascripts/tinymce/examples/media/sample.swf | Bin 0 -> 6118 bytes app/assets/javascripts/tinymce/examples/menu.html | 18 ++++++++++++++++++ app/assets/javascripts/tinymce/examples/simple.html | 47 +++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/examples/skins.html | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/examples/templates/layout1.htm | 15 +++++++++++++++ app/assets/javascripts/tinymce/examples/templates/snippet1.htm | 1 + app/assets/javascripts/tinymce/examples/translate.html | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/examples/word.html | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/de.js | 155 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/en.js | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/eo.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/es.js | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/fr.js | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/hy.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/it.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/ja.js | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/nl.js | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/pt.js | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/ru.js | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/license.txt | 504 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js | 43 +++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/de_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js | 7 +++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/es_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/fr_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/ja_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/nl_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/pt_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/ru_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css | 13 +++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif | Bin 0 -> 1624 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js | 458 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de_dlg.js | 43 +++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/es_dlg.js | 43 +++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fr_dlg.js | 43 +++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ja_dlg.js | 43 +++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/nl_dlg.js | 43 +++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/pt_dlg.js | 43 +++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ru_dlg.js | 43 +++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css | 8 ++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js | 532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de_dlg.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/es_dlg.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr_dlg.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ja_dlg.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/nl_dlg.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/pt_dlg.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ru_dlg.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm | 338 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js | 431 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js | 4 ++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js | 43 +++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm | 41 +++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif | Bin 0 -> 354 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif | Bin 0 -> 329 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif | Bin 0 -> 331 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif | Bin 0 -> 344 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif | Bin 0 -> 340 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif | Bin 0 -> 336 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif | Bin 0 -> 338 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif | Bin 0 -> 344 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif | Bin 0 -> 321 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif | Bin 0 -> 325 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif | Bin 0 -> 345 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif | Bin 0 -> 342 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif | Bin 0 -> 328 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif | Bin 0 -> 337 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif | Bin 0 -> 351 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif | Bin 0 -> 336 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js | 22 ++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/de_dlg.js | 20 ++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js | 20 ++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/es_dlg.js | 20 ++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/fr_dlg.js | 20 ++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ja_dlg.js | 20 ++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/nl_dlg.js | 20 ++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/pt_dlg.js | 20 ++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ru_dlg.js | 20 ++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm | 22 ++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif | Bin 0 -> 87 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js | 19 +++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js | 3 +++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js | 3 +++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js | 399 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm | 259 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js | 232 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/de_dlg.js | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/es_dlg.js | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/fr_dlg.js | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ja_dlg.js | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/nl_dlg.js | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/pt_dlg.js | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ru_dlg.js | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js | 696 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif | Bin 0 -> 818 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif | Bin 0 -> 280 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif | Bin 0 -> 1195 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif | Bin 0 -> 915 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif | Bin 0 -> 911 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif | Bin 0 -> 769 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif | Bin 0 -> 92 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm | 387 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js | 214 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js | 617 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/content.css | 6 ++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/media.css | 17 +++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js | 770 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flash.gif | Bin 0 -> 241 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flv_player.swf | Bin 0 -> 11668 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/quicktime.gif | Bin 0 -> 303 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/realmedia.gif | Bin 0 -> 439 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/shockwave.gif | Bin 0 -> 387 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif | Bin 0 -> 43 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/windowsmedia.gif | Bin 0 -> 415 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/js/media.js | 354 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/de_dlg.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/es_dlg.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/fr_dlg.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ja_dlg.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/nl_dlg.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/pt_dlg.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ru_dlg.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/media.htm | 812 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf | Bin 0 -> 33931 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif | Bin 0 -> 325 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif | Bin 0 -> 43 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js | 933 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js | 36 ++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/de_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/es_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/fr_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ja_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/nl_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/pt_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ru_dlg.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm | 27 +++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm | 21 +++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/example.html | 28 ++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/preview.html | 17 +++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js | 34 ++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js | 438 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css | 6 ++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/de_dlg.js | 16 ++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js | 16 ++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/es_dlg.js | 16 ++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/fr_dlg.js | 16 ++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ja_dlg.js | 16 ++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/nl_dlg.js | 16 ++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/pt_dlg.js | 16 ++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ru_dlg.js | 16 ++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js | 435 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif | Bin 0 -> 46 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/css/props.css | 13 +++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/js/props.js | 635 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/de_dlg.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/es_dlg.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/fr_dlg.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ja_dlg.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/nl_dlg.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/pt_dlg.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ru_dlg.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/props.htm | 838 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/cell.htm | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css | 17 +++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/row.css | 25 +++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/table.css | 13 +++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js | 1202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js | 284 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js | 27 +++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/row.js | 232 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/table.js | 450 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/de_dlg.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/es_dlg.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/fr_dlg.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ja_dlg.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/nl_dlg.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/pt_dlg.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ru_dlg.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/row.htm | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/table.htm | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/blank.htm | 12 ++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/css/template.css | 23 +++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/js/template.js | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/de_dlg.js | 15 +++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/en_dlg.js | 15 +++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/es_dlg.js | 15 +++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/fr_dlg.js | 15 +++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/ja_dlg.js | 15 +++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/nl_dlg.js | 15 +++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/pt_dlg.js | 15 +++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/ru_dlg.js | 15 +++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/template.htm | 31 +++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css | 11 +++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css | 9 +++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js | 28 ++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js | 28 ++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js | 28 ++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js | 229 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/de_dlg.js | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/es_dlg.js | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/fr_dlg.js | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/ja_dlg.js | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/nl_dlg.js | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/pt_dlg.js | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/ru_dlg.js | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/about.htm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm | 26 ++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js | 1360 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/image.htm | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg | Bin 0 -> 3189 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif | Bin 0 -> 241 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif | Bin 0 -> 11794 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif | Bin 0 -> 600 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif | Bin 0 -> 325 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif | Bin 0 -> 303 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/realmedia.gif | Bin 0 -> 439 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif | Bin 0 -> 387 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/trans.gif | Bin 0 -> 43 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif | Bin 0 -> 597 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif | Bin 0 -> 415 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js | 42 ++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js | 355 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js | 329 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js | 247 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de_dlg.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es_dlg.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr.js | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr_dlg.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/hy.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it_dlg.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja_dlg.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl_dlg.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt_dlg.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru_dlg.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/link.htm | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css | 47 +++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png | Bin 0 -> 3274 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif | Bin 0 -> 70 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif | Bin 0 -> 68 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif | Bin 0 -> 70 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif | Bin 0 -> 1787 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif | Bin 0 -> 1326 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css | 23 +++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css | 46 ++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png | Bin 0 -> 5859 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png | Bin 0 -> 3736 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png | Bin 0 -> 5358 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css | 8 ++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm | 25 +++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif | Bin 0 -> 1440 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/de.js | 11 +++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js | 11 +++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/eo.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/es.js | 11 +++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/fr.js | 11 +++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/hy.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/it.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ja.js | 11 +++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/nl.js | 11 +++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/pt.js | 11 +++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ru.js | 11 +++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css | 25 +++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css | 32 ++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css | 17 +++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png | Bin 0 -> 5102 bytes app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css | 35 +++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce.js | 1 + app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce_popup.js | 5 +++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce_src.js | 15812 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/utils/editable_selects.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/utils/form_utils.js | 210 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/utils/mctabs.js | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/javascripts/tinymce/jscripts/tiny_mce/utils/validate.js | 252 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/application.css | 6148 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/calendar_date_select/blue.css | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/calendar_date_select/default.css | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/calendar_date_select/plain.css | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/calendar_date_select/red.css | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/calendar_date_select/silver.css | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/colorbox.css | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/colorpicker.css | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/fancybox.css | 359 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/iepngfix/blank.gif | Bin 0 -> 49 bytes app/assets/stylesheets/iepngfix/iepngfix.css | 1 + app/assets/stylesheets/iepngfix/iepngfix.htc | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/jquery.ui/redmond/images/ui-anim_basic_16x16.gif | Bin 0 -> 1553 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_flat_55_fbec88_40x100.png | Bin 0 -> 182 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 0 -> 124 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_85_dfeffc_1x400.png | Bin 0 -> 123 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 0 -> 3457 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 0 -> 104 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 0 -> 88 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_217bc0_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_469bdd_256x240.png | Bin 0 -> 5355 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_6da8d5_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_d8e7f3_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_f9bd01_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/redmond/jquery-ui-1.8.2.custom.css | 489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/jquery.ui/smoothness/images/ui-anim_basic_16x16.gif | Bin 0 -> 1553 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 178 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 111 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 101 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_888888_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/smoothness/jquery-ui-1.8.2.custom.css | 489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-anim_basic_16x16.gif | Bin 0 -> 1553 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 178 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 111 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 101 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_888888_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/smoothness_mod/jquery-ui-1.8.2.custom.css | 489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/jquery.ui/south-street/images/ui-anim_basic_16x16.gif | Bin 0 -> 1553 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png | Bin 0 -> 127 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png | Bin 0 -> 2130 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png | Bin 0 -> 110 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png | Bin 0 -> 96 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png | Bin 0 -> 153 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png | Bin 0 -> 105 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png | Bin 0 -> 124 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png | Bin 0 -> 165 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png | Bin 0 -> 119 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_808080_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_847e71_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_8dc262_256x240.png | Bin 0 -> 5355 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_eeeeee_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_ffffff_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/south-street/jquery-ui-1.8.2.custom.css | 489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-anim_basic_16x16.gif | Bin 0 -> 1553 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_diagonals-medium_20_d34d17_40x40.png | Bin 0 -> 247 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_30_cccccc_40x100.png | Bin 0 -> 180 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_50_5c5c5c_40x100.png | Bin 0 -> 180 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_30_888a85_500x100.png | Bin 0 -> 4699 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_45_918e88_500x100.png | Bin 0 -> 4273 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_60_fece2f_500x100.png | Bin 0 -> 3512 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_70_ffdd57_500x100.png | Bin 0 -> 3830 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_90_fff9e5_500x100.png | Bin 0 -> 2257 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_0_feeebd_1x100.png | Bin 0 -> 79 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_70_feeebd_1x100.png | Bin 0 -> 117 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_30_feeebd_1x100.png | Bin 0 -> 122 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_70_feeebd_1x100.png | Bin 0 -> 119 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_3d3d3d_256x240.png | Bin 0 -> 5355 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_bd7b00_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_d19405_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_eb990f_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ed9f26_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_fadc7a_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ffe180_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/sunny-mod/jquery-ui-1.8.2.custom.css | 489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/jquery.ui/sunny/images/ui-anim_basic_16x16.gif | Bin 0 -> 1553 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png | Bin 0 -> 199 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_flat_30_cccccc_40x100.png | Bin 0 -> 180 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png | Bin 0 -> 180 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png | Bin 0 -> 3971 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png | Bin 0 -> 3512 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png | Bin 0 -> 3122 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png | Bin 0 -> 2257 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png | Bin 0 -> 108 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png | Bin 0 -> 100 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_3d3d3d_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_bd7b00_256x240.png | Bin 0 -> 5355 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_d19405_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_eb990f_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_ed9f26_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_fadc7a_256x240.png | Bin 0 -> 4369 bytes app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_ffe180_256x240.png | Bin 0 -> 5355 bytes app/assets/stylesheets/jquery.ui/sunny/jquery-ui-1.8.2.custom.css | 489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/lightbox.css | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/search.css | 937 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/slideshow.css | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/tasks.css | 46 ++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/thickbox.css | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/tinymce.css | 27 +++++++++++++++++++++++++++ app/assets/stylesheets/token-input-facebook.css | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/token-input-facet.css | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/token-input-mac.css | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/token-input.css | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ public/images/balloon-footer.png | Bin 1953 -> 0 bytes public/images/balloon-header.png | Bin 1037 -> 0 bytes public/images/balloon-middle.png | Bin 267 -> 0 bytes public/images/beta.gif | Bin 60 -> 0 bytes public/images/black-alpha-pixel-5.png | Bin 178 -> 0 bytes public/images/black-alpha-pixel.png | Bin 178 -> 0 bytes public/images/blocks/1.png | Bin 1079 -> 0 bytes public/images/blocks/1.svg | 77 ----------------------------------------------------------------------------- public/images/blocks/2.png | Bin 1350 -> 0 bytes public/images/blocks/2.svg | 77 ----------------------------------------------------------------------------- public/images/blocks/3.png | Bin 1383 -> 0 bytes public/images/blocks/3.svg | 77 ----------------------------------------------------------------------------- public/images/bolota.gif | Bin 70 -> 0 bytes public/images/borda-esq-aba-azul.gif | Bin 179 -> 0 bytes public/images/bt-bookmark.gif | Bin 1287 -> 0 bytes public/images/calendar_date_select/calendar.gif | Bin 581 -> 0 bytes public/images/calendar_date_select/calendar.png | Bin 1780 -> 0 bytes public/images/catalog-expanders.png | Bin 777 -> 0 bytes public/images/ccc.gif | Bin 149 -> 0 bytes public/images/colorbox/border.png | Bin 112 -> 0 bytes public/images/colorbox/controls.png | Bin 1249 -> 0 bytes public/images/colorbox/ie6/borderBottomCenter.png | Bin 111 -> 0 bytes public/images/colorbox/ie6/borderBottomLeft.png | Bin 215 -> 0 bytes public/images/colorbox/ie6/borderBottomRight.png | Bin 217 -> 0 bytes public/images/colorbox/ie6/borderMiddleLeft.png | Bin 108 -> 0 bytes public/images/colorbox/ie6/borderMiddleRight.png | Bin 108 -> 0 bytes public/images/colorbox/ie6/borderTopCenter.png | Bin 111 -> 0 bytes public/images/colorbox/ie6/borderTopLeft.png | Bin 216 -> 0 bytes public/images/colorbox/ie6/borderTopRight.png | Bin 214 -> 0 bytes public/images/colorbox/loading.gif | Bin 9427 -> 0 bytes public/images/colorbox/loading_background.png | Bin 157 -> 0 bytes public/images/colorbox/overlay.png | Bin 182 -> 0 bytes public/images/colorpicker/apply.png | Bin 955 -> 0 bytes public/images/colorpicker/gradiente.png | Bin 595 -> 0 bytes public/images/colorpicker/indic.gif | Bin 86 -> 0 bytes public/images/colorpicker/overlay.png | Bin 10355 -> 0 bytes public/images/colorpicker/select.gif | Bin 78 -> 0 bytes public/images/comment-owner-bg-L.png | Bin 188 -> 0 bytes public/images/comment-owner-bg-N.png | Bin 167 -> 0 bytes public/images/comment-owner-bg-NL.png | Bin 255 -> 0 bytes public/images/comment-owner-bg-NO.png | Bin 518 -> 0 bytes public/images/comment-owner-bg-O.png | Bin 198 -> 0 bytes public/images/comment-owner-bg-S.png | Bin 475 -> 0 bytes public/images/comment-owner-bg-SL.png | Bin 259 -> 0 bytes public/images/comment-owner-bg-SO.png | Bin 271 -> 0 bytes public/images/comment-reply-owner-bg.png | Bin 279 -> 0 bytes public/images/control-panel/Makefile | 13 ------------- public/images/control-panel/application-certificate.gif | Bin 1802 -> 0 bytes public/images/control-panel/application-certificate.png | Bin 3278 -> 0 bytes public/images/control-panel/application-certificate.svg | 443 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/images/control-panel/blocks.gif | Bin 691 -> 0 bytes public/images/control-panel/blocks.png | Bin 651 -> 0 bytes public/images/control-panel/blocks.svg | 334 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/images/control-panel/contact.gif | Bin 1388 -> 0 bytes public/images/control-panel/contact.png | Bin 2707 -> 0 bytes public/images/control-panel/contact.svg | 795 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/images/control-panel/edit-profile-enterprise.gif | Bin 2126 -> 0 bytes public/images/control-panel/edit-profile-enterprise.png | Bin 3969 -> 0 bytes public/images/control-panel/edit-profile-enterprise.svg | 549 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/images/control-panel/edit-profile-group.gif | Bin 2093 -> 0 bytes public/images/control-panel/edit-profile-group.png | Bin 4065 -> 0 bytes public/images/control-panel/edit-profile-group.svg | 675 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/images/control-panel/edit-profile.gif | Bin 1809 -> 0 bytes public/images/control-panel/edit-profile.png | Bin 3251 -> 0 bytes public/images/control-panel/edit-profile.svg | 590 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/images/control-panel/editpaste.gif | Bin 1365 -> 0 bytes public/images/control-panel/editpaste.png | Bin 1765 -> 0 bytes public/images/control-panel/editpaste.svg | 1 - public/images/control-panel/email.gif | Bin 1873 -> 0 bytes public/images/control-panel/email.png | Bin 2500 -> 0 bytes public/images/control-panel/email.svg | 1 - public/images/control-panel/emblem-favorite.gif | Bin 1054 -> 0 bytes public/images/control-panel/emblem-favorite.png | Bin 2394 -> 0 bytes public/images/control-panel/emblem-favorite.svg | 1 - public/images/control-panel/header-footer.gif | Bin 899 -> 0 bytes public/images/control-panel/header-footer.png | Bin 773 -> 0 bytes public/images/control-panel/header-footer.svg | 325 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/images/control-panel/important.gif | Bin 1070 -> 0 bytes public/images/control-panel/important.png | Bin 2311 -> 0 bytes public/images/control-panel/important.svg | 1 - public/images/control-panel/mail-mark-junk.png | Bin 4035 -> 0 bytes public/images/control-panel/mail-mark-junk.svg | 504 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/images/control-panel/package.gif | Bin 1567 -> 0 bytes public/images/control-panel/package.png | Bin 2053 -> 0 bytes public/images/control-panel/package.svg | 485 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/images/control-panel/password.gif | Bin 1652 -> 0 bytes public/images/control-panel/password.png | Bin 2000 -> 0 bytes public/images/control-panel/password.svg | 1 - public/images/control-panel/preferences-desktop-wallpaper.gif | Bin 2086 -> 0 bytes public/images/control-panel/preferences-desktop-wallpaper.png | Bin 3253 -> 0 bytes public/images/control-panel/preferences-desktop-wallpaper.svg | 1 - public/images/control-panel/set-geolocation.gif | Bin 2219 -> 0 bytes public/images/control-panel/set-geolocation.png | Bin 4305 -> 0 bytes public/images/control-panel/stop.gif | Bin 1454 -> 0 bytes public/images/control-panel/stop.png | Bin 3136 -> 0 bytes public/images/control-panel/stop.svg | 336 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/images/control-panel/system-file-manager.gif | Bin 1095 -> 0 bytes public/images/control-panel/system-file-manager.png | Bin 1403 -> 0 bytes public/images/control-panel/system-file-manager.svg | 1 - public/images/control-panel/system-users.gif | Bin 1925 -> 0 bytes public/images/control-panel/system-users.png | Bin 3562 -> 0 bytes public/images/control-panel/system-users.svg | 1 - public/images/control-panel/text-editor-disabled.gif | Bin 1878 -> 0 bytes public/images/control-panel/text-editor-disabled.png | 1 - public/images/control-panel/text-editor-disabled.svg | 1 - public/images/control-panel/text-editor.gif | Bin 1833 -> 0 bytes public/images/control-panel/text-editor.png | Bin 2565 -> 0 bytes public/images/control-panel/text-editor.svg | 1 - public/images/doc/activation-conlusion.en.png | Bin 9668 -> 0 bytes public/images/doc/activation-conlusion.pt.png | Bin 11603 -> 0 bytes public/images/doc/activation-question.en.png | Bin 21710 -> 0 bytes public/images/doc/activation-question.pt.png | Bin 23004 -> 0 bytes public/images/doc/add-member-enterprise.en.png | Bin 19239 -> 0 bytes public/images/doc/add-member-enterprise.pt.png | Bin 20421 -> 0 bytes public/images/doc/admin-panel-export-users.en.png | Bin 9744 -> 0 bytes public/images/doc/admin-panel-export-users.pt.png | Bin 11070 -> 0 bytes public/images/doc/admin-panel-manage-users.en.png | Bin 21666 -> 0 bytes public/images/doc/admin-panel-manage-users.pt.png | Bin 24760 -> 0 bytes public/images/doc/admin-panel-send-email.en.png | Bin 9528 -> 0 bytes public/images/doc/admin-panel-send-email.pt.png | Bin 10689 -> 0 bytes public/images/doc/admin-send-email.en.png | Bin 17002 -> 0 bytes public/images/doc/admin-send-email.pt.png | Bin 16471 -> 0 bytes public/images/doc/advanced-article-archives-list.en.png | Bin 13905 -> 0 bytes public/images/doc/advanced-article-archives-list.pt.png | Bin 16153 -> 0 bytes public/images/doc/advanced-article-created-link.en.png | Bin 16076 -> 0 bytes public/images/doc/advanced-article-created-link.pt.png | Bin 16314 -> 0 bytes public/images/doc/advanced-article-created-object.en.png | Bin 15823 -> 0 bytes public/images/doc/advanced-article-created-object.pt.png | Bin 16983 -> 0 bytes public/images/doc/advanced-article-insert-html.en.png | Bin 15547 -> 0 bytes public/images/doc/advanced-article-insert-html.pt.png | Bin 16798 -> 0 bytes public/images/doc/advanced-article-insert-links.en.png | Bin 14301 -> 0 bytes public/images/doc/advanced-article-insert-links.pt.png | Bin 14654 -> 0 bytes public/images/doc/advanced-article-popup-insert-html.en.png | Bin 25518 -> 0 bytes public/images/doc/advanced-article-popup-insert-html.pt.png | Bin 25989 -> 0 bytes public/images/doc/advanced-article-popup-insert-link.en.png | Bin 10870 -> 0 bytes public/images/doc/advanced-article-popup-insert-link.pt.png | Bin 13102 -> 0 bytes public/images/doc/advanced-article-upload-images.en.png | Bin 17880 -> 0 bytes public/images/doc/advanced-article-upload-images.pt.png | Bin 18266 -> 0 bytes public/images/doc/article-bigger-spread-view.en.png | Bin 55019 -> 0 bytes public/images/doc/article-bigger-spread-view.pt.png | Bin 59572 -> 0 bytes public/images/doc/article-block.en.png | Bin 8130 -> 0 bytes public/images/doc/article-block.pt.png | Bin 8124 -> 0 bytes public/images/doc/article-creation-categorization.en.png | Bin 7513 -> 0 bytes public/images/doc/article-creation-categorization.pt.png | Bin 10382 -> 0 bytes public/images/doc/article-creation-category-choosen.en.png | Bin 12410 -> 0 bytes public/images/doc/article-creation-category-choosen.pt.png | Bin 30006 -> 0 bytes public/images/doc/article-creation-options.en.png | Bin 11411 -> 0 bytes public/images/doc/article-creation-options.pt.png | Bin 13693 -> 0 bytes public/images/doc/article-creation-tags.en.png | Bin 3616 -> 0 bytes public/images/doc/article-creation-tags.pt.png | Bin 3015 -> 0 bytes public/images/doc/article-spread-view.en.png | Bin 15515 -> 0 bytes public/images/doc/article-spread-view.pt.png | Bin 16449 -> 0 bytes public/images/doc/article-spread.en.png | Bin 18541 -> 0 bytes public/images/doc/article-spread.pt.png | Bin 18062 -> 0 bytes public/images/doc/article-text-lead.en.png | Bin 14196 -> 0 bytes public/images/doc/article-text-lead.pt.png | Bin 14203 -> 0 bytes public/images/doc/article-text.en.png | Bin 21005 -> 0 bytes public/images/doc/article-text.pt.png | Bin 19784 -> 0 bytes public/images/doc/block-actions.en.png | Bin 3671 -> 0 bytes public/images/doc/blog-buttons.en.png | Bin 6425 -> 0 bytes public/images/doc/blog-buttons.pt.png | Bin 6622 -> 0 bytes public/images/doc/box-register.en.png | Bin 33104 -> 0 bytes public/images/doc/box-register.pt.png | Bin 33025 -> 0 bytes public/images/doc/change-password.en.png | Bin 14187 -> 0 bytes public/images/doc/change-password.pt.png | Bin 11155 -> 0 bytes public/images/doc/changing-role-enterprise-member.en.png | Bin 10882 -> 0 bytes public/images/doc/changing-role-enterprise-member.pt.png | Bin 11035 -> 0 bytes public/images/doc/closed-comment-box.en.png | Bin 14601 -> 0 bytes public/images/doc/closed-comment-box.pt.png | Bin 15648 -> 0 bytes public/images/doc/cms-article-icons.en.png | Bin 3019 -> 0 bytes public/images/doc/cms-article-icons.pt.png | Bin 3019 -> 0 bytes public/images/doc/cms-article-types.en.png | Bin 22860 -> 0 bytes public/images/doc/cms-article-types.pt.png | Bin 20287 -> 0 bytes public/images/doc/cms-blog-creation.en.png | Bin 33909 -> 0 bytes public/images/doc/cms-blog-creation.pt.png | Bin 34335 -> 0 bytes public/images/doc/cms-blog-public-visualization.en.png | Bin 30103 -> 0 bytes public/images/doc/cms-blog-public-visualization.pt.png | Bin 31206 -> 0 bytes public/images/doc/cms-folder-icons.en.png | Bin 2430 -> 0 bytes public/images/doc/cms-folder-icons.pt.png | Bin 2430 -> 0 bytes public/images/doc/cms-gallery-public-visualization.en.png | Bin 29716 -> 0 bytes public/images/doc/cms-gallery-public-visualization.pt.png | Bin 30670 -> 0 bytes public/images/doc/cms-new-article.en.png | Bin 29802 -> 0 bytes public/images/doc/cms-new-article.pt.png | Bin 30477 -> 0 bytes public/images/doc/cms-spread-article-icon.en.png | Bin 24692 -> 0 bytes public/images/doc/cms-spread-article-icon.pt.png | Bin 25228 -> 0 bytes public/images/doc/cms-uploading-files.en.png | Bin 24675 -> 0 bytes public/images/doc/cms-uploading-files.pt.png | Bin 26547 -> 0 bytes public/images/doc/cms.en.png | Bin 28817 -> 0 bytes public/images/doc/cms.pt.png | Bin 29618 -> 0 bytes public/images/doc/comments-of-logged-in-out-person.en.png | Bin 35608 -> 0 bytes public/images/doc/comments-of-logged-in-out-person.pt.png | Bin 36579 -> 0 bytes public/images/doc/comments.en.png | Bin 14799 -> 0 bytes public/images/doc/comments.pt.png | Bin 14654 -> 0 bytes public/images/doc/communities-block.en.png | Bin 20837 -> 0 bytes public/images/doc/communities-block.pt.png | Bin 21690 -> 0 bytes public/images/doc/communities-search-field.en.png | Bin 48251 -> 0 bytes public/images/doc/communities-search-field.pt.png | Bin 48736 -> 0 bytes public/images/doc/communities-search-results-with-example.en.png | Bin 24421 -> 0 bytes public/images/doc/communities-search-results-with-example.pt.png | Bin 24967 -> 0 bytes public/images/doc/community-balloon-closed-en.png | Bin 8141 -> 0 bytes public/images/doc/community-balloon-closed.en.png | Bin 8141 -> 0 bytes public/images/doc/community-balloon-en.png | Bin 14787 -> 0 bytes public/images/doc/community-balloon-pt.png | Bin 13267 -> 0 bytes public/images/doc/community-balloon.en.png | Bin 14787 -> 0 bytes public/images/doc/community-balloon.pt.png | Bin 13267 -> 0 bytes public/images/doc/community-control-panel-manage-members.en.png | Bin 35386 -> 0 bytes public/images/doc/community-control-panel-manage-members.pt.png | Bin 36923 -> 0 bytes public/images/doc/community-control-panel-with-approval-task.en.png | Bin 11485 -> 0 bytes public/images/doc/community-control-panel-with-approval-task.pt.png | Bin 12060 -> 0 bytes public/images/doc/community-control-panel-with-tasks.en.png | Bin 11076 -> 0 bytes public/images/doc/community-control-panel-with-tasks.pt.png | Bin 11569 -> 0 bytes public/images/doc/community-creation-form.en.png | Bin 27317 -> 0 bytes public/images/doc/community-creation-form.pt.png | Bin 28206 -> 0 bytes public/images/doc/community-creation.en.png | Bin 27303 -> 0 bytes public/images/doc/community-creation.pt.png | Bin 28294 -> 0 bytes public/images/doc/community-edit-sideboxes.en.png | Bin 25732 -> 0 bytes public/images/doc/community-edit-sideboxes.pt.png | Bin 75674 -> 0 bytes public/images/doc/community-image-block.en.png | Bin 32805 -> 0 bytes public/images/doc/community-image-block.pt.png | Bin 32812 -> 0 bytes public/images/doc/community-import-invitation-step-1.en.png | Bin 20669 -> 0 bytes public/images/doc/community-import-invitation-step-1.pt.png | Bin 22366 -> 0 bytes public/images/doc/community-import-invitation-step-2.en.png | Bin 38317 -> 0 bytes public/images/doc/community-import-invitation-step-2.pt.png | Bin 40928 -> 0 bytes public/images/doc/community-info-block.en.png | Bin 21859 -> 0 bytes public/images/doc/community-info-block.pt.png | Bin 21646 -> 0 bytes public/images/doc/community-manually-invitation-step-1.en.png | Bin 15506 -> 0 bytes public/images/doc/community-manually-invitation-step-1.pt.png | Bin 16035 -> 0 bytes public/images/doc/community-manually-invitation-step-2.en.png | Bin 28713 -> 0 bytes public/images/doc/community-manually-invitation-step-2.pt.png | Bin 31579 -> 0 bytes public/images/doc/community-members-with-invitation-button.en.png | Bin 19444 -> 0 bytes public/images/doc/community-members-with-invitation-button.pt.png | Bin 19963 -> 0 bytes public/images/doc/community-members-with-send-mail-button.en.png | Bin 32532 -> 0 bytes public/images/doc/community-members-with-send-mail-button.pt.png | Bin 32410 -> 0 bytes public/images/doc/community-network-block.en.png | Bin 12335 -> 0 bytes public/images/doc/community-network-block.pt.png | Bin 11689 -> 0 bytes public/images/doc/community-send-email.en.png | Bin 17614 -> 0 bytes public/images/doc/community-send-email.pt.png | Bin 17164 -> 0 bytes public/images/doc/community-sideboxes-add-block.en.png | Bin 26709 -> 0 bytes public/images/doc/community-sideboxes-add-block.pt.png | Bin 26765 -> 0 bytes public/images/doc/confirmation-adding-friend.en.png | Bin 18134 -> 0 bytes public/images/doc/confirmation-adding-friend.pt.png | Bin 18842 -> 0 bytes public/images/doc/contact-button.en.png | Bin 21201 -> 0 bytes public/images/doc/contact-button.pt.png | Bin 20538 -> 0 bytes public/images/doc/control-panel-change-password.en.png | Bin 46830 -> 0 bytes public/images/doc/control-panel-change-password.pt.png | Bin 48458 -> 0 bytes public/images/doc/control-panel-community-edit-appearance.en.png | Bin 34489 -> 0 bytes public/images/doc/control-panel-community-edit-appearance.pt.png | Bin 36486 -> 0 bytes public/images/doc/control-panel-community-edit-header-footer.en.png | Bin 35200 -> 0 bytes public/images/doc/control-panel-community-edit-header-footer.pt.png | Bin 36671 -> 0 bytes public/images/doc/control-panel-community-edit-sideboxes.en.png | Bin 35075 -> 0 bytes public/images/doc/control-panel-community-edit-sideboxes.pt.png | Bin 36930 -> 0 bytes public/images/doc/control-panel-content-management.en.png | Bin 46256 -> 0 bytes public/images/doc/control-panel-content-management.pt.png | Bin 48516 -> 0 bytes public/images/doc/control-panel-create-blog.en.png | Bin 48046 -> 0 bytes public/images/doc/control-panel-create-blog.pt.png | Bin 50685 -> 0 bytes public/images/doc/control-panel-disable-enterprise.en.png | Bin 46970 -> 0 bytes public/images/doc/control-panel-disable-enterprise.pt.png | Bin 50086 -> 0 bytes public/images/doc/control-panel-enterprise-edit-appearance.en.png | Bin 47016 -> 0 bytes public/images/doc/control-panel-enterprise-edit-appearance.pt.png | Bin 50141 -> 0 bytes public/images/doc/control-panel-enterprise-edit-header-footer.en.png | Bin 47051 -> 0 bytes public/images/doc/control-panel-enterprise-edit-header-footer.pt.png | Bin 50159 -> 0 bytes public/images/doc/control-panel-enterprise-edit-profile-info.en.png | Bin 47613 -> 0 bytes public/images/doc/control-panel-enterprise-edit-profile-info.pt.png | Bin 50666 -> 0 bytes public/images/doc/control-panel-enterprise-edit-sideboxes.en.png | Bin 47121 -> 0 bytes public/images/doc/control-panel-enterprise-edit-sideboxes.pt.png | Bin 50068 -> 0 bytes public/images/doc/control-panel-manage-groups.en.png | Bin 48421 -> 0 bytes public/images/doc/control-panel-manage-groups.pt.png | Bin 51220 -> 0 bytes public/images/doc/control-panel-manage-members.en.png | Bin 46468 -> 0 bytes public/images/doc/control-panel-manage-members.pt.png | Bin 49821 -> 0 bytes public/images/doc/control-panel-manage-products.en.png | Bin 44508 -> 0 bytes public/images/doc/control-panel-manage-products.pt.png | Bin 47986 -> 0 bytes public/images/doc/control-panel-menu.en.png | Bin 10011 -> 0 bytes public/images/doc/control-panel-menu.pt.png | Bin 10653 -> 0 bytes public/images/doc/control-panel-person-delete-profile.en.png | Bin 27581 -> 0 bytes public/images/doc/control-panel-person-delete-profile.pt.png | Bin 28366 -> 0 bytes public/images/doc/control-panel-person-edit-profile-info.en.png | Bin 45688 -> 0 bytes public/images/doc/control-panel-person-edit-profile-info.pt.png | Bin 48558 -> 0 bytes public/images/doc/control-panel-user-edit-appearance.en.png | Bin 46608 -> 0 bytes public/images/doc/control-panel-user-edit-appearance.pt.png | Bin 48644 -> 0 bytes public/images/doc/control-panel-user-edit-header-footer.en.png | Bin 47314 -> 0 bytes public/images/doc/control-panel-user-edit-header-footer.pt.png | Bin 48956 -> 0 bytes public/images/doc/control-panel-user-edit-sideboxes.en.png | Bin 47107 -> 0 bytes public/images/doc/control-panel-user-edit-sideboxes.pt.png | Bin 49118 -> 0 bytes public/images/doc/control-panel-with-tasks.en.png | Bin 11384 -> 0 bytes public/images/doc/control-panel-with-tasks.pt.png | Bin 11869 -> 0 bytes public/images/doc/disable-enterprise-confirmation.en.png | Bin 12091 -> 0 bytes public/images/doc/disable-enterprise-confirmation.pt.png | Bin 12253 -> 0 bytes public/images/doc/disabled-enterprise-block.en.png | Bin 4585 -> 0 bytes public/images/doc/disabled-enterprise-block.pt.png | Bin 4855 -> 0 bytes public/images/doc/edit-appearance.en.png | Bin 13457 -> 0 bytes public/images/doc/edit-appearance.pt.png | Bin 13351 -> 0 bytes public/images/doc/edit-block.en.png | Bin 15391 -> 0 bytes public/images/doc/edit-block.pt.png | Bin 15382 -> 0 bytes public/images/doc/edit-header-footer.en.png | Bin 91368 -> 0 bytes public/images/doc/edit-header-footer.pt.png | Bin 93776 -> 0 bytes public/images/doc/enterprise-activation-box.en.png | Bin 54565 -> 0 bytes public/images/doc/enterprise-activation-box.pt.png | Bin 54857 -> 0 bytes public/images/doc/enterprise-activation-terms.en.png | Bin 8881 -> 0 bytes public/images/doc/enterprise-activation-terms.pt.png | Bin 9370 -> 0 bytes public/images/doc/enterprise-edit-profile-categories.en.png | Bin 11803 -> 0 bytes public/images/doc/enterprise-edit-profile-categories.pt.png | Bin 11617 -> 0 bytes public/images/doc/enterprise-edit-profile-info-add-picture.en.png | Bin 6203 -> 0 bytes public/images/doc/enterprise-edit-profile-info-add-picture.pt.png | Bin 5276 -> 0 bytes public/images/doc/enterprise-edit-profile-info-change-picture.en.png | Bin 18971 -> 0 bytes public/images/doc/enterprise-edit-profile-info-change-picture.pt.png | Bin 18518 -> 0 bytes public/images/doc/enterprise-edit-profile-info-general-information.en.png | Bin 15799 -> 0 bytes public/images/doc/enterprise-edit-profile-info-general-information.pt.png | Bin 16759 -> 0 bytes public/images/doc/enterprise-edit-profile-info-moderation-options.en.png | Bin 12904 -> 0 bytes public/images/doc/enterprise-edit-profile-info-moderation-options.pt.png | Bin 12928 -> 0 bytes public/images/doc/enterprise-edit-profile-privacy-options.en.png | Bin 13549 -> 0 bytes public/images/doc/enterprise-edit-profile-privacy-options.pt.png | Bin 14679 -> 0 bytes public/images/doc/enterprise-edit-sideboxes.en.png | Bin 97200 -> 0 bytes public/images/doc/enterprise-edit-sideboxes.pt.png | Bin 100924 -> 0 bytes public/images/doc/enterprise-image-block.en.png | Bin 34630 -> 0 bytes public/images/doc/enterprise-image-block.pt.png | Bin 34545 -> 0 bytes public/images/doc/enterprise-info-block.en.png | Bin 23777 -> 0 bytes public/images/doc/enterprise-info-block.pt.png | Bin 23418 -> 0 bytes public/images/doc/enterprise-members-list.en.png | Bin 11345 -> 0 bytes public/images/doc/enterprise-members-list.pt.png | Bin 11722 -> 0 bytes public/images/doc/enterprise-network-block.en.png | Bin 10300 -> 0 bytes public/images/doc/enterprise-network-block.pt.png | Bin 9561 -> 0 bytes public/images/doc/enterprise-new-product-last-category.en.png | Bin 33153 -> 0 bytes public/images/doc/enterprise-new-product-no-category.en.png | Bin 21536 -> 0 bytes public/images/doc/enterprise-new-product-second-category.en.png | Bin 26147 -> 0 bytes public/images/doc/enterprise-product-add-input-button.en.png | Bin 14943 -> 0 bytes public/images/doc/enterprise-product-add-input-form.en.png | Bin 29770 -> 0 bytes public/images/doc/enterprise-product-change-image-form.en.png | Bin 30127 -> 0 bytes public/images/doc/enterprise-product-complete.en.png | Bin 69736 -> 0 bytes public/images/doc/enterprise-product-edit-basic-info-form.en.png | Bin 22449 -> 0 bytes public/images/doc/enterprise-product-edit-description-form.en.png | Bin 14748 -> 0 bytes public/images/doc/enterprise-product-edit-name-form.en.png | Bin 13528 -> 0 bytes public/images/doc/enterprise-product-list-new-product-button.en.png | Bin 14467 -> 0 bytes public/images/doc/enterprise-product-list-new-product-button.pt.png | Bin 14510 -> 0 bytes public/images/doc/enterprise-product.en.png | Bin 33184 -> 0 bytes public/images/doc/enterprise-sideboxes-add-block.en.png | Bin 26709 -> 0 bytes public/images/doc/enterprise-sideboxes-add-block.pt.png | Bin 27731 -> 0 bytes public/images/doc/enterprises-block.en.png | Bin 12515 -> 0 bytes public/images/doc/enterprises-block.pt.png | Bin 12865 -> 0 bytes public/images/doc/enterprises-search-field.en.png | Bin 22688 -> 0 bytes public/images/doc/enterprises-search-field.pt.png | Bin 23334 -> 0 bytes public/images/doc/enterprises-search-results-with-example.en.png | Bin 19992 -> 0 bytes public/images/doc/enterprises-search-results-with-example.pt.png | Bin 23334 -> 0 bytes public/images/doc/environment-homepage-with-login-button.en.png | Bin 32840 -> 0 bytes public/images/doc/environment-homepage-with-login-button.pt.png | Bin 32733 -> 0 bytes public/images/doc/favorite-enterprises-block.en.png | Bin 6526 -> 0 bytes public/images/doc/favorite-enterprises-block.pt.png | Bin 7681 -> 0 bytes public/images/doc/feed-reader-block.en.png | Bin 5793 -> 0 bytes public/images/doc/feed-reader-block.pt.png | Bin 6023 -> 0 bytes public/images/doc/friends-block.en.png | Bin 25813 -> 0 bytes public/images/doc/friends-block.pt.png | Bin 26716 -> 0 bytes public/images/doc/gallery-buttons.en.png | Bin 10195 -> 0 bytes public/images/doc/gallery-buttons.pt.png | Bin 10804 -> 0 bytes public/images/doc/groups-list-with-create-community.en.png | Bin 25000 -> 0 bytes public/images/doc/groups-list-with-create-community.pt.png | Bin 25668 -> 0 bytes public/images/doc/groups-list-with-manage-community.en.png | Bin 23532 -> 0 bytes public/images/doc/groups-list-with-manage-community.pt.png | Bin 24020 -> 0 bytes public/images/doc/groups-list-with-manage-enterprise.en.png | Bin 23307 -> 0 bytes public/images/doc/groups-list-with-manage-enterprise.pt.png | Bin 23783 -> 0 bytes public/images/doc/join-community-confirmation.en.png | Bin 12743 -> 0 bytes public/images/doc/join-community-confirmation.pt.png | Bin 11879 -> 0 bytes public/images/doc/joining-community-button.en.png | Bin 114913 -> 0 bytes public/images/doc/joining-community-button.pt.png | Bin 120894 -> 0 bytes public/images/doc/links-block.en.png | Bin 7097 -> 0 bytes public/images/doc/links-block.pt.png | Bin 7081 -> 0 bytes public/images/doc/location-map-block.en.png | Bin 31614 -> 0 bytes public/images/doc/location-map-block.pt.png | Bin 31572 -> 0 bytes public/images/doc/manage-friends.en.png | Bin 45780 -> 0 bytes public/images/doc/manage-friends.pt.png | Bin 48003 -> 0 bytes public/images/doc/members-block.en.png | Bin 14706 -> 0 bytes public/images/doc/members-block.pt.png | Bin 15409 -> 0 bytes public/images/doc/menu-admin.en.png | Bin 10712 -> 0 bytes public/images/doc/menu-admin.pt.png | Bin 11265 -> 0 bytes public/images/doc/menu-communities.en.png | Bin 12682 -> 0 bytes public/images/doc/menu-communities.pt.png | Bin 12700 -> 0 bytes public/images/doc/menu-control-panel.en.png | Bin 10011 -> 0 bytes public/images/doc/menu-control-panel.pt.png | Bin 10653 -> 0 bytes public/images/doc/menu-enterprises.en.png | Bin 12565 -> 0 bytes public/images/doc/menu-enterprises.pt.png | Bin 12998 -> 0 bytes public/images/doc/menu-logout.en.png | Bin 10904 -> 0 bytes public/images/doc/menu-logout.pt.png | Bin 10711 -> 0 bytes public/images/doc/menu-more-active-communities.en.png | Bin 22951 -> 0 bytes public/images/doc/menu-more-active-communities.pt.png | Bin 25864 -> 0 bytes public/images/doc/menu-more-active-people.en.png | Bin 31432 -> 0 bytes public/images/doc/menu-more-active-people.pt.png | Bin 33021 -> 0 bytes public/images/doc/menu-more-popular-communities.en.png | Bin 24080 -> 0 bytes public/images/doc/menu-more-popular-communities.pt.png | Bin 25215 -> 0 bytes public/images/doc/menu-more-popular-people.en.png | Bin 31182 -> 0 bytes public/images/doc/menu-more-popular-people.pt.png | Bin 32053 -> 0 bytes public/images/doc/menu-more-recent-communities.en.png | Bin 23113 -> 0 bytes public/images/doc/menu-more-recent-communities.pt.png | Bin 26099 -> 0 bytes public/images/doc/menu-more-recent-people.en.png | Bin 31527 -> 0 bytes public/images/doc/menu-more-recent-people.pt.png | Bin 24386 -> 0 bytes public/images/doc/menu-people.en.png | Bin 12138 -> 0 bytes public/images/doc/menu-people.pt.png | Bin 12302 -> 0 bytes public/images/doc/menu-products.en.png | Bin 12296 -> 0 bytes public/images/doc/menu-products.pt.png | Bin 12276 -> 0 bytes public/images/doc/menu-search.en.png | Bin 12002 -> 0 bytes public/images/doc/menu-search.pt.png | Bin 11715 -> 0 bytes public/images/doc/more-active-communities-detail.en.png | Bin 6686 -> 0 bytes public/images/doc/more-active-communities-detail.pt.png | Bin 6731 -> 0 bytes public/images/doc/more-active-communities-with-example.en.png | Bin 13981 -> 0 bytes public/images/doc/more-active-communities-with-example.pt.png | Bin 13842 -> 0 bytes public/images/doc/more-active-communities.en.png | Bin 26776 -> 0 bytes public/images/doc/more-active-communities.pt.png | Bin 26558 -> 0 bytes public/images/doc/more-active-people-detail.en.png | Bin 5141 -> 0 bytes public/images/doc/more-active-people-detail.pt.png | Bin 5115 -> 0 bytes public/images/doc/more-active-people-with-example.en.png | Bin 13773 -> 0 bytes public/images/doc/more-active-people-with-example.pt.png | Bin 13700 -> 0 bytes public/images/doc/more-active-people.en.png | Bin 29664 -> 0 bytes public/images/doc/more-active-people.pt.png | Bin 29948 -> 0 bytes public/images/doc/more-popular-communities-detail.en.png | Bin 6561 -> 0 bytes public/images/doc/more-popular-communities-detail.pt.png | Bin 6677 -> 0 bytes public/images/doc/more-popular-communities-with-example.en.png | Bin 13407 -> 0 bytes public/images/doc/more-popular-communities-with-example.pt.png | Bin 13670 -> 0 bytes public/images/doc/more-popular-communities.en.png | Bin 25275 -> 0 bytes public/images/doc/more-popular-communities.pt.png | Bin 25189 -> 0 bytes public/images/doc/more-popular-people-detail.en.png | Bin 5080 -> 0 bytes public/images/doc/more-popular-people-detail.pt.png | Bin 5072 -> 0 bytes public/images/doc/more-popular-people-with-example.en.png | Bin 12961 -> 0 bytes public/images/doc/more-popular-people-with-example.pt.png | Bin 13413 -> 0 bytes public/images/doc/more-popular-people.en.png | Bin 31706 -> 0 bytes public/images/doc/more-popular-people.pt.png | Bin 32130 -> 0 bytes public/images/doc/more-recent-communities-detail.en.png | Bin 7225 -> 0 bytes public/images/doc/more-recent-communities-detail.pt.png | Bin 7355 -> 0 bytes public/images/doc/more-recent-communities-with-example.en.png | Bin 14371 -> 0 bytes public/images/doc/more-recent-communities-with-example.pt.png | Bin 14951 -> 0 bytes public/images/doc/more-recent-communities.en.png | Bin 26855 -> 0 bytes public/images/doc/more-recent-communities.pt.png | Bin 27718 -> 0 bytes public/images/doc/more-recent-people-detail.en.png | Bin 5829 -> 0 bytes public/images/doc/more-recent-people-detail.pt.png | Bin 5942 -> 0 bytes public/images/doc/more-recent-people-with-example.en.png | Bin 14022 -> 0 bytes public/images/doc/more-recent-people-with-example.pt.png | Bin 14863 -> 0 bytes public/images/doc/more-recent-people.en.png | Bin 34745 -> 0 bytes public/images/doc/more-recent-people.pt.png | Bin 35875 -> 0 bytes public/images/doc/new-folder.en.png | Bin 29766 -> 0 bytes public/images/doc/new-folder.pt.png | Bin 32447 -> 0 bytes public/images/doc/open-comment-box-for-logged-in.en.png | Bin 9160 -> 0 bytes public/images/doc/open-comment-box-for-logged-in.pt.png | Bin 10499 -> 0 bytes public/images/doc/open-comment-box-for-not-logged-in.en.png | Bin 14210 -> 0 bytes public/images/doc/open-comment-box-for-not-logged-in.pt.png | Bin 16247 -> 0 bytes public/images/doc/other-person-view-profile-link.en.png | Bin 48146 -> 0 bytes public/images/doc/other-person-view-profile-link.pt.png | Bin 48555 -> 0 bytes public/images/doc/people-search-field.en.png | Bin 49899 -> 0 bytes public/images/doc/people-search-field.pt.png | Bin 50475 -> 0 bytes public/images/doc/people-search-results-with-example.en.png | Bin 15278 -> 0 bytes public/images/doc/people-search-results-with-example.pt.png | Bin 15858 -> 0 bytes public/images/doc/person-activities-list.en.png | Bin 51683 -> 0 bytes public/images/doc/person-activities-list.pt.png | Bin 53725 -> 0 bytes public/images/doc/person-balloon-closed-en.png | Bin 6584 -> 0 bytes public/images/doc/person-balloon-closed.en.png | Bin 6584 -> 0 bytes public/images/doc/person-balloon-en.png | Bin 12277 -> 0 bytes public/images/doc/person-balloon-pt.png | Bin 12966 -> 0 bytes public/images/doc/person-balloon.en.png | Bin 12277 -> 0 bytes public/images/doc/person-balloon.pt.png | Bin 12966 -> 0 bytes public/images/doc/person-delete-profile-confirmation.en.png | Bin 13375 -> 0 bytes public/images/doc/person-delete-profile-confirmation.pt.png | Bin 13981 -> 0 bytes public/images/doc/person-edit-profile-categories.en.png | Bin 24323 -> 0 bytes public/images/doc/person-edit-profile-categories.pt.png | Bin 25211 -> 0 bytes public/images/doc/person-edit-profile-info-change-picture.en.png | Bin 20640 -> 0 bytes public/images/doc/person-edit-profile-info-change-picture.pt.png | Bin 20093 -> 0 bytes public/images/doc/person-edit-profile-info-general-informationen.en.png | Bin 11650 -> 0 bytes public/images/doc/person-edit-profile-info-general-informationen.pt.png | Bin 12938 -> 0 bytes public/images/doc/person-edit-profile-privacy-options.en.png | Bin 13897 -> 0 bytes public/images/doc/person-edit-profile-privacy-options.pt.png | Bin 14228 -> 0 bytes public/images/doc/person-view-profile-link.en.png | Bin 42751 -> 0 bytes public/images/doc/person-view-profile-link.pt.png | Bin 42472 -> 0 bytes public/images/doc/person-wall-scrap-reply-button.en.png | Bin 32889 -> 0 bytes public/images/doc/person-wall-scrap-reply-form.en.png | Bin 40929 -> 0 bytes public/images/doc/person-wall-scrap-reply-form.pt.png | Bin 41950 -> 0 bytes public/images/doc/person-wall-scrap-reply-sent.en.png | Bin 34429 -> 0 bytes public/images/doc/person-wall-scrap-reply-sent.pt.png | Bin 34743 -> 0 bytes public/images/doc/person-wall-scrap-sent.en.png | Bin 25913 -> 0 bytes public/images/doc/person-wall-scrap-sent.pt.png | Bin 29733 -> 0 bytes public/images/doc/person-wall-writing-scrap.en.png | Bin 20981 -> 0 bytes public/images/doc/person-wall-writing-scrap.pt.png | Bin 20203 -> 0 bytes public/images/doc/products-block.en.png | Bin 7553 -> 0 bytes public/images/doc/products-block.pt.png | Bin 7257 -> 0 bytes public/images/doc/products-search-field.en.png | Bin 41796 -> 0 bytes public/images/doc/products-search-field.pt.png | Bin 42149 -> 0 bytes public/images/doc/products-search-results-with-example.en.png | Bin 18909 -> 0 bytes public/images/doc/products-search-results-with-example.pt.png | Bin 18938 -> 0 bytes public/images/doc/profile-image-block.en.png | Bin 33475 -> 0 bytes public/images/doc/profile-image-block.pt.png | Bin 33548 -> 0 bytes public/images/doc/profile-info-block.en.png | Bin 22656 -> 0 bytes public/images/doc/profile-info-block.pt.png | Bin 22572 -> 0 bytes public/images/doc/profile-with-button-to-add-friends.en.png | Bin 67705 -> 0 bytes public/images/doc/profile-with-button-to-add-friends.pt.png | Bin 64486 -> 0 bytes public/images/doc/recent-content-block.en.png | Bin 7774 -> 0 bytes public/images/doc/recent-content-block.pt.png | Bin 8109 -> 0 bytes public/images/doc/remove-comment-confirmation.en.png | Bin 7838 -> 0 bytes public/images/doc/remove-comment-confirmation.pt.png | Bin 7548 -> 0 bytes public/images/doc/remove-friend-confirmation.en.png | Bin 33248 -> 0 bytes public/images/doc/remove-friend-confirmation.pt.png | Bin 33904 -> 0 bytes public/images/doc/remove-friend.en.png | Bin 30219 -> 0 bytes public/images/doc/remove-friend.pt.png | Bin 35491 -> 0 bytes public/images/doc/search-more-options-open.en.png | Bin 19178 -> 0 bytes public/images/doc/search-more-options-open.pt.png | Bin 20380 -> 0 bytes public/images/doc/search-more-options.en.png | Bin 9271 -> 0 bytes public/images/doc/search-more-options.pt.png | Bin 9638 -> 0 bytes public/images/doc/search-results-with-example.en.png | Bin 75255 -> 0 bytes public/images/doc/search-results-with-example.pt.png | Bin 79334 -> 0 bytes public/images/doc/search-view-all-results-with-example.en.png | Bin 22921 -> 0 bytes public/images/doc/search-view-all-results-with-example.pt.png | Bin 23286 -> 0 bytes public/images/doc/send-message.en.png | Bin 16795 -> 0 bytes public/images/doc/send-message.pt.png | Bin 19068 -> 0 bytes public/images/doc/signup-form.en.png | Bin 30299 -> 0 bytes public/images/doc/signup-form.pt.png | Bin 31325 -> 0 bytes public/images/doc/slideshow-block.en.png | Bin 5952 -> 0 bytes public/images/doc/slideshow-block.pt.png | Bin 6257 -> 0 bytes public/images/doc/system-homepage-top-menu-admin.en.png | Bin 145627 -> 0 bytes public/images/doc/system-homepage-top-menu-admin.pt.png | Bin 120878 -> 0 bytes public/images/doc/system-homepage-top-menu.en.png | Bin 145851 -> 0 bytes public/images/doc/system-homepage-top-menu.pt.png | Bin 148763 -> 0 bytes public/images/doc/tags-block.en.png | Bin 6428 -> 0 bytes public/images/doc/tags-block.pt.png | Bin 6908 -> 0 bytes public/images/doc/tasks-list-approval-request.en.png | Bin 26710 -> 0 bytes public/images/doc/tasks-list-approval-request.pt.png | Bin 22428 -> 0 bytes public/images/doc/tasks-list-friendship-request.en.png | Bin 19451 -> 0 bytes public/images/doc/tasks-list-friendship-request.pt.png | Bin 19378 -> 0 bytes public/images/doc/tasks-list-membership-request.en.png | Bin 18961 -> 0 bytes public/images/doc/tasks-list-membership-request.pt.png | Bin 16878 -> 0 bytes public/images/doc/top-menu.en.png | Bin 9761 -> 0 bytes public/images/doc/top-menu.pt.png | Bin 9589 -> 0 bytes public/images/doc/uploading-files-to-gallery.en.png | Bin 23475 -> 0 bytes public/images/doc/uploading-files-to-gallery.pt.png | Bin 23852 -> 0 bytes public/images/doc/user-edit-sideboxes.en.png | Bin 118141 -> 0 bytes public/images/doc/user-edit-sideboxes.pt.png | Bin 122067 -> 0 bytes public/images/doc/user-friends-with-invitation-button.en.png | Bin 30845 -> 0 bytes public/images/doc/user-friends-with-invitation-button.pt.png | Bin 33564 -> 0 bytes public/images/doc/user-import-invitation-step-1.en.png | Bin 20134 -> 0 bytes public/images/doc/user-import-invitation-step-1.pt.png | Bin 21841 -> 0 bytes public/images/doc/user-import-invitation-step-2.en.png | Bin 37783 -> 0 bytes public/images/doc/user-import-invitation-step-2.pt.png | Bin 40475 -> 0 bytes public/images/doc/user-manually-invitation-step-1.en.png | Bin 14999 -> 0 bytes public/images/doc/user-manually-invitation-step-1.pt.png | Bin 15554 -> 0 bytes public/images/doc/user-manually-invitation-step-2.en.png | Bin 28208 -> 0 bytes public/images/doc/user-manually-invitation-step-2.pt.png | Bin 31091 -> 0 bytes public/images/doc/user-network-block.en.png | Bin 9183 -> 0 bytes public/images/doc/user-network-block.pt.png | Bin 8876 -> 0 bytes public/images/doc/user-sideboxes-add-block.en.png | Bin 32631 -> 0 bytes public/images/doc/user-sideboxes-add-block.pt.png | Bin 35865 -> 0 bytes public/images/doc/wysiwyg-buttons.en.png | Bin 6534 -> 0 bytes public/images/doc/wysiwyg-buttons.pt.png | Bin 6399 -> 0 bytes public/images/dotleaders.png | Bin 174 -> 0 bytes public/images/down-arrow.png | Bin 407 -> 0 bytes public/images/ecosol-tree-sprite.png | Bin 2861 -> 0 bytes public/images/fancybox/blank.gif | Bin 43 -> 0 bytes public/images/fancybox/fancy_close.png | Bin 1517 -> 0 bytes public/images/fancybox/fancy_loading.png | Bin 10195 -> 0 bytes public/images/fancybox/fancy_nav_left.png | Bin 1446 -> 0 bytes public/images/fancybox/fancy_nav_right.png | Bin 1454 -> 0 bytes public/images/fancybox/fancy_shadow_e.png | Bin 107 -> 0 bytes public/images/fancybox/fancy_shadow_n.png | Bin 106 -> 0 bytes public/images/fancybox/fancy_shadow_ne.png | Bin 347 -> 0 bytes public/images/fancybox/fancy_shadow_nw.png | Bin 324 -> 0 bytes public/images/fancybox/fancy_shadow_s.png | Bin 111 -> 0 bytes public/images/fancybox/fancy_shadow_se.png | Bin 352 -> 0 bytes public/images/fancybox/fancy_shadow_sw.png | Bin 340 -> 0 bytes public/images/fancybox/fancy_shadow_w.png | Bin 103 -> 0 bytes public/images/fancybox/fancy_title_left.png | Bin 503 -> 0 bytes public/images/fancybox/fancy_title_main.png | Bin 96 -> 0 bytes public/images/fancybox/fancy_title_over.png | Bin 70 -> 0 bytes public/images/fancybox/fancy_title_right.png | Bin 506 -> 0 bytes public/images/fancybox/fancybox-x.png | Bin 203 -> 0 bytes public/images/fancybox/fancybox-y.png | Bin 176 -> 0 bytes public/images/fancybox/fancybox.png | Bin 15287 -> 0 bytes public/images/fff.gif | Bin 149 -> 0 bytes public/images/field-bg.png | Bin 399 -> 0 bytes public/images/forum-activity-bg-onecol.png | Bin 1773 -> 0 bytes public/images/forum-activity-bg.png | Bin 1758 -> 0 bytes public/images/forum-activity-icon.png | Bin 477 -> 0 bytes public/images/gallery-image-activity-border-big-onecol.png | Bin 2265 -> 0 bytes public/images/gallery-image-activity-border-big.png | Bin 1349 -> 0 bytes public/images/gallery-image-activity-border-onecol.png | Bin 1479 -> 0 bytes public/images/gallery-image-activity-border.png | Bin 1039 -> 0 bytes public/images/grip-clue.png | Bin 159 -> 0 bytes public/images/hachure.png | Bin 233 -> 0 bytes public/images/help-avatar.gif | Bin 2489 -> 0 bytes public/images/icon_filter_exclude.png | Bin 1190 -> 0 bytes public/images/icon_more_options.png | Bin 1004 -> 0 bytes public/images/icons-app/alert.png | 1 - public/images/icons-app/article-minor.png | Bin 3076 -> 0 bytes public/images/icons-app/article-portrait.png | Bin 2756 -> 0 bytes public/images/icons-app/article-thumb.png | Bin 4967 -> 0 bytes public/images/icons-app/chat-22x22.png | 1 - public/images/icons-app/community-big.png | Bin 20086 -> 0 bytes public/images/icons-app/community-icon.png | Bin 1218 -> 0 bytes public/images/icons-app/community-minor.png | Bin 4414 -> 0 bytes public/images/icons-app/community-portrait.png | Bin 6359 -> 0 bytes public/images/icons-app/community-thumb.png | Bin 11813 -> 0 bytes public/images/icons-app/design-editor.png | Bin 6115 -> 0 bytes public/images/icons-app/emblem-important.png | Bin 2207 -> 0 bytes public/images/icons-app/enterprise-big.png | Bin 25130 -> 0 bytes public/images/icons-app/enterprise-icon.png | Bin 2738 -> 0 bytes public/images/icons-app/enterprise-minor.png | Bin 5318 -> 0 bytes public/images/icons-app/enterprise-portrait.png | Bin 7746 -> 0 bytes public/images/icons-app/enterprise-registration.png | 1 - public/images/icons-app/enterprise-thumb.png | Bin 14380 -> 0 bytes public/images/icons-app/gnome-irc-22x22.png | Bin 1261 -> 0 bytes public/images/icons-app/gnome-irc.png | Bin 2256 -> 0 bytes public/images/icons-app/gnome-settings-theme.png | Bin 2288 -> 0 bytes public/images/icons-app/gtk-folder.png | Bin 3101 -> 0 bytes public/images/icons-app/ico-female.png | Bin 500 -> 0 bytes public/images/icons-app/ico-male.png | Bin 516 -> 0 bytes public/images/icons-app/ico-sex-undef.png | Bin 431 -> 0 bytes public/images/icons-app/image-loading-big.png | Bin 10950 -> 0 bytes public/images/icons-app/image-loading-display.png | Bin 43168 -> 0 bytes public/images/icons-app/image-loading-icon.png | Bin 960 -> 0 bytes public/images/icons-app/image-loading-minor.png | Bin 3074 -> 0 bytes public/images/icons-app/image-loading-portrait.png | Bin 4124 -> 0 bytes public/images/icons-app/image-loading-slideshow.png | Bin 18814 -> 0 bytes public/images/icons-app/image-loading-small.png | Bin 1779 -> 0 bytes public/images/icons-app/image-loading-thumb.png | Bin 7066 -> 0 bytes public/images/icons-app/person-big.png | Bin 13796 -> 0 bytes public/images/icons-app/person-icon.png | Bin 1052 -> 0 bytes public/images/icons-app/person-minor.png | Bin 3675 -> 0 bytes public/images/icons-app/person-portrait.png | Bin 5153 -> 0 bytes public/images/icons-app/person-thumb.png | Bin 8938 -> 0 bytes public/images/icons-app/product-default-pic-big.png | Bin 20547 -> 0 bytes public/images/icons-app/product-default-pic-minor.png | Bin 3815 -> 0 bytes public/images/icons-app/product-default-pic-portrait.png | Bin 5172 -> 0 bytes public/images/icons-app/product-default-pic-thumb.png | Bin 9206 -> 0 bytes public/images/icons-app/user_icon.png | Bin 3522 -> 0 bytes public/images/icons-app/user_icon.svg | 529 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/images/icons-app/users.svg | 863 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/images/icons-bar/accessibility.png | Bin 1217 -> 0 bytes public/images/icons-bar/admin.png | Bin 1393 -> 0 bytes public/images/icons-bar/go-content.png | Bin 974 -> 0 bytes public/images/icons-bar/go-home.png | Bin 854 -> 0 bytes public/images/icons-bar/help.png | Bin 1581 -> 0 bytes public/images/icons-bar/login.png | Bin 1095 -> 0 bytes public/images/icons-bar/logout.png | Bin 935 -> 0 bytes public/images/icons-bar/logout2.png | Bin 956 -> 0 bytes public/images/icons-cat/Agropecuária_extrativismo_e_pesca.png | Bin 509 -> 0 bytes public/images/icons-cat/Alimentos_e_bebidas.png | Bin 444 -> 0 bytes public/images/icons-cat/Artefatos_artesanais.png | Bin 461 -> 0 bytes public/images/icons-cat/Ação_comunitária.png | Bin 320 -> 0 bytes public/images/icons-cat/Coleta_e_reciclagem_de_materiais.png | Bin 435 -> 0 bytes public/images/icons-cat/Crédito_e_finanças.png | Bin 472 -> 0 bytes public/images/icons-cat/Fitoterápicos_e_produtos_de_limpeza_e_higiene.png | Bin 475 -> 0 bytes public/images/icons-cat/Prestação_de_serviços_diversos.png | Bin 380 -> 0 bytes public/images/icons-cat/Produção_industrial.png | Bin 322 -> 0 bytes public/images/icons-cat/Produção_têxtil_e_confecção.png | Bin 475 -> 0 bytes public/images/icons-cat/Software.png | Bin 408 -> 0 bytes public/images/icons-cat/Software_Livre.png | Bin 408 -> 0 bytes public/images/icons-cat/undefined.png | Bin 338 -> 0 bytes public/images/icons-map/enterprise.png | Bin 4872 -> 0 bytes public/images/icons-map/enterprise_shadow.png | Bin 1761 -> 0 bytes public/images/icons-mime/README | 93 --------------------------------------------------------------------------------------------- public/images/icons-mime/empty.png | Bin 3231 -> 0 bytes public/images/icons-mime/event.png | 1 - public/images/icons-mime/folder.png | 1 - public/images/icons-mime/gnome-folder.png | Bin 1026 -> 0 bytes public/images/icons-mime/gnome-mime-empty.png | Bin 540 -> 0 bytes public/images/icons-mime/gnome-mime-text-html.png | Bin 1220 -> 0 bytes public/images/icons-mime/ico-feed-on.png | Bin 1179 -> 0 bytes public/images/icons-mime/rss-feed-16.png | Bin 849 -> 0 bytes public/images/icons-mime/rss-feed.png | 1 - public/images/icons-mime/text-html.png | 1 - public/images/icons-mime/unknown.png | 1 - public/images/icons-task/closed-arrow-hover.png | Bin 216 -> 0 bytes public/images/icons-task/closed-arrow.png | Bin 204 -> 0 bytes public/images/icons-task/opened-arrow-hover.png | Bin 189 -> 0 bytes public/images/icons-task/opened-arrow.png | Bin 199 -> 0 bytes public/images/input-bg.gif | Bin 4091 -> 0 bytes public/images/loading-dark.gif | Bin 3208 -> 0 bytes public/images/loading-small-dark.gif | Bin 1912 -> 0 bytes public/images/loading-small.gif | Bin 1553 -> 0 bytes public/images/loading.gif | Bin 1787 -> 0 bytes public/images/login_checking.png | Bin 1117 -> 0 bytes public/images/logo-anhetegua-200x50.png | Bin 7233 -> 0 bytes public/images/logo-anhetegua.png | Bin 18213 -> 0 bytes public/images/noosfero-network.png | Bin 99130 -> 0 bytes public/images/noosfero-network.svg | 4618 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/images/orange-balloon.png | Bin 1146 -> 0 bytes public/images/orange-bg.png | Bin 191 -> 0 bytes public/images/passwords_match.png | Bin 777 -> 0 bytes public/images/passwords_nomatch.png | Bin 374 -> 0 bytes public/images/rails.png | Bin 1787 -> 0 bytes public/images/scrap-bg-gray.png | Bin 289 -> 0 bytes public/images/scrap-bg.png | Bin 290 -> 0 bytes public/images/solidarity-economy.png | Bin 976 -> 0 bytes public/images/top-arrow.png | Bin 261 -> 0 bytes public/images/white-pixel.gif | Bin 35 -> 0 bytes public/images/zoom-dark.png | Bin 177 -> 0 bytes public/images/zoom.png | Bin 420 -> 0 bytes public/javascripts/add-and-join.js | 103 ------------------------------------------------------------------------------------------------------- public/javascripts/application.js | 937 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/article.js | 175 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/ba-linkify.js | 214 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/catalog.js | 47 ----------------------------------------------- public/javascripts/chat.js | 641 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/codepress/codepress.css | 21 --------------------- public/javascripts/codepress/codepress.html | 35 ----------------------------------- public/javascripts/codepress/codepress.js | 138 ------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/codepress/engines/gecko.js | 293 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/codepress/engines/khtml.js | 0 public/javascripts/codepress/engines/msie.js | 304 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/codepress/engines/older.js | 0 public/javascripts/codepress/engines/opera.js | 260 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/codepress/images/line-numbers.png | Bin 16556 -> 0 bytes public/javascripts/codepress/index.html | 443 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/codepress/languages/asp.css | 71 ----------------------------------------------------------------------- public/javascripts/codepress/languages/asp.js | 117 --------------------------------------------------------------------------------------------------------------------- public/javascripts/codepress/languages/autoit.css | 13 ------------- public/javascripts/codepress/languages/autoit.js | 32 -------------------------------- public/javascripts/codepress/languages/csharp.css | 9 --------- public/javascripts/codepress/languages/csharp.js | 25 ------------------------- public/javascripts/codepress/languages/css.css | 10 ---------- public/javascripts/codepress/languages/css.js | 23 ----------------------- public/javascripts/codepress/languages/generic.css | 9 --------- public/javascripts/codepress/languages/generic.js | 25 ------------------------- public/javascripts/codepress/languages/html.css | 13 ------------- public/javascripts/codepress/languages/html.js | 59 ----------------------------------------------------------- public/javascripts/codepress/languages/java.css | 7 ------- public/javascripts/codepress/languages/java.js | 24 ------------------------ public/javascripts/codepress/languages/javascript.css | 8 -------- public/javascripts/codepress/languages/javascript.js | 30 ------------------------------ public/javascripts/codepress/languages/perl.css | 11 ----------- public/javascripts/codepress/languages/perl.js | 27 --------------------------- public/javascripts/codepress/languages/php.css | 12 ------------ public/javascripts/codepress/languages/php.js | 61 ------------------------------------------------------------- public/javascripts/codepress/languages/ruby.css | 10 ---------- public/javascripts/codepress/languages/ruby.js | 26 -------------------------- public/javascripts/codepress/languages/sql.css | 10 ---------- public/javascripts/codepress/languages/sql.js | 30 ------------------------------ public/javascripts/codepress/languages/text.css | 5 ----- public/javascripts/codepress/languages/text.js | 9 --------- public/javascripts/codepress/languages/vbscript.css | 71 ----------------------------------------------------------------------- public/javascripts/codepress/languages/vbscript.js | 117 --------------------------------------------------------------------------------------------------------------------- public/javascripts/codepress/languages/xsl.css | 15 --------------- public/javascripts/codepress/languages/xsl.js | 103 ------------------------------------------------------------------------------------------------------- public/javascripts/codepress/license.txt | 458 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/colorbox.js | 814 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/colorpicker-noosfero.js | 19 ------------------- public/javascripts/colorpicker.js | 484 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/controls.js | 963 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/dragdrop.js | 972 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/effects.js | 1120 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/errors.js | 16 ---------------- public/javascripts/google_maps.js | 61 ------------------------------------------------------------- public/javascripts/jquery-latest.js | 8316 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/jquery-ui-1.8.2.custom.min.js | 1012 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/README.md | 8 -------- public/javascripts/jquery-validation/changelog.txt | 251 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/jquery.validate.js | 1159 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/jquery.validate.min.js | 50 -------------------------------------------------- public/javascripts/jquery-validation/lib/jquery-1.4.2.js | 6240 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/jquery-validation/lib/jquery-1.4.4.js | 7179 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/lib/jquery-1.5.1.js | 8316 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/jquery-validation/lib/jquery-1.5.js | 8176 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/lib/jquery.form.js | 660 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/jquery-validation/lib/jquery.js | 4376 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/lib/jquery.metadata.js | 122 -------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/localization/messages_ar.js | 24 ------------------------ public/javascripts/jquery-validation/localization/messages_bg.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_ca.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_cn.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_cs.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_da.js | 20 -------------------- public/javascripts/jquery-validation/localization/messages_de.js | 20 -------------------- public/javascripts/jquery-validation/localization/messages_el.js | 24 ------------------------ public/javascripts/jquery-validation/localization/messages_es.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_fa.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_fi.js | 21 --------------------- public/javascripts/jquery-validation/localization/messages_fr.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_ge.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_he.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_hu.js | 20 -------------------- public/javascripts/jquery-validation/localization/messages_it.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_ja.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_kk.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_lt.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_lv.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_nl.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_no.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_pl.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_pt.js | 1 - public/javascripts/jquery-validation/localization/messages_ptbr.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_ptpt.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_ro.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_ru.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_se.js | 21 --------------------- public/javascripts/jquery-validation/localization/messages_si.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_sk.js | 20 -------------------- public/javascripts/jquery-validation/localization/messages_sr.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_tr.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_tw.js | 23 ----------------------- public/javascripts/jquery-validation/localization/messages_ua.js | 23 ----------------------- public/javascripts/jquery-validation/localization/methods_de.js | 12 ------------ public/javascripts/jquery-validation/localization/methods_nl.js | 9 --------- public/javascripts/jquery-validation/localization/methods_pt.js | 9 --------- public/javascripts/jquery-validation/test/events.html | 71 ----------------------------------------------------------------------- public/javascripts/jquery-validation/test/firebug/errorIcon.png | Bin 457 -> 0 bytes public/javascripts/jquery-validation/test/firebug/firebug.css | 209 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/test/firebug/firebug.html | 23 ----------------------- public/javascripts/jquery-validation/test/firebug/firebug.js | 672 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/jquery-validation/test/firebug/firebugx.js | 10 ---------- public/javascripts/jquery-validation/test/firebug/infoIcon.png | Bin 524 -> 0 bytes public/javascripts/jquery-validation/test/firebug/warningIcon.png | Bin 516 -> 0 bytes public/javascripts/jquery-validation/test/index.html | 270 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/jquery-validation/test/jquery.js | 23 ----------------------- public/javascripts/jquery-validation/test/large.html | 188 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/test/messages.js | 62 -------------------------------------------------------------- public/javascripts/jquery-validation/test/methods.js | 584 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/test/qunit/qunit.css | 205 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/test/qunit/qunit.js | 1428 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/jquery-validation/test/rules.js | 267 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/test/selects/index.html | 444 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/jquery-validation/test/tabs.html | 78 ------------------------------------------------------------------------------ public/javascripts/jquery-validation/test/test.js | 1124 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/test/users.php | 11 ----------- public/javascripts/jquery-validation/test/users2.php | 11 ----------- public/javascripts/jquery-validation/todo | 172 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery-validation/version.txt | 1 - public/javascripts/jquery.ba-bbq.min.js | 18 ------------------ public/javascripts/jquery.ba-hashchange.js | 390 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/jquery.cookie.js | 96 ------------------------------------------------------------------------------------------------ public/javascripts/jquery.cycle.all.min.js | 27 --------------------------- public/javascripts/jquery.emoticon.js | 53 ----------------------------------------------------- public/javascripts/jquery.fancybox-1.3.4.pack.js | 46 ---------------------------------------------- public/javascripts/jquery.form.js | 1076 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery.noconflict.js | 1 - public/javascripts/jquery.scrollTo.js | 215 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery.scrollabletab.js | 277 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/jquery.sound.js | 80 -------------------------------------------------------------------------------- public/javascripts/jquery.tokeninput.js | 865 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/lightbox.js | 232 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/lowpro.js | 338 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/manage-categories.js | 46 ---------------------------------------------- public/javascripts/manage-products.js | 183 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/pikachoose.js | 276 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/prototype.js | 4221 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/reflection.js | 177 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/report-abuse.js | 17 ----------------- public/javascripts/sliderjs.js | 213 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/LICENSE.txt | 19 ------------------- public/javascripts/strophejs-1.0.1/README.txt | 15 --------------- public/javascripts/strophejs-1.0.1/contrib/discojs/README.txt | 42 ------------------------------------------ public/javascripts/strophejs-1.0.1/contrib/discojs/css/disco.css | 16 ---------------- public/javascripts/strophejs-1.0.1/contrib/discojs/index.html | 47 ----------------------------------------------- public/javascripts/strophejs-1.0.1/contrib/discojs/punjab.tac | 18 ------------------ public/javascripts/strophejs-1.0.1/contrib/discojs/scripts/basic.js | 102 ------------------------------------------------------------------------------------------------------ public/javascripts/strophejs-1.0.1/contrib/discojs/scripts/disco.js | 60 ------------------------------------------------------------ public/javascripts/strophejs-1.0.1/doc/files/core-js.html | 189 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/doc/index.html | 1 - public/javascripts/strophejs-1.0.1/doc/javascript/main.js | 836 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/doc/javascript/searchdata.js | 152 -------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/doc/search/ClassesS.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsA.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsB.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsC.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsD.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsE.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsF.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsH.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsI.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsL.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsM.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsP.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsR.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsS.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsV.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsW.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/ConstantsX.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FilesS.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsA.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsB.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsC.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsD.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsE.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsF.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsG.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsI.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsL.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsP.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsR.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsS.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsSymbols.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsT.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsU.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsW.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/FunctionsX.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralA.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralB.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralC.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralD.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralE.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralF.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralG.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralH.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralI.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralL.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralM.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralP.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralR.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralS.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralSymbols.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralT.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralU.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralV.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralW.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/GeneralX.html | 20 -------------------- public/javascripts/strophejs-1.0.1/doc/search/NoResults.html | 15 --------------- public/javascripts/strophejs-1.0.1/doc/styles/main.css | 767 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/examples/attach/README | 37 ------------------------------------- public/javascripts/strophejs-1.0.1/examples/attach/__init__.py | 0 public/javascripts/strophejs-1.0.1/examples/attach/attacher/__init__.py | 0 public/javascripts/strophejs-1.0.1/examples/attach/attacher/views.py | 18 ------------------ public/javascripts/strophejs-1.0.1/examples/attach/boshclient.py | 152 -------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/examples/attach/manage.py | 11 ----------- public/javascripts/strophejs-1.0.1/examples/attach/settings.py | 85 ------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/examples/attach/templates/attacher/index.html | 88 ---------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/examples/attach/urls.py | 19 ------------------- public/javascripts/strophejs-1.0.1/examples/basic.html | 25 ------------------------- public/javascripts/strophejs-1.0.1/examples/basic.js | 55 ------------------------------------------------------- public/javascripts/strophejs-1.0.1/examples/crossdomain.html | 32 -------------------------------- public/javascripts/strophejs-1.0.1/examples/crossdomain.js | 62 -------------------------------------------------------------- public/javascripts/strophejs-1.0.1/examples/crossdomain.xml | 12 ------------ public/javascripts/strophejs-1.0.1/examples/dojo-ping.html | 27 --------------------------- public/javascripts/strophejs-1.0.1/examples/dojo-ping.js | 56 -------------------------------------------------------- public/javascripts/strophejs-1.0.1/examples/echobot.html | 25 ------------------------- public/javascripts/strophejs-1.0.1/examples/echobot.js | 79 ------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/examples/prebind.html | 39 --------------------------------------- public/javascripts/strophejs-1.0.1/examples/prebind.js | 103 ------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/examples/prototype-ping.html | 27 --------------------------- public/javascripts/strophejs-1.0.1/examples/prototype-ping.js | 56 -------------------------------------------------------- public/javascripts/strophejs-1.0.1/examples/yui-ping.html | 26 -------------------------- public/javascripts/strophejs-1.0.1/examples/yui-ping.js | 58 ---------------------------------------------------------- public/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.js | 31 ------------------------------- public/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.min.js | 1 - public/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.js | 270 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.min.js | 1 - public/javascripts/strophejs-1.0.1/strophe.js | 3543 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/strophe.min.js | 1 - public/javascripts/strophejs-1.0.1/tests/jstests.js | 136 ---------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/tests/jsyuitests.js | 31 ------------------------------- public/javascripts/strophejs-1.0.1/tests/pubsub.html | 28 ---------------------------- public/javascripts/strophejs-1.0.1/tests/pubsub.js | 314 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/tests/strophe.html | 22 ---------------------- public/javascripts/strophejs-1.0.1/tests/testrunner.js | 735 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/tests/tests.js | 163 ------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/strophejs-1.0.1/tests/testsuite.css | 120 ------------------------------------------------------------------------------------------------------------------------ public/javascripts/strophejs-1.0.1/tests/yuitests.html | 20 -------------------- public/javascripts/strophejs-1.0.1/tests/yuitests.js | 26 -------------------------- public/javascripts/tasks.js | 49 ------------------------------------------------- public/javascripts/thickbox.js | 319 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/changelog.txt | 1303 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/examples/accessibility.html | 101 ----------------------------------------------------------------------------------------------------- public/javascripts/tinymce/examples/css/content.css | 105 --------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/examples/css/word.css | 53 ----------------------------------------------------- public/javascripts/tinymce/examples/custom_formats.html | 111 --------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/examples/full.html | 101 ----------------------------------------------------------------------------------------------------- public/javascripts/tinymce/examples/index.html | 10 ---------- public/javascripts/tinymce/examples/lists/image_list.js | 9 --------- public/javascripts/tinymce/examples/lists/link_list.js | 10 ---------- public/javascripts/tinymce/examples/lists/media_list.js | 14 -------------- public/javascripts/tinymce/examples/lists/template_list.js | 9 --------- public/javascripts/tinymce/examples/media/logo.jpg | Bin 2729 -> 0 bytes public/javascripts/tinymce/examples/media/logo_over.jpg | Bin 6473 -> 0 bytes public/javascripts/tinymce/examples/media/sample.avi | Bin 82944 -> 0 bytes public/javascripts/tinymce/examples/media/sample.dcr | Bin 6774 -> 0 bytes public/javascripts/tinymce/examples/media/sample.flv | Bin 88722 -> 0 bytes public/javascripts/tinymce/examples/media/sample.mov | Bin 55622 -> 0 bytes public/javascripts/tinymce/examples/media/sample.ram | 1 - public/javascripts/tinymce/examples/media/sample.rm | Bin 17846 -> 0 bytes public/javascripts/tinymce/examples/media/sample.swf | Bin 6118 -> 0 bytes public/javascripts/tinymce/examples/menu.html | 18 ------------------ public/javascripts/tinymce/examples/simple.html | 47 ----------------------------------------------- public/javascripts/tinymce/examples/skins.html | 216 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/examples/templates/layout1.htm | 15 --------------- public/javascripts/tinymce/examples/templates/snippet1.htm | 1 - public/javascripts/tinymce/examples/translate.html | 80 -------------------------------------------------------------------------------- public/javascripts/tinymce/examples/word.html | 72 ------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/langs/de.js | 155 ----------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/langs/en.js | 223 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/langs/eo.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/langs/es.js | 172 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/langs/fr.js | 154 ---------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/langs/hy.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/langs/it.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/langs/ja.js | 154 ---------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/langs/nl.js | 154 ---------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/langs/pt.js | 154 ---------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/langs/ru.js | 157 ------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/license.txt | 504 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js | 57 --------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js | 43 ------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/de_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js | 7 ------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/es_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/fr_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/ja_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/nl_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/pt_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/ru_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm | 58 ---------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css | 13 ------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js | 50 -------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm | 235 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif | Bin 1624 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js | 458 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de_dlg.js | 43 ------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js | 45 --------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/es_dlg.js | 43 ------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fr_dlg.js | 43 ------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ja_dlg.js | 43 ------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/nl_dlg.js | 43 ------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/pt_dlg.js | 43 ------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ru_dlg.js | 43 ------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css | 8 -------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js | 61 ------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js | 532 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de_dlg.js | 52 ---------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js | 54 ------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/es_dlg.js | 52 ---------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr_dlg.js | 52 ---------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ja_dlg.js | 52 ---------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/nl_dlg.js | 52 ---------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/pt_dlg.js | 52 ---------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ru_dlg.js | 52 ---------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm | 338 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js | 161 ----------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js | 169 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js | 128 -------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js | 431 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js | 4 ---- public/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js | 120 ------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js | 161 ----------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js | 82 ---------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js | 43 ------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm | 41 ----------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif | Bin 354 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif | Bin 329 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif | Bin 331 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif | Bin 344 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif | Bin 340 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif | Bin 336 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif | Bin 338 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif | Bin 344 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif | Bin 321 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif | Bin 325 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif | Bin 345 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif | Bin 342 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif | Bin 328 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif | Bin 337 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif | Bin 351 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif | Bin 336 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js | 22 ---------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/de_dlg.js | 20 -------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js | 20 -------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/es_dlg.js | 20 -------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/fr_dlg.js | 20 -------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ja_dlg.js | 20 -------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/nl_dlg.js | 20 -------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/pt_dlg.js | 20 -------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ru_dlg.js | 20 -------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm | 22 ---------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js | 84 ------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif | Bin 87 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js | 19 ------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js | 3 --- public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js | 3 --- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css | 143 ----------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js | 399 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm | 259 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js | 232 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/de_dlg.js | 85 ------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js | 85 ------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/es_dlg.js | 85 ------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/fr_dlg.js | 85 ------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ja_dlg.js | 85 ------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/nl_dlg.js | 85 ------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/pt_dlg.js | 85 ------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ru_dlg.js | 85 ------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js | 159 --------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm | 109 ------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js | 54 ------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js | 696 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif | Bin 818 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif | Bin 280 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif | Bin 1195 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif | Bin 915 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif | Bin 911 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif | Bin 769 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif | Bin 92 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css | 90 ------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm | 387 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js | 83 ----------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js | 214 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js | 139 ------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js | 617 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/content.css | 6 ------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/media.css | 17 ----------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js | 770 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flash.gif | Bin 241 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flv_player.swf | Bin 11668 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/quicktime.gif | Bin 303 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/realmedia.gif | Bin 439 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/shockwave.gif | Bin 387 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif | Bin 43 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/windowsmedia.gif | Bin 415 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js | 73 ------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/js/media.js | 354 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/de_dlg.js | 103 ------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js | 109 ------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/es_dlg.js | 103 ------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/fr_dlg.js | 103 ------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ja_dlg.js | 103 ------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/nl_dlg.js | 103 ------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/pt_dlg.js | 103 ------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ru_dlg.js | 103 ------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/media.htm | 812 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf | Bin 33931 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js | 53 ----------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js | 92 -------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js | 74 -------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif | Bin 325 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif | Bin 43 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js | 933 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js | 36 ------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js | 51 --------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/de_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/es_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/fr_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ja_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/nl_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/pt_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ru_dlg.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm | 27 --------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm | 21 --------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js | 53 ----------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/example.html | 28 ---------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js | 73 ------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/preview.html | 17 ----------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js | 34 ---------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js | 438 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js | 101 ----------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css | 6 ------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js | 61 ------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js | 142 ---------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/de_dlg.js | 16 ---------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js | 16 ---------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/es_dlg.js | 16 ---------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/fr_dlg.js | 16 ---------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ja_dlg.js | 16 ---------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/nl_dlg.js | 16 ---------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/pt_dlg.js | 16 ---------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ru_dlg.js | 16 ---------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm | 100 ---------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js | 435 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif | Bin 46 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/css/props.css | 13 ------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js | 55 ------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/js/props.js | 635 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/de_dlg.js | 63 --------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js | 70 ---------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/es_dlg.js | 63 --------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/fr_dlg.js | 63 --------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ja_dlg.js | 63 --------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/nl_dlg.js | 63 --------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/pt_dlg.js | 63 --------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ru_dlg.js | 63 --------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/props.htm | 838 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js | 114 ------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/cell.htm | 178 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css | 17 ----------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/row.css | 25 ------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/table.css | 13 ------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js | 1202 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js | 284 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js | 27 --------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/row.js | 232 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/table.js | 450 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/de_dlg.js | 74 -------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js | 74 -------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/es_dlg.js | 74 -------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/fr_dlg.js | 74 -------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ja_dlg.js | 74 -------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/nl_dlg.js | 74 -------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/pt_dlg.js | 74 -------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ru_dlg.js | 74 -------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm | 32 -------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/row.htm | 157 ------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/table.htm | 188 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/blank.htm | 12 ------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/css/template.css | 23 ----------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js | 159 --------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/js/template.js | 106 ---------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/de_dlg.js | 15 --------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/en_dlg.js | 15 --------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/es_dlg.js | 15 --------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/fr_dlg.js | 15 --------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/ja_dlg.js | 15 --------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/nl_dlg.js | 15 --------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/pt_dlg.js | 15 --------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/ru_dlg.js | 15 --------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/template.htm | 31 ------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js | 83 ----------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js | 114 ------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm | 142 ---------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm | 142 ---------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm | 149 ----------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm | 142 ---------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css | 11 ----------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css | 9 --------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm | 162 ------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js | 132 ------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm | 162 ------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js | 28 ---------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js | 28 ---------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js | 111 --------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js | 28 ---------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js | 53 ----------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js | 229 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js | 53 ----------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/de_dlg.js | 32 -------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js | 32 -------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/es_dlg.js | 32 -------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/fr_dlg.js | 32 -------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/ja_dlg.js | 32 -------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/nl_dlg.js | 32 -------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/pt_dlg.js | 32 -------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/ru_dlg.js | 32 -------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/about.htm | 52 ---------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm | 26 -------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm | 51 --------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm | 74 -------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js | 1360 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/image.htm | 80 -------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg | Bin 3189 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif | Bin 241 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif | Bin 11794 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif | Bin 600 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif | Bin 325 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif | Bin 303 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/realmedia.gif | Bin 439 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif | Bin 387 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/trans.gif | Bin 43 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif | Bin 597 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif | Bin 415 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js | 73 ------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js | 42 ------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js | 355 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js | 329 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js | 247 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js | 153 --------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js | 56 -------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de.js | 63 --------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de_dlg.js | 51 --------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js | 68 -------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js | 54 ------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es.js | 62 -------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es_dlg.js | 51 --------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr.js | 65 ----------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr_dlg.js | 51 --------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/hy.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it_dlg.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja.js | 62 -------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja_dlg.js | 51 --------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl.js | 62 -------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl_dlg.js | 51 --------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt.js | 62 -------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt_dlg.js | 51 --------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru.js | 62 -------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru_dlg.js | 51 --------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/link.htm | 57 --------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm | 47 ----------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css | 47 ----------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css | 117 --------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png | Bin 3274 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif | Bin 70 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif | Bin 68 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif | Bin 70 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif | Bin 1787 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif | Bin 1326 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css | 213 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css | 23 ----------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css | 105 --------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css | 101 ----------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css | 46 ---------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css | 117 --------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png | Bin 5859 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png | Bin 3736 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png | Bin 5358 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css | 216 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css | 8 -------- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm | 25 ------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js | 84 ------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif | Bin 1440 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/de.js | 11 ----------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js | 11 ----------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/eo.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/es.js | 11 ----------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/fr.js | 11 ----------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/hy.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/it.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ja.js | 11 ----------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/nl.js | 11 ----------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/pt.js | 11 ----------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ru.js | 11 ----------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css | 25 ------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css | 32 -------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css | 17 ----------------- public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png | Bin 5102 -> 0 bytes public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css | 35 ----------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/tiny_mce.js | 1 - public/javascripts/tinymce/jscripts/tiny_mce/tiny_mce_popup.js | 5 ----- public/javascripts/tinymce/jscripts/tiny_mce/tiny_mce_src.js | 15812 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/utils/editable_selects.js | 70 ---------------------------------------------------------------------- public/javascripts/tinymce/jscripts/tiny_mce/utils/form_utils.js | 210 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/utils/mctabs.js | 162 ------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/javascripts/tinymce/jscripts/tiny_mce/utils/validate.js | 252 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ public/stylesheets/application.css | 6148 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/calendar_date_select/blue.css | 130 ---------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/calendar_date_select/default.css | 135 --------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/calendar_date_select/plain.css | 128 -------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/calendar_date_select/red.css | 135 --------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/calendar_date_select/silver.css | 133 ------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/colorbox.css | 82 ---------------------------------------------------------------------------------- public/stylesheets/colorpicker.css | 131 ----------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/fancybox.css | 359 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/iepngfix/blank.gif | Bin 49 -> 0 bytes public/stylesheets/iepngfix/iepngfix.css | 1 - public/stylesheets/iepngfix/iepngfix.htc | 103 ------------------------------------------------------------------------------------------------------- public/stylesheets/jquery.ui/redmond/images/ui-anim_basic_16x16.gif | Bin 1553 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-bg_flat_55_fbec88_40x100.png | Bin 182 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 124 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-bg_glass_85_dfeffc_1x400.png | Bin 123 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 3457 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 104 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 88 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-icons_217bc0_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-icons_469bdd_256x240.png | Bin 5355 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-icons_6da8d5_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-icons_d8e7f3_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/redmond/images/ui-icons_f9bd01_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/redmond/jquery-ui-1.8.2.custom.css | 489 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/jquery.ui/smoothness/images/ui-anim_basic_16x16.gif | Bin 1553 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png | Bin 178 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 120 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 110 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 101 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-icons_454545_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-icons_888888_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/smoothness/images/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/smoothness/jquery-ui-1.8.2.custom.css | 489 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/jquery.ui/smoothness_mod/images/ui-anim_basic_16x16.gif | Bin 1553 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_75_ffffff_40x100.png | Bin 178 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 120 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 110 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 101 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_454545_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_888888_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/smoothness_mod/jquery-ui-1.8.2.custom.css | 489 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/jquery.ui/south-street/images/ui-anim_basic_16x16.gif | Bin 1553 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png | Bin 127 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png | Bin 2130 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png | Bin 110 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png | Bin 96 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png | Bin 153 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png | Bin 105 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png | Bin 124 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png | Bin 165 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png | Bin 119 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-icons_808080_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-icons_847e71_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-icons_8dc262_256x240.png | Bin 5355 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-icons_eeeeee_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/south-street/images/ui-icons_ffffff_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/south-street/jquery-ui-1.8.2.custom.css | 489 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/jquery.ui/sunny-mod/images/ui-anim_basic_16x16.gif | Bin 1553 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_diagonals-medium_20_d34d17_40x40.png | Bin 247 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_30_cccccc_40x100.png | Bin 180 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_50_5c5c5c_40x100.png | Bin 180 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_30_888a85_500x100.png | Bin 4699 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_45_918e88_500x100.png | Bin 4273 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_60_fece2f_500x100.png | Bin 3512 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_70_ffdd57_500x100.png | Bin 3830 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_90_fff9e5_500x100.png | Bin 2257 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_0_feeebd_1x100.png | Bin 79 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_70_feeebd_1x100.png | Bin 117 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_30_feeebd_1x100.png | Bin 122 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_70_feeebd_1x100.png | Bin 119 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_3d3d3d_256x240.png | Bin 5355 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_bd7b00_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_d19405_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_eb990f_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ed9f26_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_fadc7a_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ffe180_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/sunny-mod/jquery-ui-1.8.2.custom.css | 489 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/jquery.ui/sunny/images/ui-anim_basic_16x16.gif | Bin 1553 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png | Bin 199 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-bg_flat_30_cccccc_40x100.png | Bin 180 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png | Bin 180 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png | Bin 3971 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png | Bin 3512 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png | Bin 3122 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png | Bin 2257 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png | Bin 108 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png | Bin 100 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-icons_3d3d3d_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-icons_bd7b00_256x240.png | Bin 5355 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-icons_d19405_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-icons_eb990f_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-icons_ed9f26_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-icons_fadc7a_256x240.png | Bin 4369 -> 0 bytes public/stylesheets/jquery.ui/sunny/images/ui-icons_ffe180_256x240.png | Bin 5355 -> 0 bytes public/stylesheets/jquery.ui/sunny/jquery-ui-1.8.2.custom.css | 489 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/lightbox.css | 63 --------------------------------------------------------------- public/stylesheets/search.css | 937 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/slideshow.css | 55 ------------------------------------------------------- public/stylesheets/tasks.css | 46 ---------------------------------------------- public/stylesheets/thickbox.css | 163 ------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/tinymce.css | 27 --------------------------- public/stylesheets/token-input-facebook.css | 126 ------------------------------------------------------------------------------------------------------------------------------ public/stylesheets/token-input-facet.css | 119 ----------------------------------------------------------------------------------------------------------------------- public/stylesheets/token-input-mac.css | 208 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public/stylesheets/token-input.css | 116 -------------------------------------------------------------------------------------------------------------------- 2999 files changed, 153174 insertions(+), 153161 deletions(-) create mode 100644 app/assets/images/balloon-footer.png create mode 100644 app/assets/images/balloon-header.png create mode 100644 app/assets/images/balloon-middle.png create mode 100644 app/assets/images/beta.gif create mode 100644 app/assets/images/black-alpha-pixel-5.png create mode 100644 app/assets/images/black-alpha-pixel.png create mode 100644 app/assets/images/blocks/1.png create mode 100644 app/assets/images/blocks/1.svg create mode 100644 app/assets/images/blocks/2.png create mode 100644 app/assets/images/blocks/2.svg create mode 100644 app/assets/images/blocks/3.png create mode 100644 app/assets/images/blocks/3.svg create mode 100644 app/assets/images/bolota.gif create mode 100644 app/assets/images/borda-esq-aba-azul.gif create mode 100644 app/assets/images/bt-bookmark.gif create mode 100644 app/assets/images/calendar_date_select/calendar.gif create mode 100644 app/assets/images/calendar_date_select/calendar.png create mode 100644 app/assets/images/catalog-expanders.png create mode 100644 app/assets/images/ccc.gif create mode 100644 app/assets/images/colorbox/border.png create mode 100644 app/assets/images/colorbox/controls.png create mode 100644 app/assets/images/colorbox/ie6/borderBottomCenter.png create mode 100644 app/assets/images/colorbox/ie6/borderBottomLeft.png create mode 100644 app/assets/images/colorbox/ie6/borderBottomRight.png create mode 100644 app/assets/images/colorbox/ie6/borderMiddleLeft.png create mode 100644 app/assets/images/colorbox/ie6/borderMiddleRight.png create mode 100644 app/assets/images/colorbox/ie6/borderTopCenter.png create mode 100644 app/assets/images/colorbox/ie6/borderTopLeft.png create mode 100644 app/assets/images/colorbox/ie6/borderTopRight.png create mode 100644 app/assets/images/colorbox/loading.gif create mode 100644 app/assets/images/colorbox/loading_background.png create mode 100644 app/assets/images/colorbox/overlay.png create mode 100644 app/assets/images/colorpicker/apply.png create mode 100644 app/assets/images/colorpicker/gradiente.png create mode 100644 app/assets/images/colorpicker/indic.gif create mode 100644 app/assets/images/colorpicker/overlay.png create mode 100644 app/assets/images/colorpicker/select.gif create mode 100644 app/assets/images/comment-owner-bg-L.png create mode 100644 app/assets/images/comment-owner-bg-N.png create mode 100644 app/assets/images/comment-owner-bg-NL.png create mode 100644 app/assets/images/comment-owner-bg-NO.png create mode 100644 app/assets/images/comment-owner-bg-O.png create mode 100644 app/assets/images/comment-owner-bg-S.png create mode 100644 app/assets/images/comment-owner-bg-SL.png create mode 100644 app/assets/images/comment-owner-bg-SO.png create mode 100644 app/assets/images/comment-reply-owner-bg.png create mode 100644 app/assets/images/control-panel/Makefile create mode 100644 app/assets/images/control-panel/application-certificate.gif create mode 100644 app/assets/images/control-panel/application-certificate.png create mode 100644 app/assets/images/control-panel/application-certificate.svg create mode 100644 app/assets/images/control-panel/blocks.gif create mode 100644 app/assets/images/control-panel/blocks.png create mode 100644 app/assets/images/control-panel/blocks.svg create mode 100644 app/assets/images/control-panel/contact.gif create mode 100644 app/assets/images/control-panel/contact.png create mode 100644 app/assets/images/control-panel/contact.svg create mode 100644 app/assets/images/control-panel/edit-profile-enterprise.gif create mode 100644 app/assets/images/control-panel/edit-profile-enterprise.png create mode 100644 app/assets/images/control-panel/edit-profile-enterprise.svg create mode 100644 app/assets/images/control-panel/edit-profile-group.gif create mode 100644 app/assets/images/control-panel/edit-profile-group.png create mode 100644 app/assets/images/control-panel/edit-profile-group.svg create mode 100644 app/assets/images/control-panel/edit-profile.gif create mode 100644 app/assets/images/control-panel/edit-profile.png create mode 100644 app/assets/images/control-panel/edit-profile.svg create mode 100644 app/assets/images/control-panel/editpaste.gif create mode 100644 app/assets/images/control-panel/editpaste.png create mode 120000 app/assets/images/control-panel/editpaste.svg create mode 100644 app/assets/images/control-panel/email.gif create mode 100644 app/assets/images/control-panel/email.png create mode 120000 app/assets/images/control-panel/email.svg create mode 100644 app/assets/images/control-panel/emblem-favorite.gif create mode 100644 app/assets/images/control-panel/emblem-favorite.png create mode 120000 app/assets/images/control-panel/emblem-favorite.svg create mode 100644 app/assets/images/control-panel/header-footer.gif create mode 100644 app/assets/images/control-panel/header-footer.png create mode 100644 app/assets/images/control-panel/header-footer.svg create mode 100644 app/assets/images/control-panel/important.gif create mode 100644 app/assets/images/control-panel/important.png create mode 120000 app/assets/images/control-panel/important.svg create mode 100644 app/assets/images/control-panel/mail-mark-junk.png create mode 100644 app/assets/images/control-panel/mail-mark-junk.svg create mode 100644 app/assets/images/control-panel/package.gif create mode 100644 app/assets/images/control-panel/package.png create mode 100644 app/assets/images/control-panel/package.svg create mode 100644 app/assets/images/control-panel/password.gif create mode 100644 app/assets/images/control-panel/password.png create mode 120000 app/assets/images/control-panel/password.svg create mode 100644 app/assets/images/control-panel/preferences-desktop-wallpaper.gif create mode 100644 app/assets/images/control-panel/preferences-desktop-wallpaper.png create mode 120000 app/assets/images/control-panel/preferences-desktop-wallpaper.svg create mode 100644 app/assets/images/control-panel/set-geolocation.gif create mode 100644 app/assets/images/control-panel/set-geolocation.png create mode 100644 app/assets/images/control-panel/stop.gif create mode 100644 app/assets/images/control-panel/stop.png create mode 100644 app/assets/images/control-panel/stop.svg create mode 100644 app/assets/images/control-panel/system-file-manager.gif create mode 100644 app/assets/images/control-panel/system-file-manager.png create mode 120000 app/assets/images/control-panel/system-file-manager.svg create mode 100644 app/assets/images/control-panel/system-users.gif create mode 100644 app/assets/images/control-panel/system-users.png create mode 120000 app/assets/images/control-panel/system-users.svg create mode 100644 app/assets/images/control-panel/text-editor-disabled.gif create mode 120000 app/assets/images/control-panel/text-editor-disabled.png create mode 120000 app/assets/images/control-panel/text-editor-disabled.svg create mode 100644 app/assets/images/control-panel/text-editor.gif create mode 100644 app/assets/images/control-panel/text-editor.png create mode 120000 app/assets/images/control-panel/text-editor.svg create mode 100644 app/assets/images/doc/activation-conlusion.en.png create mode 100644 app/assets/images/doc/activation-conlusion.pt.png create mode 100644 app/assets/images/doc/activation-question.en.png create mode 100644 app/assets/images/doc/activation-question.pt.png create mode 100644 app/assets/images/doc/add-member-enterprise.en.png create mode 100644 app/assets/images/doc/add-member-enterprise.pt.png create mode 100644 app/assets/images/doc/admin-panel-export-users.en.png create mode 100644 app/assets/images/doc/admin-panel-export-users.pt.png create mode 100644 app/assets/images/doc/admin-panel-manage-users.en.png create mode 100644 app/assets/images/doc/admin-panel-manage-users.pt.png create mode 100644 app/assets/images/doc/admin-panel-send-email.en.png create mode 100644 app/assets/images/doc/admin-panel-send-email.pt.png create mode 100644 app/assets/images/doc/admin-send-email.en.png create mode 100644 app/assets/images/doc/admin-send-email.pt.png create mode 100644 app/assets/images/doc/advanced-article-archives-list.en.png create mode 100644 app/assets/images/doc/advanced-article-archives-list.pt.png create mode 100644 app/assets/images/doc/advanced-article-created-link.en.png create mode 100644 app/assets/images/doc/advanced-article-created-link.pt.png create mode 100644 app/assets/images/doc/advanced-article-created-object.en.png create mode 100644 app/assets/images/doc/advanced-article-created-object.pt.png create mode 100644 app/assets/images/doc/advanced-article-insert-html.en.png create mode 100644 app/assets/images/doc/advanced-article-insert-html.pt.png create mode 100644 app/assets/images/doc/advanced-article-insert-links.en.png create mode 100644 app/assets/images/doc/advanced-article-insert-links.pt.png create mode 100644 app/assets/images/doc/advanced-article-popup-insert-html.en.png create mode 100644 app/assets/images/doc/advanced-article-popup-insert-html.pt.png create mode 100644 app/assets/images/doc/advanced-article-popup-insert-link.en.png create mode 100644 app/assets/images/doc/advanced-article-popup-insert-link.pt.png create mode 100644 app/assets/images/doc/advanced-article-upload-images.en.png create mode 100644 app/assets/images/doc/advanced-article-upload-images.pt.png create mode 100644 app/assets/images/doc/article-bigger-spread-view.en.png create mode 100644 app/assets/images/doc/article-bigger-spread-view.pt.png create mode 100644 app/assets/images/doc/article-block.en.png create mode 100644 app/assets/images/doc/article-block.pt.png create mode 100644 app/assets/images/doc/article-creation-categorization.en.png create mode 100644 app/assets/images/doc/article-creation-categorization.pt.png create mode 100644 app/assets/images/doc/article-creation-category-choosen.en.png create mode 100644 app/assets/images/doc/article-creation-category-choosen.pt.png create mode 100644 app/assets/images/doc/article-creation-options.en.png create mode 100644 app/assets/images/doc/article-creation-options.pt.png create mode 100644 app/assets/images/doc/article-creation-tags.en.png create mode 100644 app/assets/images/doc/article-creation-tags.pt.png create mode 100644 app/assets/images/doc/article-spread-view.en.png create mode 100644 app/assets/images/doc/article-spread-view.pt.png create mode 100644 app/assets/images/doc/article-spread.en.png create mode 100644 app/assets/images/doc/article-spread.pt.png create mode 100644 app/assets/images/doc/article-text-lead.en.png create mode 100644 app/assets/images/doc/article-text-lead.pt.png create mode 100644 app/assets/images/doc/article-text.en.png create mode 100644 app/assets/images/doc/article-text.pt.png create mode 100644 app/assets/images/doc/block-actions.en.png create mode 100644 app/assets/images/doc/blog-buttons.en.png create mode 100644 app/assets/images/doc/blog-buttons.pt.png create mode 100644 app/assets/images/doc/box-register.en.png create mode 100644 app/assets/images/doc/box-register.pt.png create mode 100644 app/assets/images/doc/change-password.en.png create mode 100644 app/assets/images/doc/change-password.pt.png create mode 100644 app/assets/images/doc/changing-role-enterprise-member.en.png create mode 100644 app/assets/images/doc/changing-role-enterprise-member.pt.png create mode 100644 app/assets/images/doc/closed-comment-box.en.png create mode 100644 app/assets/images/doc/closed-comment-box.pt.png create mode 100644 app/assets/images/doc/cms-article-icons.en.png create mode 100644 app/assets/images/doc/cms-article-icons.pt.png create mode 100644 app/assets/images/doc/cms-article-types.en.png create mode 100644 app/assets/images/doc/cms-article-types.pt.png create mode 100644 app/assets/images/doc/cms-blog-creation.en.png create mode 100644 app/assets/images/doc/cms-blog-creation.pt.png create mode 100644 app/assets/images/doc/cms-blog-public-visualization.en.png create mode 100644 app/assets/images/doc/cms-blog-public-visualization.pt.png create mode 100644 app/assets/images/doc/cms-folder-icons.en.png create mode 100644 app/assets/images/doc/cms-folder-icons.pt.png create mode 100644 app/assets/images/doc/cms-gallery-public-visualization.en.png create mode 100644 app/assets/images/doc/cms-gallery-public-visualization.pt.png create mode 100644 app/assets/images/doc/cms-new-article.en.png create mode 100644 app/assets/images/doc/cms-new-article.pt.png create mode 100644 app/assets/images/doc/cms-spread-article-icon.en.png create mode 100644 app/assets/images/doc/cms-spread-article-icon.pt.png create mode 100644 app/assets/images/doc/cms-uploading-files.en.png create mode 100644 app/assets/images/doc/cms-uploading-files.pt.png create mode 100644 app/assets/images/doc/cms.en.png create mode 100644 app/assets/images/doc/cms.pt.png create mode 100644 app/assets/images/doc/comments-of-logged-in-out-person.en.png create mode 100644 app/assets/images/doc/comments-of-logged-in-out-person.pt.png create mode 100644 app/assets/images/doc/comments.en.png create mode 100644 app/assets/images/doc/comments.pt.png create mode 100644 app/assets/images/doc/communities-block.en.png create mode 100644 app/assets/images/doc/communities-block.pt.png create mode 100644 app/assets/images/doc/communities-search-field.en.png create mode 100644 app/assets/images/doc/communities-search-field.pt.png create mode 100644 app/assets/images/doc/communities-search-results-with-example.en.png create mode 100644 app/assets/images/doc/communities-search-results-with-example.pt.png create mode 100644 app/assets/images/doc/community-balloon-closed-en.png create mode 100644 app/assets/images/doc/community-balloon-closed.en.png create mode 100644 app/assets/images/doc/community-balloon-en.png create mode 100644 app/assets/images/doc/community-balloon-pt.png create mode 100644 app/assets/images/doc/community-balloon.en.png create mode 100644 app/assets/images/doc/community-balloon.pt.png create mode 100644 app/assets/images/doc/community-control-panel-manage-members.en.png create mode 100644 app/assets/images/doc/community-control-panel-manage-members.pt.png create mode 100644 app/assets/images/doc/community-control-panel-with-approval-task.en.png create mode 100644 app/assets/images/doc/community-control-panel-with-approval-task.pt.png create mode 100644 app/assets/images/doc/community-control-panel-with-tasks.en.png create mode 100644 app/assets/images/doc/community-control-panel-with-tasks.pt.png create mode 100644 app/assets/images/doc/community-creation-form.en.png create mode 100644 app/assets/images/doc/community-creation-form.pt.png create mode 100644 app/assets/images/doc/community-creation.en.png create mode 100644 app/assets/images/doc/community-creation.pt.png create mode 100644 app/assets/images/doc/community-edit-sideboxes.en.png create mode 100644 app/assets/images/doc/community-edit-sideboxes.pt.png create mode 100644 app/assets/images/doc/community-image-block.en.png create mode 100644 app/assets/images/doc/community-image-block.pt.png create mode 100644 app/assets/images/doc/community-import-invitation-step-1.en.png create mode 100644 app/assets/images/doc/community-import-invitation-step-1.pt.png create mode 100644 app/assets/images/doc/community-import-invitation-step-2.en.png create mode 100644 app/assets/images/doc/community-import-invitation-step-2.pt.png create mode 100644 app/assets/images/doc/community-info-block.en.png create mode 100644 app/assets/images/doc/community-info-block.pt.png create mode 100644 app/assets/images/doc/community-manually-invitation-step-1.en.png create mode 100644 app/assets/images/doc/community-manually-invitation-step-1.pt.png create mode 100644 app/assets/images/doc/community-manually-invitation-step-2.en.png create mode 100644 app/assets/images/doc/community-manually-invitation-step-2.pt.png create mode 100644 app/assets/images/doc/community-members-with-invitation-button.en.png create mode 100644 app/assets/images/doc/community-members-with-invitation-button.pt.png create mode 100644 app/assets/images/doc/community-members-with-send-mail-button.en.png create mode 100644 app/assets/images/doc/community-members-with-send-mail-button.pt.png create mode 100644 app/assets/images/doc/community-network-block.en.png create mode 100644 app/assets/images/doc/community-network-block.pt.png create mode 100644 app/assets/images/doc/community-send-email.en.png create mode 100644 app/assets/images/doc/community-send-email.pt.png create mode 100644 app/assets/images/doc/community-sideboxes-add-block.en.png create mode 100644 app/assets/images/doc/community-sideboxes-add-block.pt.png create mode 100644 app/assets/images/doc/confirmation-adding-friend.en.png create mode 100644 app/assets/images/doc/confirmation-adding-friend.pt.png create mode 100644 app/assets/images/doc/contact-button.en.png create mode 100644 app/assets/images/doc/contact-button.pt.png create mode 100644 app/assets/images/doc/control-panel-change-password.en.png create mode 100644 app/assets/images/doc/control-panel-change-password.pt.png create mode 100644 app/assets/images/doc/control-panel-community-edit-appearance.en.png create mode 100644 app/assets/images/doc/control-panel-community-edit-appearance.pt.png create mode 100644 app/assets/images/doc/control-panel-community-edit-header-footer.en.png create mode 100644 app/assets/images/doc/control-panel-community-edit-header-footer.pt.png create mode 100644 app/assets/images/doc/control-panel-community-edit-sideboxes.en.png create mode 100644 app/assets/images/doc/control-panel-community-edit-sideboxes.pt.png create mode 100644 app/assets/images/doc/control-panel-content-management.en.png create mode 100644 app/assets/images/doc/control-panel-content-management.pt.png create mode 100644 app/assets/images/doc/control-panel-create-blog.en.png create mode 100644 app/assets/images/doc/control-panel-create-blog.pt.png create mode 100644 app/assets/images/doc/control-panel-disable-enterprise.en.png create mode 100644 app/assets/images/doc/control-panel-disable-enterprise.pt.png create mode 100644 app/assets/images/doc/control-panel-enterprise-edit-appearance.en.png create mode 100644 app/assets/images/doc/control-panel-enterprise-edit-appearance.pt.png create mode 100644 app/assets/images/doc/control-panel-enterprise-edit-header-footer.en.png create mode 100644 app/assets/images/doc/control-panel-enterprise-edit-header-footer.pt.png create mode 100644 app/assets/images/doc/control-panel-enterprise-edit-profile-info.en.png create mode 100644 app/assets/images/doc/control-panel-enterprise-edit-profile-info.pt.png create mode 100644 app/assets/images/doc/control-panel-enterprise-edit-sideboxes.en.png create mode 100644 app/assets/images/doc/control-panel-enterprise-edit-sideboxes.pt.png create mode 100644 app/assets/images/doc/control-panel-manage-groups.en.png create mode 100644 app/assets/images/doc/control-panel-manage-groups.pt.png create mode 100644 app/assets/images/doc/control-panel-manage-members.en.png create mode 100644 app/assets/images/doc/control-panel-manage-members.pt.png create mode 100644 app/assets/images/doc/control-panel-manage-products.en.png create mode 100644 app/assets/images/doc/control-panel-manage-products.pt.png create mode 100644 app/assets/images/doc/control-panel-menu.en.png create mode 100644 app/assets/images/doc/control-panel-menu.pt.png create mode 100644 app/assets/images/doc/control-panel-person-delete-profile.en.png create mode 100644 app/assets/images/doc/control-panel-person-delete-profile.pt.png create mode 100644 app/assets/images/doc/control-panel-person-edit-profile-info.en.png create mode 100644 app/assets/images/doc/control-panel-person-edit-profile-info.pt.png create mode 100644 app/assets/images/doc/control-panel-user-edit-appearance.en.png create mode 100644 app/assets/images/doc/control-panel-user-edit-appearance.pt.png create mode 100644 app/assets/images/doc/control-panel-user-edit-header-footer.en.png create mode 100644 app/assets/images/doc/control-panel-user-edit-header-footer.pt.png create mode 100644 app/assets/images/doc/control-panel-user-edit-sideboxes.en.png create mode 100644 app/assets/images/doc/control-panel-user-edit-sideboxes.pt.png create mode 100644 app/assets/images/doc/control-panel-with-tasks.en.png create mode 100644 app/assets/images/doc/control-panel-with-tasks.pt.png create mode 100644 app/assets/images/doc/disable-enterprise-confirmation.en.png create mode 100644 app/assets/images/doc/disable-enterprise-confirmation.pt.png create mode 100644 app/assets/images/doc/disabled-enterprise-block.en.png create mode 100644 app/assets/images/doc/disabled-enterprise-block.pt.png create mode 100644 app/assets/images/doc/edit-appearance.en.png create mode 100644 app/assets/images/doc/edit-appearance.pt.png create mode 100644 app/assets/images/doc/edit-block.en.png create mode 100644 app/assets/images/doc/edit-block.pt.png create mode 100644 app/assets/images/doc/edit-header-footer.en.png create mode 100644 app/assets/images/doc/edit-header-footer.pt.png create mode 100644 app/assets/images/doc/enterprise-activation-box.en.png create mode 100644 app/assets/images/doc/enterprise-activation-box.pt.png create mode 100644 app/assets/images/doc/enterprise-activation-terms.en.png create mode 100644 app/assets/images/doc/enterprise-activation-terms.pt.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-categories.en.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-categories.pt.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-info-add-picture.en.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-info-add-picture.pt.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-info-change-picture.en.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-info-change-picture.pt.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-info-general-information.en.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-info-general-information.pt.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-info-moderation-options.en.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-info-moderation-options.pt.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-privacy-options.en.png create mode 100644 app/assets/images/doc/enterprise-edit-profile-privacy-options.pt.png create mode 100644 app/assets/images/doc/enterprise-edit-sideboxes.en.png create mode 100644 app/assets/images/doc/enterprise-edit-sideboxes.pt.png create mode 100644 app/assets/images/doc/enterprise-image-block.en.png create mode 100644 app/assets/images/doc/enterprise-image-block.pt.png create mode 100644 app/assets/images/doc/enterprise-info-block.en.png create mode 100644 app/assets/images/doc/enterprise-info-block.pt.png create mode 100644 app/assets/images/doc/enterprise-members-list.en.png create mode 100644 app/assets/images/doc/enterprise-members-list.pt.png create mode 100644 app/assets/images/doc/enterprise-network-block.en.png create mode 100644 app/assets/images/doc/enterprise-network-block.pt.png create mode 100644 app/assets/images/doc/enterprise-new-product-last-category.en.png create mode 100644 app/assets/images/doc/enterprise-new-product-no-category.en.png create mode 100644 app/assets/images/doc/enterprise-new-product-second-category.en.png create mode 100644 app/assets/images/doc/enterprise-product-add-input-button.en.png create mode 100644 app/assets/images/doc/enterprise-product-add-input-form.en.png create mode 100644 app/assets/images/doc/enterprise-product-change-image-form.en.png create mode 100644 app/assets/images/doc/enterprise-product-complete.en.png create mode 100644 app/assets/images/doc/enterprise-product-edit-basic-info-form.en.png create mode 100644 app/assets/images/doc/enterprise-product-edit-description-form.en.png create mode 100644 app/assets/images/doc/enterprise-product-edit-name-form.en.png create mode 100644 app/assets/images/doc/enterprise-product-list-new-product-button.en.png create mode 100644 app/assets/images/doc/enterprise-product-list-new-product-button.pt.png create mode 100644 app/assets/images/doc/enterprise-product.en.png create mode 100644 app/assets/images/doc/enterprise-sideboxes-add-block.en.png create mode 100644 app/assets/images/doc/enterprise-sideboxes-add-block.pt.png create mode 100644 app/assets/images/doc/enterprises-block.en.png create mode 100644 app/assets/images/doc/enterprises-block.pt.png create mode 100644 app/assets/images/doc/enterprises-search-field.en.png create mode 100644 app/assets/images/doc/enterprises-search-field.pt.png create mode 100644 app/assets/images/doc/enterprises-search-results-with-example.en.png create mode 100644 app/assets/images/doc/enterprises-search-results-with-example.pt.png create mode 100644 app/assets/images/doc/environment-homepage-with-login-button.en.png create mode 100644 app/assets/images/doc/environment-homepage-with-login-button.pt.png create mode 100644 app/assets/images/doc/favorite-enterprises-block.en.png create mode 100644 app/assets/images/doc/favorite-enterprises-block.pt.png create mode 100644 app/assets/images/doc/feed-reader-block.en.png create mode 100644 app/assets/images/doc/feed-reader-block.pt.png create mode 100644 app/assets/images/doc/friends-block.en.png create mode 100644 app/assets/images/doc/friends-block.pt.png create mode 100644 app/assets/images/doc/gallery-buttons.en.png create mode 100644 app/assets/images/doc/gallery-buttons.pt.png create mode 100644 app/assets/images/doc/groups-list-with-create-community.en.png create mode 100644 app/assets/images/doc/groups-list-with-create-community.pt.png create mode 100644 app/assets/images/doc/groups-list-with-manage-community.en.png create mode 100644 app/assets/images/doc/groups-list-with-manage-community.pt.png create mode 100644 app/assets/images/doc/groups-list-with-manage-enterprise.en.png create mode 100644 app/assets/images/doc/groups-list-with-manage-enterprise.pt.png create mode 100644 app/assets/images/doc/join-community-confirmation.en.png create mode 100644 app/assets/images/doc/join-community-confirmation.pt.png create mode 100644 app/assets/images/doc/joining-community-button.en.png create mode 100644 app/assets/images/doc/joining-community-button.pt.png create mode 100644 app/assets/images/doc/links-block.en.png create mode 100644 app/assets/images/doc/links-block.pt.png create mode 100644 app/assets/images/doc/location-map-block.en.png create mode 100644 app/assets/images/doc/location-map-block.pt.png create mode 100644 app/assets/images/doc/manage-friends.en.png create mode 100644 app/assets/images/doc/manage-friends.pt.png create mode 100644 app/assets/images/doc/members-block.en.png create mode 100644 app/assets/images/doc/members-block.pt.png create mode 100644 app/assets/images/doc/menu-admin.en.png create mode 100644 app/assets/images/doc/menu-admin.pt.png create mode 100644 app/assets/images/doc/menu-communities.en.png create mode 100644 app/assets/images/doc/menu-communities.pt.png create mode 100644 app/assets/images/doc/menu-control-panel.en.png create mode 100644 app/assets/images/doc/menu-control-panel.pt.png create mode 100644 app/assets/images/doc/menu-enterprises.en.png create mode 100644 app/assets/images/doc/menu-enterprises.pt.png create mode 100644 app/assets/images/doc/menu-logout.en.png create mode 100644 app/assets/images/doc/menu-logout.pt.png create mode 100644 app/assets/images/doc/menu-more-active-communities.en.png create mode 100644 app/assets/images/doc/menu-more-active-communities.pt.png create mode 100644 app/assets/images/doc/menu-more-active-people.en.png create mode 100644 app/assets/images/doc/menu-more-active-people.pt.png create mode 100644 app/assets/images/doc/menu-more-popular-communities.en.png create mode 100644 app/assets/images/doc/menu-more-popular-communities.pt.png create mode 100644 app/assets/images/doc/menu-more-popular-people.en.png create mode 100644 app/assets/images/doc/menu-more-popular-people.pt.png create mode 100644 app/assets/images/doc/menu-more-recent-communities.en.png create mode 100644 app/assets/images/doc/menu-more-recent-communities.pt.png create mode 100644 app/assets/images/doc/menu-more-recent-people.en.png create mode 100644 app/assets/images/doc/menu-more-recent-people.pt.png create mode 100644 app/assets/images/doc/menu-people.en.png create mode 100644 app/assets/images/doc/menu-people.pt.png create mode 100644 app/assets/images/doc/menu-products.en.png create mode 100644 app/assets/images/doc/menu-products.pt.png create mode 100644 app/assets/images/doc/menu-search.en.png create mode 100644 app/assets/images/doc/menu-search.pt.png create mode 100644 app/assets/images/doc/more-active-communities-detail.en.png create mode 100644 app/assets/images/doc/more-active-communities-detail.pt.png create mode 100644 app/assets/images/doc/more-active-communities-with-example.en.png create mode 100644 app/assets/images/doc/more-active-communities-with-example.pt.png create mode 100644 app/assets/images/doc/more-active-communities.en.png create mode 100644 app/assets/images/doc/more-active-communities.pt.png create mode 100644 app/assets/images/doc/more-active-people-detail.en.png create mode 100644 app/assets/images/doc/more-active-people-detail.pt.png create mode 100644 app/assets/images/doc/more-active-people-with-example.en.png create mode 100644 app/assets/images/doc/more-active-people-with-example.pt.png create mode 100644 app/assets/images/doc/more-active-people.en.png create mode 100644 app/assets/images/doc/more-active-people.pt.png create mode 100644 app/assets/images/doc/more-popular-communities-detail.en.png create mode 100644 app/assets/images/doc/more-popular-communities-detail.pt.png create mode 100644 app/assets/images/doc/more-popular-communities-with-example.en.png create mode 100644 app/assets/images/doc/more-popular-communities-with-example.pt.png create mode 100644 app/assets/images/doc/more-popular-communities.en.png create mode 100644 app/assets/images/doc/more-popular-communities.pt.png create mode 100644 app/assets/images/doc/more-popular-people-detail.en.png create mode 100644 app/assets/images/doc/more-popular-people-detail.pt.png create mode 100644 app/assets/images/doc/more-popular-people-with-example.en.png create mode 100644 app/assets/images/doc/more-popular-people-with-example.pt.png create mode 100644 app/assets/images/doc/more-popular-people.en.png create mode 100644 app/assets/images/doc/more-popular-people.pt.png create mode 100644 app/assets/images/doc/more-recent-communities-detail.en.png create mode 100644 app/assets/images/doc/more-recent-communities-detail.pt.png create mode 100644 app/assets/images/doc/more-recent-communities-with-example.en.png create mode 100644 app/assets/images/doc/more-recent-communities-with-example.pt.png create mode 100644 app/assets/images/doc/more-recent-communities.en.png create mode 100644 app/assets/images/doc/more-recent-communities.pt.png create mode 100644 app/assets/images/doc/more-recent-people-detail.en.png create mode 100644 app/assets/images/doc/more-recent-people-detail.pt.png create mode 100644 app/assets/images/doc/more-recent-people-with-example.en.png create mode 100644 app/assets/images/doc/more-recent-people-with-example.pt.png create mode 100644 app/assets/images/doc/more-recent-people.en.png create mode 100644 app/assets/images/doc/more-recent-people.pt.png create mode 100644 app/assets/images/doc/new-folder.en.png create mode 100644 app/assets/images/doc/new-folder.pt.png create mode 100644 app/assets/images/doc/open-comment-box-for-logged-in.en.png create mode 100644 app/assets/images/doc/open-comment-box-for-logged-in.pt.png create mode 100644 app/assets/images/doc/open-comment-box-for-not-logged-in.en.png create mode 100644 app/assets/images/doc/open-comment-box-for-not-logged-in.pt.png create mode 100644 app/assets/images/doc/other-person-view-profile-link.en.png create mode 100644 app/assets/images/doc/other-person-view-profile-link.pt.png create mode 100644 app/assets/images/doc/people-search-field.en.png create mode 100644 app/assets/images/doc/people-search-field.pt.png create mode 100644 app/assets/images/doc/people-search-results-with-example.en.png create mode 100644 app/assets/images/doc/people-search-results-with-example.pt.png create mode 100644 app/assets/images/doc/person-activities-list.en.png create mode 100644 app/assets/images/doc/person-activities-list.pt.png create mode 100644 app/assets/images/doc/person-balloon-closed-en.png create mode 100644 app/assets/images/doc/person-balloon-closed.en.png create mode 100644 app/assets/images/doc/person-balloon-en.png create mode 100644 app/assets/images/doc/person-balloon-pt.png create mode 100644 app/assets/images/doc/person-balloon.en.png create mode 100644 app/assets/images/doc/person-balloon.pt.png create mode 100644 app/assets/images/doc/person-delete-profile-confirmation.en.png create mode 100644 app/assets/images/doc/person-delete-profile-confirmation.pt.png create mode 100644 app/assets/images/doc/person-edit-profile-categories.en.png create mode 100644 app/assets/images/doc/person-edit-profile-categories.pt.png create mode 100644 app/assets/images/doc/person-edit-profile-info-change-picture.en.png create mode 100644 app/assets/images/doc/person-edit-profile-info-change-picture.pt.png create mode 100644 app/assets/images/doc/person-edit-profile-info-general-informationen.en.png create mode 100644 app/assets/images/doc/person-edit-profile-info-general-informationen.pt.png create mode 100644 app/assets/images/doc/person-edit-profile-privacy-options.en.png create mode 100644 app/assets/images/doc/person-edit-profile-privacy-options.pt.png create mode 100644 app/assets/images/doc/person-view-profile-link.en.png create mode 100644 app/assets/images/doc/person-view-profile-link.pt.png create mode 100644 app/assets/images/doc/person-wall-scrap-reply-button.en.png create mode 100644 app/assets/images/doc/person-wall-scrap-reply-form.en.png create mode 100644 app/assets/images/doc/person-wall-scrap-reply-form.pt.png create mode 100644 app/assets/images/doc/person-wall-scrap-reply-sent.en.png create mode 100644 app/assets/images/doc/person-wall-scrap-reply-sent.pt.png create mode 100644 app/assets/images/doc/person-wall-scrap-sent.en.png create mode 100644 app/assets/images/doc/person-wall-scrap-sent.pt.png create mode 100644 app/assets/images/doc/person-wall-writing-scrap.en.png create mode 100644 app/assets/images/doc/person-wall-writing-scrap.pt.png create mode 100644 app/assets/images/doc/products-block.en.png create mode 100644 app/assets/images/doc/products-block.pt.png create mode 100644 app/assets/images/doc/products-search-field.en.png create mode 100644 app/assets/images/doc/products-search-field.pt.png create mode 100644 app/assets/images/doc/products-search-results-with-example.en.png create mode 100644 app/assets/images/doc/products-search-results-with-example.pt.png create mode 100644 app/assets/images/doc/profile-image-block.en.png create mode 100644 app/assets/images/doc/profile-image-block.pt.png create mode 100644 app/assets/images/doc/profile-info-block.en.png create mode 100644 app/assets/images/doc/profile-info-block.pt.png create mode 100644 app/assets/images/doc/profile-with-button-to-add-friends.en.png create mode 100644 app/assets/images/doc/profile-with-button-to-add-friends.pt.png create mode 100644 app/assets/images/doc/recent-content-block.en.png create mode 100644 app/assets/images/doc/recent-content-block.pt.png create mode 100644 app/assets/images/doc/remove-comment-confirmation.en.png create mode 100644 app/assets/images/doc/remove-comment-confirmation.pt.png create mode 100644 app/assets/images/doc/remove-friend-confirmation.en.png create mode 100644 app/assets/images/doc/remove-friend-confirmation.pt.png create mode 100644 app/assets/images/doc/remove-friend.en.png create mode 100644 app/assets/images/doc/remove-friend.pt.png create mode 100644 app/assets/images/doc/search-more-options-open.en.png create mode 100644 app/assets/images/doc/search-more-options-open.pt.png create mode 100644 app/assets/images/doc/search-more-options.en.png create mode 100644 app/assets/images/doc/search-more-options.pt.png create mode 100644 app/assets/images/doc/search-results-with-example.en.png create mode 100644 app/assets/images/doc/search-results-with-example.pt.png create mode 100644 app/assets/images/doc/search-view-all-results-with-example.en.png create mode 100644 app/assets/images/doc/search-view-all-results-with-example.pt.png create mode 100644 app/assets/images/doc/send-message.en.png create mode 100644 app/assets/images/doc/send-message.pt.png create mode 100644 app/assets/images/doc/signup-form.en.png create mode 100644 app/assets/images/doc/signup-form.pt.png create mode 100644 app/assets/images/doc/slideshow-block.en.png create mode 100644 app/assets/images/doc/slideshow-block.pt.png create mode 100644 app/assets/images/doc/system-homepage-top-menu-admin.en.png create mode 100644 app/assets/images/doc/system-homepage-top-menu-admin.pt.png create mode 100644 app/assets/images/doc/system-homepage-top-menu.en.png create mode 100644 app/assets/images/doc/system-homepage-top-menu.pt.png create mode 100644 app/assets/images/doc/tags-block.en.png create mode 100644 app/assets/images/doc/tags-block.pt.png create mode 100644 app/assets/images/doc/tasks-list-approval-request.en.png create mode 100644 app/assets/images/doc/tasks-list-approval-request.pt.png create mode 100644 app/assets/images/doc/tasks-list-friendship-request.en.png create mode 100644 app/assets/images/doc/tasks-list-friendship-request.pt.png create mode 100644 app/assets/images/doc/tasks-list-membership-request.en.png create mode 100644 app/assets/images/doc/tasks-list-membership-request.pt.png create mode 100644 app/assets/images/doc/top-menu.en.png create mode 100644 app/assets/images/doc/top-menu.pt.png create mode 100644 app/assets/images/doc/uploading-files-to-gallery.en.png create mode 100644 app/assets/images/doc/uploading-files-to-gallery.pt.png create mode 100644 app/assets/images/doc/user-edit-sideboxes.en.png create mode 100644 app/assets/images/doc/user-edit-sideboxes.pt.png create mode 100644 app/assets/images/doc/user-friends-with-invitation-button.en.png create mode 100644 app/assets/images/doc/user-friends-with-invitation-button.pt.png create mode 100644 app/assets/images/doc/user-import-invitation-step-1.en.png create mode 100644 app/assets/images/doc/user-import-invitation-step-1.pt.png create mode 100644 app/assets/images/doc/user-import-invitation-step-2.en.png create mode 100644 app/assets/images/doc/user-import-invitation-step-2.pt.png create mode 100644 app/assets/images/doc/user-manually-invitation-step-1.en.png create mode 100644 app/assets/images/doc/user-manually-invitation-step-1.pt.png create mode 100644 app/assets/images/doc/user-manually-invitation-step-2.en.png create mode 100644 app/assets/images/doc/user-manually-invitation-step-2.pt.png create mode 100644 app/assets/images/doc/user-network-block.en.png create mode 100644 app/assets/images/doc/user-network-block.pt.png create mode 100644 app/assets/images/doc/user-sideboxes-add-block.en.png create mode 100644 app/assets/images/doc/user-sideboxes-add-block.pt.png create mode 100644 app/assets/images/doc/wysiwyg-buttons.en.png create mode 100644 app/assets/images/doc/wysiwyg-buttons.pt.png create mode 100644 app/assets/images/dotleaders.png create mode 100644 app/assets/images/down-arrow.png create mode 100644 app/assets/images/ecosol-tree-sprite.png create mode 100644 app/assets/images/fancybox/blank.gif create mode 100644 app/assets/images/fancybox/fancy_close.png create mode 100644 app/assets/images/fancybox/fancy_loading.png create mode 100644 app/assets/images/fancybox/fancy_nav_left.png create mode 100644 app/assets/images/fancybox/fancy_nav_right.png create mode 100644 app/assets/images/fancybox/fancy_shadow_e.png create mode 100644 app/assets/images/fancybox/fancy_shadow_n.png create mode 100644 app/assets/images/fancybox/fancy_shadow_ne.png create mode 100644 app/assets/images/fancybox/fancy_shadow_nw.png create mode 100644 app/assets/images/fancybox/fancy_shadow_s.png create mode 100644 app/assets/images/fancybox/fancy_shadow_se.png create mode 100644 app/assets/images/fancybox/fancy_shadow_sw.png create mode 100644 app/assets/images/fancybox/fancy_shadow_w.png create mode 100644 app/assets/images/fancybox/fancy_title_left.png create mode 100644 app/assets/images/fancybox/fancy_title_main.png create mode 100644 app/assets/images/fancybox/fancy_title_over.png create mode 100644 app/assets/images/fancybox/fancy_title_right.png create mode 100644 app/assets/images/fancybox/fancybox-x.png create mode 100644 app/assets/images/fancybox/fancybox-y.png create mode 100644 app/assets/images/fancybox/fancybox.png create mode 100644 app/assets/images/fff.gif create mode 100644 app/assets/images/field-bg.png create mode 100644 app/assets/images/forum-activity-bg-onecol.png create mode 100644 app/assets/images/forum-activity-bg.png create mode 100644 app/assets/images/forum-activity-icon.png create mode 100644 app/assets/images/gallery-image-activity-border-big-onecol.png create mode 100644 app/assets/images/gallery-image-activity-border-big.png create mode 100644 app/assets/images/gallery-image-activity-border-onecol.png create mode 100644 app/assets/images/gallery-image-activity-border.png create mode 100644 app/assets/images/grip-clue.png create mode 100644 app/assets/images/hachure.png create mode 100644 app/assets/images/help-avatar.gif create mode 100644 app/assets/images/icon_filter_exclude.png create mode 100644 app/assets/images/icon_more_options.png create mode 120000 app/assets/images/icons-app/alert.png create mode 100644 app/assets/images/icons-app/article-minor.png create mode 100644 app/assets/images/icons-app/article-portrait.png create mode 100644 app/assets/images/icons-app/article-thumb.png create mode 120000 app/assets/images/icons-app/chat-22x22.png create mode 100644 app/assets/images/icons-app/community-big.png create mode 100644 app/assets/images/icons-app/community-icon.png create mode 100644 app/assets/images/icons-app/community-minor.png create mode 100644 app/assets/images/icons-app/community-portrait.png create mode 100644 app/assets/images/icons-app/community-thumb.png create mode 100644 app/assets/images/icons-app/design-editor.png create mode 100644 app/assets/images/icons-app/emblem-important.png create mode 100644 app/assets/images/icons-app/enterprise-big.png create mode 100644 app/assets/images/icons-app/enterprise-icon.png create mode 100644 app/assets/images/icons-app/enterprise-minor.png create mode 100644 app/assets/images/icons-app/enterprise-portrait.png create mode 120000 app/assets/images/icons-app/enterprise-registration.png create mode 100644 app/assets/images/icons-app/enterprise-thumb.png create mode 100644 app/assets/images/icons-app/gnome-irc-22x22.png create mode 100644 app/assets/images/icons-app/gnome-irc.png create mode 100644 app/assets/images/icons-app/gnome-settings-theme.png create mode 100644 app/assets/images/icons-app/gtk-folder.png create mode 100644 app/assets/images/icons-app/ico-female.png create mode 100644 app/assets/images/icons-app/ico-male.png create mode 100644 app/assets/images/icons-app/ico-sex-undef.png create mode 100644 app/assets/images/icons-app/image-loading-big.png create mode 100644 app/assets/images/icons-app/image-loading-display.png create mode 100644 app/assets/images/icons-app/image-loading-icon.png create mode 100644 app/assets/images/icons-app/image-loading-minor.png create mode 100644 app/assets/images/icons-app/image-loading-portrait.png create mode 100644 app/assets/images/icons-app/image-loading-slideshow.png create mode 100644 app/assets/images/icons-app/image-loading-small.png create mode 100644 app/assets/images/icons-app/image-loading-thumb.png create mode 100644 app/assets/images/icons-app/person-big.png create mode 100644 app/assets/images/icons-app/person-icon.png create mode 100644 app/assets/images/icons-app/person-minor.png create mode 100644 app/assets/images/icons-app/person-portrait.png create mode 100644 app/assets/images/icons-app/person-thumb.png create mode 100644 app/assets/images/icons-app/product-default-pic-big.png create mode 100644 app/assets/images/icons-app/product-default-pic-minor.png create mode 100644 app/assets/images/icons-app/product-default-pic-portrait.png create mode 100644 app/assets/images/icons-app/product-default-pic-thumb.png create mode 100644 app/assets/images/icons-app/user_icon.png create mode 100644 app/assets/images/icons-app/user_icon.svg create mode 100644 app/assets/images/icons-app/users.svg create mode 100644 app/assets/images/icons-bar/accessibility.png create mode 100644 app/assets/images/icons-bar/admin.png create mode 100644 app/assets/images/icons-bar/go-content.png create mode 100644 app/assets/images/icons-bar/go-home.png create mode 100644 app/assets/images/icons-bar/help.png create mode 100644 app/assets/images/icons-bar/login.png create mode 100644 app/assets/images/icons-bar/logout.png create mode 100644 app/assets/images/icons-bar/logout2.png create mode 100644 app/assets/images/icons-cat/Agropecuária_extrativismo_e_pesca.png create mode 100644 app/assets/images/icons-cat/Alimentos_e_bebidas.png create mode 100644 app/assets/images/icons-cat/Artefatos_artesanais.png create mode 100644 app/assets/images/icons-cat/Ação_comunitária.png create mode 100644 app/assets/images/icons-cat/Coleta_e_reciclagem_de_materiais.png create mode 100644 app/assets/images/icons-cat/Crédito_e_finanças.png create mode 100644 app/assets/images/icons-cat/Fitoterápicos_e_produtos_de_limpeza_e_higiene.png create mode 100644 app/assets/images/icons-cat/Prestação_de_serviços_diversos.png create mode 100644 app/assets/images/icons-cat/Produção_industrial.png create mode 100644 app/assets/images/icons-cat/Produção_têxtil_e_confecção.png create mode 100644 app/assets/images/icons-cat/Software.png create mode 100644 app/assets/images/icons-cat/Software_Livre.png create mode 100644 app/assets/images/icons-cat/undefined.png create mode 100644 app/assets/images/icons-map/enterprise.png create mode 100644 app/assets/images/icons-map/enterprise_shadow.png create mode 100644 app/assets/images/icons-mime/README create mode 100644 app/assets/images/icons-mime/empty.png create mode 120000 app/assets/images/icons-mime/event.png create mode 120000 app/assets/images/icons-mime/folder.png create mode 100644 app/assets/images/icons-mime/gnome-folder.png create mode 100644 app/assets/images/icons-mime/gnome-mime-empty.png create mode 100644 app/assets/images/icons-mime/gnome-mime-text-html.png create mode 100644 app/assets/images/icons-mime/ico-feed-on.png create mode 100644 app/assets/images/icons-mime/rss-feed-16.png create mode 120000 app/assets/images/icons-mime/rss-feed.png create mode 120000 app/assets/images/icons-mime/text-html.png create mode 120000 app/assets/images/icons-mime/unknown.png create mode 100644 app/assets/images/icons-task/closed-arrow-hover.png create mode 100644 app/assets/images/icons-task/closed-arrow.png create mode 100644 app/assets/images/icons-task/opened-arrow-hover.png create mode 100644 app/assets/images/icons-task/opened-arrow.png create mode 100644 app/assets/images/input-bg.gif create mode 100644 app/assets/images/loading-dark.gif create mode 100644 app/assets/images/loading-small-dark.gif create mode 100644 app/assets/images/loading-small.gif create mode 100644 app/assets/images/loading.gif create mode 100644 app/assets/images/login_checking.png create mode 100644 app/assets/images/logo-anhetegua-200x50.png create mode 100644 app/assets/images/logo-anhetegua.png create mode 100644 app/assets/images/noosfero-network.png create mode 100755 app/assets/images/noosfero-network.svg create mode 100644 app/assets/images/orange-balloon.png create mode 100644 app/assets/images/orange-bg.png create mode 100644 app/assets/images/passwords_match.png create mode 100644 app/assets/images/passwords_nomatch.png create mode 100644 app/assets/images/rails.png create mode 100644 app/assets/images/scrap-bg-gray.png create mode 100644 app/assets/images/scrap-bg.png create mode 100644 app/assets/images/solidarity-economy.png create mode 100644 app/assets/images/top-arrow.png create mode 100644 app/assets/images/white-pixel.gif create mode 100644 app/assets/images/zoom-dark.png create mode 100644 app/assets/images/zoom.png create mode 100644 app/assets/javascripts/add-and-join.js create mode 100644 app/assets/javascripts/application.js create mode 100644 app/assets/javascripts/article.js create mode 100644 app/assets/javascripts/ba-linkify.js create mode 100644 app/assets/javascripts/catalog.js create mode 100644 app/assets/javascripts/chat.js create mode 100644 app/assets/javascripts/codepress/codepress.css create mode 100644 app/assets/javascripts/codepress/codepress.html create mode 100644 app/assets/javascripts/codepress/codepress.js create mode 100644 app/assets/javascripts/codepress/engines/gecko.js create mode 100644 app/assets/javascripts/codepress/engines/khtml.js create mode 100644 app/assets/javascripts/codepress/engines/msie.js create mode 100644 app/assets/javascripts/codepress/engines/older.js create mode 100644 app/assets/javascripts/codepress/engines/opera.js create mode 100644 app/assets/javascripts/codepress/images/line-numbers.png create mode 100644 app/assets/javascripts/codepress/index.html create mode 100644 app/assets/javascripts/codepress/languages/asp.css create mode 100644 app/assets/javascripts/codepress/languages/asp.js create mode 100644 app/assets/javascripts/codepress/languages/autoit.css create mode 100644 app/assets/javascripts/codepress/languages/autoit.js create mode 100644 app/assets/javascripts/codepress/languages/csharp.css create mode 100644 app/assets/javascripts/codepress/languages/csharp.js create mode 100644 app/assets/javascripts/codepress/languages/css.css create mode 100644 app/assets/javascripts/codepress/languages/css.js create mode 100644 app/assets/javascripts/codepress/languages/generic.css create mode 100644 app/assets/javascripts/codepress/languages/generic.js create mode 100644 app/assets/javascripts/codepress/languages/html.css create mode 100644 app/assets/javascripts/codepress/languages/html.js create mode 100644 app/assets/javascripts/codepress/languages/java.css create mode 100644 app/assets/javascripts/codepress/languages/java.js create mode 100644 app/assets/javascripts/codepress/languages/javascript.css create mode 100644 app/assets/javascripts/codepress/languages/javascript.js create mode 100644 app/assets/javascripts/codepress/languages/perl.css create mode 100644 app/assets/javascripts/codepress/languages/perl.js create mode 100644 app/assets/javascripts/codepress/languages/php.css create mode 100644 app/assets/javascripts/codepress/languages/php.js create mode 100644 app/assets/javascripts/codepress/languages/ruby.css create mode 100644 app/assets/javascripts/codepress/languages/ruby.js create mode 100644 app/assets/javascripts/codepress/languages/sql.css create mode 100644 app/assets/javascripts/codepress/languages/sql.js create mode 100644 app/assets/javascripts/codepress/languages/text.css create mode 100644 app/assets/javascripts/codepress/languages/text.js create mode 100644 app/assets/javascripts/codepress/languages/vbscript.css create mode 100644 app/assets/javascripts/codepress/languages/vbscript.js create mode 100644 app/assets/javascripts/codepress/languages/xsl.css create mode 100644 app/assets/javascripts/codepress/languages/xsl.js create mode 100644 app/assets/javascripts/codepress/license.txt create mode 100644 app/assets/javascripts/colorbox.js create mode 100644 app/assets/javascripts/colorpicker-noosfero.js create mode 100644 app/assets/javascripts/colorpicker.js create mode 100644 app/assets/javascripts/controls.js create mode 100644 app/assets/javascripts/dragdrop.js create mode 100644 app/assets/javascripts/effects.js create mode 100644 app/assets/javascripts/errors.js create mode 100644 app/assets/javascripts/google_maps.js create mode 100644 app/assets/javascripts/jquery-latest.js create mode 100644 app/assets/javascripts/jquery-ui-1.8.2.custom.min.js create mode 100644 app/assets/javascripts/jquery-validation/README.md create mode 100644 app/assets/javascripts/jquery-validation/changelog.txt create mode 100644 app/assets/javascripts/jquery-validation/jquery.validate.js create mode 100644 app/assets/javascripts/jquery-validation/jquery.validate.min.js create mode 100644 app/assets/javascripts/jquery-validation/lib/jquery-1.4.2.js create mode 100644 app/assets/javascripts/jquery-validation/lib/jquery-1.4.4.js create mode 100644 app/assets/javascripts/jquery-validation/lib/jquery-1.5.1.js create mode 100644 app/assets/javascripts/jquery-validation/lib/jquery-1.5.js create mode 100644 app/assets/javascripts/jquery-validation/lib/jquery.form.js create mode 100644 app/assets/javascripts/jquery-validation/lib/jquery.js create mode 100644 app/assets/javascripts/jquery-validation/lib/jquery.metadata.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_ar.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_bg.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_ca.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_cn.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_cs.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_da.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_de.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_el.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_es.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_fa.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_fi.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_fr.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_ge.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_he.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_hu.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_it.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_ja.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_kk.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_lt.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_lv.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_nl.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_no.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_pl.js create mode 120000 app/assets/javascripts/jquery-validation/localization/messages_pt.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_ptbr.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_ptpt.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_ro.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_ru.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_se.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_si.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_sk.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_sr.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_tr.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_tw.js create mode 100644 app/assets/javascripts/jquery-validation/localization/messages_ua.js create mode 100644 app/assets/javascripts/jquery-validation/localization/methods_de.js create mode 100644 app/assets/javascripts/jquery-validation/localization/methods_nl.js create mode 100644 app/assets/javascripts/jquery-validation/localization/methods_pt.js create mode 100644 app/assets/javascripts/jquery-validation/test/events.html create mode 100644 app/assets/javascripts/jquery-validation/test/firebug/errorIcon.png create mode 100644 app/assets/javascripts/jquery-validation/test/firebug/firebug.css create mode 100644 app/assets/javascripts/jquery-validation/test/firebug/firebug.html create mode 100644 app/assets/javascripts/jquery-validation/test/firebug/firebug.js create mode 100644 app/assets/javascripts/jquery-validation/test/firebug/firebugx.js create mode 100644 app/assets/javascripts/jquery-validation/test/firebug/infoIcon.png create mode 100644 app/assets/javascripts/jquery-validation/test/firebug/warningIcon.png create mode 100644 app/assets/javascripts/jquery-validation/test/index.html create mode 100644 app/assets/javascripts/jquery-validation/test/jquery.js create mode 100644 app/assets/javascripts/jquery-validation/test/large.html create mode 100644 app/assets/javascripts/jquery-validation/test/messages.js create mode 100644 app/assets/javascripts/jquery-validation/test/methods.js create mode 100644 app/assets/javascripts/jquery-validation/test/qunit/qunit.css create mode 100644 app/assets/javascripts/jquery-validation/test/qunit/qunit.js create mode 100644 app/assets/javascripts/jquery-validation/test/rules.js create mode 100644 app/assets/javascripts/jquery-validation/test/selects/index.html create mode 100644 app/assets/javascripts/jquery-validation/test/tabs.html create mode 100644 app/assets/javascripts/jquery-validation/test/test.js create mode 100644 app/assets/javascripts/jquery-validation/test/users.php create mode 100644 app/assets/javascripts/jquery-validation/test/users2.php create mode 100644 app/assets/javascripts/jquery-validation/todo create mode 100644 app/assets/javascripts/jquery-validation/version.txt create mode 100644 app/assets/javascripts/jquery.ba-bbq.min.js create mode 100644 app/assets/javascripts/jquery.ba-hashchange.js create mode 100644 app/assets/javascripts/jquery.cookie.js create mode 100644 app/assets/javascripts/jquery.cycle.all.min.js create mode 100644 app/assets/javascripts/jquery.emoticon.js create mode 100644 app/assets/javascripts/jquery.fancybox-1.3.4.pack.js create mode 100644 app/assets/javascripts/jquery.form.js create mode 100644 app/assets/javascripts/jquery.noconflict.js create mode 100644 app/assets/javascripts/jquery.scrollTo.js create mode 100644 app/assets/javascripts/jquery.scrollabletab.js create mode 100644 app/assets/javascripts/jquery.sound.js create mode 100644 app/assets/javascripts/jquery.tokeninput.js create mode 100644 app/assets/javascripts/lightbox.js create mode 100644 app/assets/javascripts/lowpro.js create mode 100644 app/assets/javascripts/manage-categories.js create mode 100644 app/assets/javascripts/manage-products.js create mode 100644 app/assets/javascripts/miscellaneous.js create mode 100644 app/assets/javascripts/pikachoose.js create mode 100644 app/assets/javascripts/prototype.js create mode 100644 app/assets/javascripts/reflection.js create mode 100644 app/assets/javascripts/report-abuse.js create mode 100644 app/assets/javascripts/sliderjs.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/LICENSE.txt create mode 100644 app/assets/javascripts/strophejs-1.0.1/README.txt create mode 100644 app/assets/javascripts/strophejs-1.0.1/contrib/discojs/README.txt create mode 100644 app/assets/javascripts/strophejs-1.0.1/contrib/discojs/css/disco.css create mode 100644 app/assets/javascripts/strophejs-1.0.1/contrib/discojs/index.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/contrib/discojs/punjab.tac create mode 100644 app/assets/javascripts/strophejs-1.0.1/contrib/discojs/scripts/basic.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/contrib/discojs/scripts/disco.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/files/core-js.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/index.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/javascript/main.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/javascript/searchdata.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ClassesS.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsA.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsB.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsC.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsD.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsE.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsF.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsH.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsI.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsL.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsM.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsP.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsR.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsS.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsV.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsW.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsX.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FilesS.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsA.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsB.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsC.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsD.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsE.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsF.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsG.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsI.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsL.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsP.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsR.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsS.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsSymbols.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsT.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsU.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsW.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsX.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralA.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralB.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralC.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralD.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralE.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralF.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralG.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralH.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralI.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralL.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralM.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralP.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralR.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralS.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralSymbols.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralT.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralU.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralV.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralW.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralX.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/search/NoResults.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/doc/styles/main.css create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/attach/README create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/attach/__init__.py create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/attach/attacher/__init__.py create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/attach/attacher/views.py create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/attach/boshclient.py create mode 100755 app/assets/javascripts/strophejs-1.0.1/examples/attach/manage.py create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/attach/settings.py create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/attach/templates/attacher/index.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/attach/urls.py create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/basic.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/basic.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.xml create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/dojo-ping.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/dojo-ping.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/echobot.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/echobot.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/prebind.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/prebind.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/prototype-ping.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/prototype-ping.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/yui-ping.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/examples/yui-ping.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.min.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.min.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/strophe.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/strophe.min.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/tests/jstests.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/tests/jsyuitests.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/tests/pubsub.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/tests/pubsub.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/tests/strophe.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/tests/testrunner.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/tests/tests.js create mode 100644 app/assets/javascripts/strophejs-1.0.1/tests/testsuite.css create mode 100644 app/assets/javascripts/strophejs-1.0.1/tests/yuitests.html create mode 100644 app/assets/javascripts/strophejs-1.0.1/tests/yuitests.js create mode 100644 app/assets/javascripts/tasks.js create mode 100644 app/assets/javascripts/thickbox.js create mode 100644 app/assets/javascripts/tinymce/changelog.txt create mode 100644 app/assets/javascripts/tinymce/examples/accessibility.html create mode 100644 app/assets/javascripts/tinymce/examples/css/content.css create mode 100644 app/assets/javascripts/tinymce/examples/css/word.css create mode 100644 app/assets/javascripts/tinymce/examples/custom_formats.html create mode 100644 app/assets/javascripts/tinymce/examples/full.html create mode 100644 app/assets/javascripts/tinymce/examples/index.html create mode 100644 app/assets/javascripts/tinymce/examples/lists/image_list.js create mode 100644 app/assets/javascripts/tinymce/examples/lists/link_list.js create mode 100644 app/assets/javascripts/tinymce/examples/lists/media_list.js create mode 100644 app/assets/javascripts/tinymce/examples/lists/template_list.js create mode 100644 app/assets/javascripts/tinymce/examples/media/logo.jpg create mode 100644 app/assets/javascripts/tinymce/examples/media/logo_over.jpg create mode 100644 app/assets/javascripts/tinymce/examples/media/sample.avi create mode 100644 app/assets/javascripts/tinymce/examples/media/sample.dcr create mode 100644 app/assets/javascripts/tinymce/examples/media/sample.flv create mode 100644 app/assets/javascripts/tinymce/examples/media/sample.mov create mode 100644 app/assets/javascripts/tinymce/examples/media/sample.ram create mode 100644 app/assets/javascripts/tinymce/examples/media/sample.rm create mode 100644 app/assets/javascripts/tinymce/examples/media/sample.swf create mode 100644 app/assets/javascripts/tinymce/examples/menu.html create mode 100644 app/assets/javascripts/tinymce/examples/simple.html create mode 100644 app/assets/javascripts/tinymce/examples/skins.html create mode 100644 app/assets/javascripts/tinymce/examples/templates/layout1.htm create mode 100644 app/assets/javascripts/tinymce/examples/templates/snippet1.htm create mode 100644 app/assets/javascripts/tinymce/examples/translate.html create mode 100644 app/assets/javascripts/tinymce/examples/word.html create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/de.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/en.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/eo.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/es.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/fr.js create mode 120000 app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/hy.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/it.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/ja.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/nl.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/pt.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/ru.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/license.txt create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/content.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/media.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flash.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flv_player.swf create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/quicktime.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/realmedia.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/shockwave.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/windowsmedia.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/js/media.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/media.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/example.html create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/preview.html create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/css/props.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/js/props.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/props.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/cell.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/row.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/table.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/row.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/table.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/row.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/table.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/blank.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/css/template.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/js/template.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/template.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/fr_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/about.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/image.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/realmedia.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/trans.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr_dlg.js create mode 120000 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/hy.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru_dlg.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/link.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/de.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/eo.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/es.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/fr.js create mode 120000 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/hy.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/it.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ja.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/nl.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/pt.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ru.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce_popup.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce_src.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/utils/editable_selects.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/utils/form_utils.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/utils/mctabs.js create mode 100644 app/assets/javascripts/tinymce/jscripts/tiny_mce/utils/validate.js create mode 100644 app/assets/stylesheets/application.css create mode 100644 app/assets/stylesheets/calendar_date_select/blue.css create mode 100644 app/assets/stylesheets/calendar_date_select/default.css create mode 100644 app/assets/stylesheets/calendar_date_select/plain.css create mode 100644 app/assets/stylesheets/calendar_date_select/red.css create mode 100644 app/assets/stylesheets/calendar_date_select/silver.css create mode 100644 app/assets/stylesheets/colorbox.css create mode 100644 app/assets/stylesheets/colorpicker.css create mode 100644 app/assets/stylesheets/fancybox.css create mode 100755 app/assets/stylesheets/iepngfix/blank.gif create mode 100644 app/assets/stylesheets/iepngfix/iepngfix.css create mode 100755 app/assets/stylesheets/iepngfix/iepngfix.htc create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-anim_basic_16x16.gif create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_flat_55_fbec88_40x100.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_85_dfeffc_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_217bc0_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_2e83ff_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_469bdd_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_6da8d5_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_cd0a0a_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_d8e7f3_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_f9bd01_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/redmond/jquery-ui-1.8.2.custom.css create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-anim_basic_16x16.gif create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_222222_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_2e83ff_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_454545_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_888888_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_cd0a0a_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness/jquery-ui-1.8.2.custom.css create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-anim_basic_16x16.gif create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_222222_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_2e83ff_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_454545_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_888888_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_cd0a0a_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/smoothness_mod/jquery-ui-1.8.2.custom.css create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-anim_basic_16x16.gif create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_808080_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_847e71_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_8dc262_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_cd0a0a_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_eeeeee_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_ffffff_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/south-street/jquery-ui-1.8.2.custom.css create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-anim_basic_16x16.gif create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_diagonals-medium_20_d34d17_40x40.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_30_cccccc_40x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_50_5c5c5c_40x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_30_888a85_500x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_45_918e88_500x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_60_fece2f_500x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_70_ffdd57_500x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_90_fff9e5_500x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_0_feeebd_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_70_feeebd_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_30_feeebd_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_70_feeebd_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_3d3d3d_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_bd7b00_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_d19405_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_eb990f_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ed9f26_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_fadc7a_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ffe180_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny-mod/jquery-ui-1.8.2.custom.css create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-anim_basic_16x16.gif create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_flat_30_cccccc_40x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_3d3d3d_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_bd7b00_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_d19405_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_eb990f_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_ed9f26_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_fadc7a_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_ffe180_256x240.png create mode 100644 app/assets/stylesheets/jquery.ui/sunny/jquery-ui-1.8.2.custom.css create mode 100644 app/assets/stylesheets/lightbox.css create mode 100644 app/assets/stylesheets/search.css create mode 100644 app/assets/stylesheets/slideshow.css create mode 100644 app/assets/stylesheets/tasks.css create mode 100644 app/assets/stylesheets/thickbox.css create mode 100644 app/assets/stylesheets/tinymce.css create mode 100644 app/assets/stylesheets/token-input-facebook.css create mode 100644 app/assets/stylesheets/token-input-facet.css create mode 100644 app/assets/stylesheets/token-input-mac.css create mode 100644 app/assets/stylesheets/token-input.css delete mode 100644 public/images/balloon-footer.png delete mode 100644 public/images/balloon-header.png delete mode 100644 public/images/balloon-middle.png delete mode 100644 public/images/beta.gif delete mode 100644 public/images/black-alpha-pixel-5.png delete mode 100644 public/images/black-alpha-pixel.png delete mode 100644 public/images/blocks/1.png delete mode 100644 public/images/blocks/1.svg delete mode 100644 public/images/blocks/2.png delete mode 100644 public/images/blocks/2.svg delete mode 100644 public/images/blocks/3.png delete mode 100644 public/images/blocks/3.svg delete mode 100644 public/images/bolota.gif delete mode 100644 public/images/borda-esq-aba-azul.gif delete mode 100644 public/images/bt-bookmark.gif delete mode 100644 public/images/calendar_date_select/calendar.gif delete mode 100644 public/images/calendar_date_select/calendar.png delete mode 100644 public/images/catalog-expanders.png delete mode 100644 public/images/ccc.gif delete mode 100644 public/images/colorbox/border.png delete mode 100644 public/images/colorbox/controls.png delete mode 100644 public/images/colorbox/ie6/borderBottomCenter.png delete mode 100644 public/images/colorbox/ie6/borderBottomLeft.png delete mode 100644 public/images/colorbox/ie6/borderBottomRight.png delete mode 100644 public/images/colorbox/ie6/borderMiddleLeft.png delete mode 100644 public/images/colorbox/ie6/borderMiddleRight.png delete mode 100644 public/images/colorbox/ie6/borderTopCenter.png delete mode 100644 public/images/colorbox/ie6/borderTopLeft.png delete mode 100644 public/images/colorbox/ie6/borderTopRight.png delete mode 100644 public/images/colorbox/loading.gif delete mode 100644 public/images/colorbox/loading_background.png delete mode 100644 public/images/colorbox/overlay.png delete mode 100644 public/images/colorpicker/apply.png delete mode 100644 public/images/colorpicker/gradiente.png delete mode 100644 public/images/colorpicker/indic.gif delete mode 100644 public/images/colorpicker/overlay.png delete mode 100644 public/images/colorpicker/select.gif delete mode 100644 public/images/comment-owner-bg-L.png delete mode 100644 public/images/comment-owner-bg-N.png delete mode 100644 public/images/comment-owner-bg-NL.png delete mode 100644 public/images/comment-owner-bg-NO.png delete mode 100644 public/images/comment-owner-bg-O.png delete mode 100644 public/images/comment-owner-bg-S.png delete mode 100644 public/images/comment-owner-bg-SL.png delete mode 100644 public/images/comment-owner-bg-SO.png delete mode 100644 public/images/comment-reply-owner-bg.png delete mode 100644 public/images/control-panel/Makefile delete mode 100644 public/images/control-panel/application-certificate.gif delete mode 100644 public/images/control-panel/application-certificate.png delete mode 100644 public/images/control-panel/application-certificate.svg delete mode 100644 public/images/control-panel/blocks.gif delete mode 100644 public/images/control-panel/blocks.png delete mode 100644 public/images/control-panel/blocks.svg delete mode 100644 public/images/control-panel/contact.gif delete mode 100644 public/images/control-panel/contact.png delete mode 100644 public/images/control-panel/contact.svg delete mode 100644 public/images/control-panel/edit-profile-enterprise.gif delete mode 100644 public/images/control-panel/edit-profile-enterprise.png delete mode 100644 public/images/control-panel/edit-profile-enterprise.svg delete mode 100644 public/images/control-panel/edit-profile-group.gif delete mode 100644 public/images/control-panel/edit-profile-group.png delete mode 100644 public/images/control-panel/edit-profile-group.svg delete mode 100644 public/images/control-panel/edit-profile.gif delete mode 100644 public/images/control-panel/edit-profile.png delete mode 100644 public/images/control-panel/edit-profile.svg delete mode 100644 public/images/control-panel/editpaste.gif delete mode 100644 public/images/control-panel/editpaste.png delete mode 120000 public/images/control-panel/editpaste.svg delete mode 100644 public/images/control-panel/email.gif delete mode 100644 public/images/control-panel/email.png delete mode 120000 public/images/control-panel/email.svg delete mode 100644 public/images/control-panel/emblem-favorite.gif delete mode 100644 public/images/control-panel/emblem-favorite.png delete mode 120000 public/images/control-panel/emblem-favorite.svg delete mode 100644 public/images/control-panel/header-footer.gif delete mode 100644 public/images/control-panel/header-footer.png delete mode 100644 public/images/control-panel/header-footer.svg delete mode 100644 public/images/control-panel/important.gif delete mode 100644 public/images/control-panel/important.png delete mode 120000 public/images/control-panel/important.svg delete mode 100644 public/images/control-panel/mail-mark-junk.png delete mode 100644 public/images/control-panel/mail-mark-junk.svg delete mode 100644 public/images/control-panel/package.gif delete mode 100644 public/images/control-panel/package.png delete mode 100644 public/images/control-panel/package.svg delete mode 100644 public/images/control-panel/password.gif delete mode 100644 public/images/control-panel/password.png delete mode 120000 public/images/control-panel/password.svg delete mode 100644 public/images/control-panel/preferences-desktop-wallpaper.gif delete mode 100644 public/images/control-panel/preferences-desktop-wallpaper.png delete mode 120000 public/images/control-panel/preferences-desktop-wallpaper.svg delete mode 100644 public/images/control-panel/set-geolocation.gif delete mode 100644 public/images/control-panel/set-geolocation.png delete mode 100644 public/images/control-panel/stop.gif delete mode 100644 public/images/control-panel/stop.png delete mode 100644 public/images/control-panel/stop.svg delete mode 100644 public/images/control-panel/system-file-manager.gif delete mode 100644 public/images/control-panel/system-file-manager.png delete mode 120000 public/images/control-panel/system-file-manager.svg delete mode 100644 public/images/control-panel/system-users.gif delete mode 100644 public/images/control-panel/system-users.png delete mode 120000 public/images/control-panel/system-users.svg delete mode 100644 public/images/control-panel/text-editor-disabled.gif delete mode 120000 public/images/control-panel/text-editor-disabled.png delete mode 120000 public/images/control-panel/text-editor-disabled.svg delete mode 100644 public/images/control-panel/text-editor.gif delete mode 100644 public/images/control-panel/text-editor.png delete mode 120000 public/images/control-panel/text-editor.svg delete mode 100644 public/images/doc/activation-conlusion.en.png delete mode 100644 public/images/doc/activation-conlusion.pt.png delete mode 100644 public/images/doc/activation-question.en.png delete mode 100644 public/images/doc/activation-question.pt.png delete mode 100644 public/images/doc/add-member-enterprise.en.png delete mode 100644 public/images/doc/add-member-enterprise.pt.png delete mode 100644 public/images/doc/admin-panel-export-users.en.png delete mode 100644 public/images/doc/admin-panel-export-users.pt.png delete mode 100644 public/images/doc/admin-panel-manage-users.en.png delete mode 100644 public/images/doc/admin-panel-manage-users.pt.png delete mode 100644 public/images/doc/admin-panel-send-email.en.png delete mode 100644 public/images/doc/admin-panel-send-email.pt.png delete mode 100644 public/images/doc/admin-send-email.en.png delete mode 100644 public/images/doc/admin-send-email.pt.png delete mode 100644 public/images/doc/advanced-article-archives-list.en.png delete mode 100644 public/images/doc/advanced-article-archives-list.pt.png delete mode 100644 public/images/doc/advanced-article-created-link.en.png delete mode 100644 public/images/doc/advanced-article-created-link.pt.png delete mode 100644 public/images/doc/advanced-article-created-object.en.png delete mode 100644 public/images/doc/advanced-article-created-object.pt.png delete mode 100644 public/images/doc/advanced-article-insert-html.en.png delete mode 100644 public/images/doc/advanced-article-insert-html.pt.png delete mode 100644 public/images/doc/advanced-article-insert-links.en.png delete mode 100644 public/images/doc/advanced-article-insert-links.pt.png delete mode 100644 public/images/doc/advanced-article-popup-insert-html.en.png delete mode 100644 public/images/doc/advanced-article-popup-insert-html.pt.png delete mode 100644 public/images/doc/advanced-article-popup-insert-link.en.png delete mode 100644 public/images/doc/advanced-article-popup-insert-link.pt.png delete mode 100644 public/images/doc/advanced-article-upload-images.en.png delete mode 100644 public/images/doc/advanced-article-upload-images.pt.png delete mode 100644 public/images/doc/article-bigger-spread-view.en.png delete mode 100644 public/images/doc/article-bigger-spread-view.pt.png delete mode 100644 public/images/doc/article-block.en.png delete mode 100644 public/images/doc/article-block.pt.png delete mode 100644 public/images/doc/article-creation-categorization.en.png delete mode 100644 public/images/doc/article-creation-categorization.pt.png delete mode 100644 public/images/doc/article-creation-category-choosen.en.png delete mode 100644 public/images/doc/article-creation-category-choosen.pt.png delete mode 100644 public/images/doc/article-creation-options.en.png delete mode 100644 public/images/doc/article-creation-options.pt.png delete mode 100644 public/images/doc/article-creation-tags.en.png delete mode 100644 public/images/doc/article-creation-tags.pt.png delete mode 100644 public/images/doc/article-spread-view.en.png delete mode 100644 public/images/doc/article-spread-view.pt.png delete mode 100644 public/images/doc/article-spread.en.png delete mode 100644 public/images/doc/article-spread.pt.png delete mode 100644 public/images/doc/article-text-lead.en.png delete mode 100644 public/images/doc/article-text-lead.pt.png delete mode 100644 public/images/doc/article-text.en.png delete mode 100644 public/images/doc/article-text.pt.png delete mode 100644 public/images/doc/block-actions.en.png delete mode 100644 public/images/doc/blog-buttons.en.png delete mode 100644 public/images/doc/blog-buttons.pt.png delete mode 100644 public/images/doc/box-register.en.png delete mode 100644 public/images/doc/box-register.pt.png delete mode 100644 public/images/doc/change-password.en.png delete mode 100644 public/images/doc/change-password.pt.png delete mode 100644 public/images/doc/changing-role-enterprise-member.en.png delete mode 100644 public/images/doc/changing-role-enterprise-member.pt.png delete mode 100644 public/images/doc/closed-comment-box.en.png delete mode 100644 public/images/doc/closed-comment-box.pt.png delete mode 100644 public/images/doc/cms-article-icons.en.png delete mode 100644 public/images/doc/cms-article-icons.pt.png delete mode 100644 public/images/doc/cms-article-types.en.png delete mode 100644 public/images/doc/cms-article-types.pt.png delete mode 100644 public/images/doc/cms-blog-creation.en.png delete mode 100644 public/images/doc/cms-blog-creation.pt.png delete mode 100644 public/images/doc/cms-blog-public-visualization.en.png delete mode 100644 public/images/doc/cms-blog-public-visualization.pt.png delete mode 100644 public/images/doc/cms-folder-icons.en.png delete mode 100644 public/images/doc/cms-folder-icons.pt.png delete mode 100644 public/images/doc/cms-gallery-public-visualization.en.png delete mode 100644 public/images/doc/cms-gallery-public-visualization.pt.png delete mode 100644 public/images/doc/cms-new-article.en.png delete mode 100644 public/images/doc/cms-new-article.pt.png delete mode 100644 public/images/doc/cms-spread-article-icon.en.png delete mode 100644 public/images/doc/cms-spread-article-icon.pt.png delete mode 100644 public/images/doc/cms-uploading-files.en.png delete mode 100644 public/images/doc/cms-uploading-files.pt.png delete mode 100644 public/images/doc/cms.en.png delete mode 100644 public/images/doc/cms.pt.png delete mode 100644 public/images/doc/comments-of-logged-in-out-person.en.png delete mode 100644 public/images/doc/comments-of-logged-in-out-person.pt.png delete mode 100644 public/images/doc/comments.en.png delete mode 100644 public/images/doc/comments.pt.png delete mode 100644 public/images/doc/communities-block.en.png delete mode 100644 public/images/doc/communities-block.pt.png delete mode 100644 public/images/doc/communities-search-field.en.png delete mode 100644 public/images/doc/communities-search-field.pt.png delete mode 100644 public/images/doc/communities-search-results-with-example.en.png delete mode 100644 public/images/doc/communities-search-results-with-example.pt.png delete mode 100644 public/images/doc/community-balloon-closed-en.png delete mode 100644 public/images/doc/community-balloon-closed.en.png delete mode 100644 public/images/doc/community-balloon-en.png delete mode 100644 public/images/doc/community-balloon-pt.png delete mode 100644 public/images/doc/community-balloon.en.png delete mode 100644 public/images/doc/community-balloon.pt.png delete mode 100644 public/images/doc/community-control-panel-manage-members.en.png delete mode 100644 public/images/doc/community-control-panel-manage-members.pt.png delete mode 100644 public/images/doc/community-control-panel-with-approval-task.en.png delete mode 100644 public/images/doc/community-control-panel-with-approval-task.pt.png delete mode 100644 public/images/doc/community-control-panel-with-tasks.en.png delete mode 100644 public/images/doc/community-control-panel-with-tasks.pt.png delete mode 100644 public/images/doc/community-creation-form.en.png delete mode 100644 public/images/doc/community-creation-form.pt.png delete mode 100644 public/images/doc/community-creation.en.png delete mode 100644 public/images/doc/community-creation.pt.png delete mode 100644 public/images/doc/community-edit-sideboxes.en.png delete mode 100644 public/images/doc/community-edit-sideboxes.pt.png delete mode 100644 public/images/doc/community-image-block.en.png delete mode 100644 public/images/doc/community-image-block.pt.png delete mode 100644 public/images/doc/community-import-invitation-step-1.en.png delete mode 100644 public/images/doc/community-import-invitation-step-1.pt.png delete mode 100644 public/images/doc/community-import-invitation-step-2.en.png delete mode 100644 public/images/doc/community-import-invitation-step-2.pt.png delete mode 100644 public/images/doc/community-info-block.en.png delete mode 100644 public/images/doc/community-info-block.pt.png delete mode 100644 public/images/doc/community-manually-invitation-step-1.en.png delete mode 100644 public/images/doc/community-manually-invitation-step-1.pt.png delete mode 100644 public/images/doc/community-manually-invitation-step-2.en.png delete mode 100644 public/images/doc/community-manually-invitation-step-2.pt.png delete mode 100644 public/images/doc/community-members-with-invitation-button.en.png delete mode 100644 public/images/doc/community-members-with-invitation-button.pt.png delete mode 100644 public/images/doc/community-members-with-send-mail-button.en.png delete mode 100644 public/images/doc/community-members-with-send-mail-button.pt.png delete mode 100644 public/images/doc/community-network-block.en.png delete mode 100644 public/images/doc/community-network-block.pt.png delete mode 100644 public/images/doc/community-send-email.en.png delete mode 100644 public/images/doc/community-send-email.pt.png delete mode 100644 public/images/doc/community-sideboxes-add-block.en.png delete mode 100644 public/images/doc/community-sideboxes-add-block.pt.png delete mode 100644 public/images/doc/confirmation-adding-friend.en.png delete mode 100644 public/images/doc/confirmation-adding-friend.pt.png delete mode 100644 public/images/doc/contact-button.en.png delete mode 100644 public/images/doc/contact-button.pt.png delete mode 100644 public/images/doc/control-panel-change-password.en.png delete mode 100644 public/images/doc/control-panel-change-password.pt.png delete mode 100644 public/images/doc/control-panel-community-edit-appearance.en.png delete mode 100644 public/images/doc/control-panel-community-edit-appearance.pt.png delete mode 100644 public/images/doc/control-panel-community-edit-header-footer.en.png delete mode 100644 public/images/doc/control-panel-community-edit-header-footer.pt.png delete mode 100644 public/images/doc/control-panel-community-edit-sideboxes.en.png delete mode 100644 public/images/doc/control-panel-community-edit-sideboxes.pt.png delete mode 100644 public/images/doc/control-panel-content-management.en.png delete mode 100644 public/images/doc/control-panel-content-management.pt.png delete mode 100644 public/images/doc/control-panel-create-blog.en.png delete mode 100644 public/images/doc/control-panel-create-blog.pt.png delete mode 100644 public/images/doc/control-panel-disable-enterprise.en.png delete mode 100644 public/images/doc/control-panel-disable-enterprise.pt.png delete mode 100644 public/images/doc/control-panel-enterprise-edit-appearance.en.png delete mode 100644 public/images/doc/control-panel-enterprise-edit-appearance.pt.png delete mode 100644 public/images/doc/control-panel-enterprise-edit-header-footer.en.png delete mode 100644 public/images/doc/control-panel-enterprise-edit-header-footer.pt.png delete mode 100644 public/images/doc/control-panel-enterprise-edit-profile-info.en.png delete mode 100644 public/images/doc/control-panel-enterprise-edit-profile-info.pt.png delete mode 100644 public/images/doc/control-panel-enterprise-edit-sideboxes.en.png delete mode 100644 public/images/doc/control-panel-enterprise-edit-sideboxes.pt.png delete mode 100644 public/images/doc/control-panel-manage-groups.en.png delete mode 100644 public/images/doc/control-panel-manage-groups.pt.png delete mode 100644 public/images/doc/control-panel-manage-members.en.png delete mode 100644 public/images/doc/control-panel-manage-members.pt.png delete mode 100644 public/images/doc/control-panel-manage-products.en.png delete mode 100644 public/images/doc/control-panel-manage-products.pt.png delete mode 100644 public/images/doc/control-panel-menu.en.png delete mode 100644 public/images/doc/control-panel-menu.pt.png delete mode 100644 public/images/doc/control-panel-person-delete-profile.en.png delete mode 100644 public/images/doc/control-panel-person-delete-profile.pt.png delete mode 100644 public/images/doc/control-panel-person-edit-profile-info.en.png delete mode 100644 public/images/doc/control-panel-person-edit-profile-info.pt.png delete mode 100644 public/images/doc/control-panel-user-edit-appearance.en.png delete mode 100644 public/images/doc/control-panel-user-edit-appearance.pt.png delete mode 100644 public/images/doc/control-panel-user-edit-header-footer.en.png delete mode 100644 public/images/doc/control-panel-user-edit-header-footer.pt.png delete mode 100644 public/images/doc/control-panel-user-edit-sideboxes.en.png delete mode 100644 public/images/doc/control-panel-user-edit-sideboxes.pt.png delete mode 100644 public/images/doc/control-panel-with-tasks.en.png delete mode 100644 public/images/doc/control-panel-with-tasks.pt.png delete mode 100644 public/images/doc/disable-enterprise-confirmation.en.png delete mode 100644 public/images/doc/disable-enterprise-confirmation.pt.png delete mode 100644 public/images/doc/disabled-enterprise-block.en.png delete mode 100644 public/images/doc/disabled-enterprise-block.pt.png delete mode 100644 public/images/doc/edit-appearance.en.png delete mode 100644 public/images/doc/edit-appearance.pt.png delete mode 100644 public/images/doc/edit-block.en.png delete mode 100644 public/images/doc/edit-block.pt.png delete mode 100644 public/images/doc/edit-header-footer.en.png delete mode 100644 public/images/doc/edit-header-footer.pt.png delete mode 100644 public/images/doc/enterprise-activation-box.en.png delete mode 100644 public/images/doc/enterprise-activation-box.pt.png delete mode 100644 public/images/doc/enterprise-activation-terms.en.png delete mode 100644 public/images/doc/enterprise-activation-terms.pt.png delete mode 100644 public/images/doc/enterprise-edit-profile-categories.en.png delete mode 100644 public/images/doc/enterprise-edit-profile-categories.pt.png delete mode 100644 public/images/doc/enterprise-edit-profile-info-add-picture.en.png delete mode 100644 public/images/doc/enterprise-edit-profile-info-add-picture.pt.png delete mode 100644 public/images/doc/enterprise-edit-profile-info-change-picture.en.png delete mode 100644 public/images/doc/enterprise-edit-profile-info-change-picture.pt.png delete mode 100644 public/images/doc/enterprise-edit-profile-info-general-information.en.png delete mode 100644 public/images/doc/enterprise-edit-profile-info-general-information.pt.png delete mode 100644 public/images/doc/enterprise-edit-profile-info-moderation-options.en.png delete mode 100644 public/images/doc/enterprise-edit-profile-info-moderation-options.pt.png delete mode 100644 public/images/doc/enterprise-edit-profile-privacy-options.en.png delete mode 100644 public/images/doc/enterprise-edit-profile-privacy-options.pt.png delete mode 100644 public/images/doc/enterprise-edit-sideboxes.en.png delete mode 100644 public/images/doc/enterprise-edit-sideboxes.pt.png delete mode 100644 public/images/doc/enterprise-image-block.en.png delete mode 100644 public/images/doc/enterprise-image-block.pt.png delete mode 100644 public/images/doc/enterprise-info-block.en.png delete mode 100644 public/images/doc/enterprise-info-block.pt.png delete mode 100644 public/images/doc/enterprise-members-list.en.png delete mode 100644 public/images/doc/enterprise-members-list.pt.png delete mode 100644 public/images/doc/enterprise-network-block.en.png delete mode 100644 public/images/doc/enterprise-network-block.pt.png delete mode 100644 public/images/doc/enterprise-new-product-last-category.en.png delete mode 100644 public/images/doc/enterprise-new-product-no-category.en.png delete mode 100644 public/images/doc/enterprise-new-product-second-category.en.png delete mode 100644 public/images/doc/enterprise-product-add-input-button.en.png delete mode 100644 public/images/doc/enterprise-product-add-input-form.en.png delete mode 100644 public/images/doc/enterprise-product-change-image-form.en.png delete mode 100644 public/images/doc/enterprise-product-complete.en.png delete mode 100644 public/images/doc/enterprise-product-edit-basic-info-form.en.png delete mode 100644 public/images/doc/enterprise-product-edit-description-form.en.png delete mode 100644 public/images/doc/enterprise-product-edit-name-form.en.png delete mode 100644 public/images/doc/enterprise-product-list-new-product-button.en.png delete mode 100644 public/images/doc/enterprise-product-list-new-product-button.pt.png delete mode 100644 public/images/doc/enterprise-product.en.png delete mode 100644 public/images/doc/enterprise-sideboxes-add-block.en.png delete mode 100644 public/images/doc/enterprise-sideboxes-add-block.pt.png delete mode 100644 public/images/doc/enterprises-block.en.png delete mode 100644 public/images/doc/enterprises-block.pt.png delete mode 100644 public/images/doc/enterprises-search-field.en.png delete mode 100644 public/images/doc/enterprises-search-field.pt.png delete mode 100644 public/images/doc/enterprises-search-results-with-example.en.png delete mode 100644 public/images/doc/enterprises-search-results-with-example.pt.png delete mode 100644 public/images/doc/environment-homepage-with-login-button.en.png delete mode 100644 public/images/doc/environment-homepage-with-login-button.pt.png delete mode 100644 public/images/doc/favorite-enterprises-block.en.png delete mode 100644 public/images/doc/favorite-enterprises-block.pt.png delete mode 100644 public/images/doc/feed-reader-block.en.png delete mode 100644 public/images/doc/feed-reader-block.pt.png delete mode 100644 public/images/doc/friends-block.en.png delete mode 100644 public/images/doc/friends-block.pt.png delete mode 100644 public/images/doc/gallery-buttons.en.png delete mode 100644 public/images/doc/gallery-buttons.pt.png delete mode 100644 public/images/doc/groups-list-with-create-community.en.png delete mode 100644 public/images/doc/groups-list-with-create-community.pt.png delete mode 100644 public/images/doc/groups-list-with-manage-community.en.png delete mode 100644 public/images/doc/groups-list-with-manage-community.pt.png delete mode 100644 public/images/doc/groups-list-with-manage-enterprise.en.png delete mode 100644 public/images/doc/groups-list-with-manage-enterprise.pt.png delete mode 100644 public/images/doc/join-community-confirmation.en.png delete mode 100644 public/images/doc/join-community-confirmation.pt.png delete mode 100644 public/images/doc/joining-community-button.en.png delete mode 100644 public/images/doc/joining-community-button.pt.png delete mode 100644 public/images/doc/links-block.en.png delete mode 100644 public/images/doc/links-block.pt.png delete mode 100644 public/images/doc/location-map-block.en.png delete mode 100644 public/images/doc/location-map-block.pt.png delete mode 100644 public/images/doc/manage-friends.en.png delete mode 100644 public/images/doc/manage-friends.pt.png delete mode 100644 public/images/doc/members-block.en.png delete mode 100644 public/images/doc/members-block.pt.png delete mode 100644 public/images/doc/menu-admin.en.png delete mode 100644 public/images/doc/menu-admin.pt.png delete mode 100644 public/images/doc/menu-communities.en.png delete mode 100644 public/images/doc/menu-communities.pt.png delete mode 100644 public/images/doc/menu-control-panel.en.png delete mode 100644 public/images/doc/menu-control-panel.pt.png delete mode 100644 public/images/doc/menu-enterprises.en.png delete mode 100644 public/images/doc/menu-enterprises.pt.png delete mode 100644 public/images/doc/menu-logout.en.png delete mode 100644 public/images/doc/menu-logout.pt.png delete mode 100644 public/images/doc/menu-more-active-communities.en.png delete mode 100644 public/images/doc/menu-more-active-communities.pt.png delete mode 100644 public/images/doc/menu-more-active-people.en.png delete mode 100644 public/images/doc/menu-more-active-people.pt.png delete mode 100644 public/images/doc/menu-more-popular-communities.en.png delete mode 100644 public/images/doc/menu-more-popular-communities.pt.png delete mode 100644 public/images/doc/menu-more-popular-people.en.png delete mode 100644 public/images/doc/menu-more-popular-people.pt.png delete mode 100644 public/images/doc/menu-more-recent-communities.en.png delete mode 100644 public/images/doc/menu-more-recent-communities.pt.png delete mode 100644 public/images/doc/menu-more-recent-people.en.png delete mode 100644 public/images/doc/menu-more-recent-people.pt.png delete mode 100644 public/images/doc/menu-people.en.png delete mode 100644 public/images/doc/menu-people.pt.png delete mode 100644 public/images/doc/menu-products.en.png delete mode 100644 public/images/doc/menu-products.pt.png delete mode 100644 public/images/doc/menu-search.en.png delete mode 100644 public/images/doc/menu-search.pt.png delete mode 100644 public/images/doc/more-active-communities-detail.en.png delete mode 100644 public/images/doc/more-active-communities-detail.pt.png delete mode 100644 public/images/doc/more-active-communities-with-example.en.png delete mode 100644 public/images/doc/more-active-communities-with-example.pt.png delete mode 100644 public/images/doc/more-active-communities.en.png delete mode 100644 public/images/doc/more-active-communities.pt.png delete mode 100644 public/images/doc/more-active-people-detail.en.png delete mode 100644 public/images/doc/more-active-people-detail.pt.png delete mode 100644 public/images/doc/more-active-people-with-example.en.png delete mode 100644 public/images/doc/more-active-people-with-example.pt.png delete mode 100644 public/images/doc/more-active-people.en.png delete mode 100644 public/images/doc/more-active-people.pt.png delete mode 100644 public/images/doc/more-popular-communities-detail.en.png delete mode 100644 public/images/doc/more-popular-communities-detail.pt.png delete mode 100644 public/images/doc/more-popular-communities-with-example.en.png delete mode 100644 public/images/doc/more-popular-communities-with-example.pt.png delete mode 100644 public/images/doc/more-popular-communities.en.png delete mode 100644 public/images/doc/more-popular-communities.pt.png delete mode 100644 public/images/doc/more-popular-people-detail.en.png delete mode 100644 public/images/doc/more-popular-people-detail.pt.png delete mode 100644 public/images/doc/more-popular-people-with-example.en.png delete mode 100644 public/images/doc/more-popular-people-with-example.pt.png delete mode 100644 public/images/doc/more-popular-people.en.png delete mode 100644 public/images/doc/more-popular-people.pt.png delete mode 100644 public/images/doc/more-recent-communities-detail.en.png delete mode 100644 public/images/doc/more-recent-communities-detail.pt.png delete mode 100644 public/images/doc/more-recent-communities-with-example.en.png delete mode 100644 public/images/doc/more-recent-communities-with-example.pt.png delete mode 100644 public/images/doc/more-recent-communities.en.png delete mode 100644 public/images/doc/more-recent-communities.pt.png delete mode 100644 public/images/doc/more-recent-people-detail.en.png delete mode 100644 public/images/doc/more-recent-people-detail.pt.png delete mode 100644 public/images/doc/more-recent-people-with-example.en.png delete mode 100644 public/images/doc/more-recent-people-with-example.pt.png delete mode 100644 public/images/doc/more-recent-people.en.png delete mode 100644 public/images/doc/more-recent-people.pt.png delete mode 100644 public/images/doc/new-folder.en.png delete mode 100644 public/images/doc/new-folder.pt.png delete mode 100644 public/images/doc/open-comment-box-for-logged-in.en.png delete mode 100644 public/images/doc/open-comment-box-for-logged-in.pt.png delete mode 100644 public/images/doc/open-comment-box-for-not-logged-in.en.png delete mode 100644 public/images/doc/open-comment-box-for-not-logged-in.pt.png delete mode 100644 public/images/doc/other-person-view-profile-link.en.png delete mode 100644 public/images/doc/other-person-view-profile-link.pt.png delete mode 100644 public/images/doc/people-search-field.en.png delete mode 100644 public/images/doc/people-search-field.pt.png delete mode 100644 public/images/doc/people-search-results-with-example.en.png delete mode 100644 public/images/doc/people-search-results-with-example.pt.png delete mode 100644 public/images/doc/person-activities-list.en.png delete mode 100644 public/images/doc/person-activities-list.pt.png delete mode 100644 public/images/doc/person-balloon-closed-en.png delete mode 100644 public/images/doc/person-balloon-closed.en.png delete mode 100644 public/images/doc/person-balloon-en.png delete mode 100644 public/images/doc/person-balloon-pt.png delete mode 100644 public/images/doc/person-balloon.en.png delete mode 100644 public/images/doc/person-balloon.pt.png delete mode 100644 public/images/doc/person-delete-profile-confirmation.en.png delete mode 100644 public/images/doc/person-delete-profile-confirmation.pt.png delete mode 100644 public/images/doc/person-edit-profile-categories.en.png delete mode 100644 public/images/doc/person-edit-profile-categories.pt.png delete mode 100644 public/images/doc/person-edit-profile-info-change-picture.en.png delete mode 100644 public/images/doc/person-edit-profile-info-change-picture.pt.png delete mode 100644 public/images/doc/person-edit-profile-info-general-informationen.en.png delete mode 100644 public/images/doc/person-edit-profile-info-general-informationen.pt.png delete mode 100644 public/images/doc/person-edit-profile-privacy-options.en.png delete mode 100644 public/images/doc/person-edit-profile-privacy-options.pt.png delete mode 100644 public/images/doc/person-view-profile-link.en.png delete mode 100644 public/images/doc/person-view-profile-link.pt.png delete mode 100644 public/images/doc/person-wall-scrap-reply-button.en.png delete mode 100644 public/images/doc/person-wall-scrap-reply-form.en.png delete mode 100644 public/images/doc/person-wall-scrap-reply-form.pt.png delete mode 100644 public/images/doc/person-wall-scrap-reply-sent.en.png delete mode 100644 public/images/doc/person-wall-scrap-reply-sent.pt.png delete mode 100644 public/images/doc/person-wall-scrap-sent.en.png delete mode 100644 public/images/doc/person-wall-scrap-sent.pt.png delete mode 100644 public/images/doc/person-wall-writing-scrap.en.png delete mode 100644 public/images/doc/person-wall-writing-scrap.pt.png delete mode 100644 public/images/doc/products-block.en.png delete mode 100644 public/images/doc/products-block.pt.png delete mode 100644 public/images/doc/products-search-field.en.png delete mode 100644 public/images/doc/products-search-field.pt.png delete mode 100644 public/images/doc/products-search-results-with-example.en.png delete mode 100644 public/images/doc/products-search-results-with-example.pt.png delete mode 100644 public/images/doc/profile-image-block.en.png delete mode 100644 public/images/doc/profile-image-block.pt.png delete mode 100644 public/images/doc/profile-info-block.en.png delete mode 100644 public/images/doc/profile-info-block.pt.png delete mode 100644 public/images/doc/profile-with-button-to-add-friends.en.png delete mode 100644 public/images/doc/profile-with-button-to-add-friends.pt.png delete mode 100644 public/images/doc/recent-content-block.en.png delete mode 100644 public/images/doc/recent-content-block.pt.png delete mode 100644 public/images/doc/remove-comment-confirmation.en.png delete mode 100644 public/images/doc/remove-comment-confirmation.pt.png delete mode 100644 public/images/doc/remove-friend-confirmation.en.png delete mode 100644 public/images/doc/remove-friend-confirmation.pt.png delete mode 100644 public/images/doc/remove-friend.en.png delete mode 100644 public/images/doc/remove-friend.pt.png delete mode 100644 public/images/doc/search-more-options-open.en.png delete mode 100644 public/images/doc/search-more-options-open.pt.png delete mode 100644 public/images/doc/search-more-options.en.png delete mode 100644 public/images/doc/search-more-options.pt.png delete mode 100644 public/images/doc/search-results-with-example.en.png delete mode 100644 public/images/doc/search-results-with-example.pt.png delete mode 100644 public/images/doc/search-view-all-results-with-example.en.png delete mode 100644 public/images/doc/search-view-all-results-with-example.pt.png delete mode 100644 public/images/doc/send-message.en.png delete mode 100644 public/images/doc/send-message.pt.png delete mode 100644 public/images/doc/signup-form.en.png delete mode 100644 public/images/doc/signup-form.pt.png delete mode 100644 public/images/doc/slideshow-block.en.png delete mode 100644 public/images/doc/slideshow-block.pt.png delete mode 100644 public/images/doc/system-homepage-top-menu-admin.en.png delete mode 100644 public/images/doc/system-homepage-top-menu-admin.pt.png delete mode 100644 public/images/doc/system-homepage-top-menu.en.png delete mode 100644 public/images/doc/system-homepage-top-menu.pt.png delete mode 100644 public/images/doc/tags-block.en.png delete mode 100644 public/images/doc/tags-block.pt.png delete mode 100644 public/images/doc/tasks-list-approval-request.en.png delete mode 100644 public/images/doc/tasks-list-approval-request.pt.png delete mode 100644 public/images/doc/tasks-list-friendship-request.en.png delete mode 100644 public/images/doc/tasks-list-friendship-request.pt.png delete mode 100644 public/images/doc/tasks-list-membership-request.en.png delete mode 100644 public/images/doc/tasks-list-membership-request.pt.png delete mode 100644 public/images/doc/top-menu.en.png delete mode 100644 public/images/doc/top-menu.pt.png delete mode 100644 public/images/doc/uploading-files-to-gallery.en.png delete mode 100644 public/images/doc/uploading-files-to-gallery.pt.png delete mode 100644 public/images/doc/user-edit-sideboxes.en.png delete mode 100644 public/images/doc/user-edit-sideboxes.pt.png delete mode 100644 public/images/doc/user-friends-with-invitation-button.en.png delete mode 100644 public/images/doc/user-friends-with-invitation-button.pt.png delete mode 100644 public/images/doc/user-import-invitation-step-1.en.png delete mode 100644 public/images/doc/user-import-invitation-step-1.pt.png delete mode 100644 public/images/doc/user-import-invitation-step-2.en.png delete mode 100644 public/images/doc/user-import-invitation-step-2.pt.png delete mode 100644 public/images/doc/user-manually-invitation-step-1.en.png delete mode 100644 public/images/doc/user-manually-invitation-step-1.pt.png delete mode 100644 public/images/doc/user-manually-invitation-step-2.en.png delete mode 100644 public/images/doc/user-manually-invitation-step-2.pt.png delete mode 100644 public/images/doc/user-network-block.en.png delete mode 100644 public/images/doc/user-network-block.pt.png delete mode 100644 public/images/doc/user-sideboxes-add-block.en.png delete mode 100644 public/images/doc/user-sideboxes-add-block.pt.png delete mode 100644 public/images/doc/wysiwyg-buttons.en.png delete mode 100644 public/images/doc/wysiwyg-buttons.pt.png delete mode 100644 public/images/dotleaders.png delete mode 100644 public/images/down-arrow.png delete mode 100644 public/images/ecosol-tree-sprite.png delete mode 100644 public/images/fancybox/blank.gif delete mode 100644 public/images/fancybox/fancy_close.png delete mode 100644 public/images/fancybox/fancy_loading.png delete mode 100644 public/images/fancybox/fancy_nav_left.png delete mode 100644 public/images/fancybox/fancy_nav_right.png delete mode 100644 public/images/fancybox/fancy_shadow_e.png delete mode 100644 public/images/fancybox/fancy_shadow_n.png delete mode 100644 public/images/fancybox/fancy_shadow_ne.png delete mode 100644 public/images/fancybox/fancy_shadow_nw.png delete mode 100644 public/images/fancybox/fancy_shadow_s.png delete mode 100644 public/images/fancybox/fancy_shadow_se.png delete mode 100644 public/images/fancybox/fancy_shadow_sw.png delete mode 100644 public/images/fancybox/fancy_shadow_w.png delete mode 100644 public/images/fancybox/fancy_title_left.png delete mode 100644 public/images/fancybox/fancy_title_main.png delete mode 100644 public/images/fancybox/fancy_title_over.png delete mode 100644 public/images/fancybox/fancy_title_right.png delete mode 100644 public/images/fancybox/fancybox-x.png delete mode 100644 public/images/fancybox/fancybox-y.png delete mode 100644 public/images/fancybox/fancybox.png delete mode 100644 public/images/fff.gif delete mode 100644 public/images/field-bg.png delete mode 100644 public/images/forum-activity-bg-onecol.png delete mode 100644 public/images/forum-activity-bg.png delete mode 100644 public/images/forum-activity-icon.png delete mode 100644 public/images/gallery-image-activity-border-big-onecol.png delete mode 100644 public/images/gallery-image-activity-border-big.png delete mode 100644 public/images/gallery-image-activity-border-onecol.png delete mode 100644 public/images/gallery-image-activity-border.png delete mode 100644 public/images/grip-clue.png delete mode 100644 public/images/hachure.png delete mode 100644 public/images/help-avatar.gif delete mode 100644 public/images/icon_filter_exclude.png delete mode 100644 public/images/icon_more_options.png delete mode 120000 public/images/icons-app/alert.png delete mode 100644 public/images/icons-app/article-minor.png delete mode 100644 public/images/icons-app/article-portrait.png delete mode 100644 public/images/icons-app/article-thumb.png delete mode 120000 public/images/icons-app/chat-22x22.png delete mode 100644 public/images/icons-app/community-big.png delete mode 100644 public/images/icons-app/community-icon.png delete mode 100644 public/images/icons-app/community-minor.png delete mode 100644 public/images/icons-app/community-portrait.png delete mode 100644 public/images/icons-app/community-thumb.png delete mode 100644 public/images/icons-app/design-editor.png delete mode 100644 public/images/icons-app/emblem-important.png delete mode 100644 public/images/icons-app/enterprise-big.png delete mode 100644 public/images/icons-app/enterprise-icon.png delete mode 100644 public/images/icons-app/enterprise-minor.png delete mode 100644 public/images/icons-app/enterprise-portrait.png delete mode 120000 public/images/icons-app/enterprise-registration.png delete mode 100644 public/images/icons-app/enterprise-thumb.png delete mode 100644 public/images/icons-app/gnome-irc-22x22.png delete mode 100644 public/images/icons-app/gnome-irc.png delete mode 100644 public/images/icons-app/gnome-settings-theme.png delete mode 100644 public/images/icons-app/gtk-folder.png delete mode 100644 public/images/icons-app/ico-female.png delete mode 100644 public/images/icons-app/ico-male.png delete mode 100644 public/images/icons-app/ico-sex-undef.png delete mode 100644 public/images/icons-app/image-loading-big.png delete mode 100644 public/images/icons-app/image-loading-display.png delete mode 100644 public/images/icons-app/image-loading-icon.png delete mode 100644 public/images/icons-app/image-loading-minor.png delete mode 100644 public/images/icons-app/image-loading-portrait.png delete mode 100644 public/images/icons-app/image-loading-slideshow.png delete mode 100644 public/images/icons-app/image-loading-small.png delete mode 100644 public/images/icons-app/image-loading-thumb.png delete mode 100644 public/images/icons-app/person-big.png delete mode 100644 public/images/icons-app/person-icon.png delete mode 100644 public/images/icons-app/person-minor.png delete mode 100644 public/images/icons-app/person-portrait.png delete mode 100644 public/images/icons-app/person-thumb.png delete mode 100644 public/images/icons-app/product-default-pic-big.png delete mode 100644 public/images/icons-app/product-default-pic-minor.png delete mode 100644 public/images/icons-app/product-default-pic-portrait.png delete mode 100644 public/images/icons-app/product-default-pic-thumb.png delete mode 100644 public/images/icons-app/user_icon.png delete mode 100644 public/images/icons-app/user_icon.svg delete mode 100644 public/images/icons-app/users.svg delete mode 100644 public/images/icons-bar/accessibility.png delete mode 100644 public/images/icons-bar/admin.png delete mode 100644 public/images/icons-bar/go-content.png delete mode 100644 public/images/icons-bar/go-home.png delete mode 100644 public/images/icons-bar/help.png delete mode 100644 public/images/icons-bar/login.png delete mode 100644 public/images/icons-bar/logout.png delete mode 100644 public/images/icons-bar/logout2.png delete mode 100644 public/images/icons-cat/Agropecuária_extrativismo_e_pesca.png delete mode 100644 public/images/icons-cat/Alimentos_e_bebidas.png delete mode 100644 public/images/icons-cat/Artefatos_artesanais.png delete mode 100644 public/images/icons-cat/Ação_comunitária.png delete mode 100644 public/images/icons-cat/Coleta_e_reciclagem_de_materiais.png delete mode 100644 public/images/icons-cat/Crédito_e_finanças.png delete mode 100644 public/images/icons-cat/Fitoterápicos_e_produtos_de_limpeza_e_higiene.png delete mode 100644 public/images/icons-cat/Prestação_de_serviços_diversos.png delete mode 100644 public/images/icons-cat/Produção_industrial.png delete mode 100644 public/images/icons-cat/Produção_têxtil_e_confecção.png delete mode 100644 public/images/icons-cat/Software.png delete mode 100644 public/images/icons-cat/Software_Livre.png delete mode 100644 public/images/icons-cat/undefined.png delete mode 100644 public/images/icons-map/enterprise.png delete mode 100644 public/images/icons-map/enterprise_shadow.png delete mode 100644 public/images/icons-mime/README delete mode 100644 public/images/icons-mime/empty.png delete mode 120000 public/images/icons-mime/event.png delete mode 120000 public/images/icons-mime/folder.png delete mode 100644 public/images/icons-mime/gnome-folder.png delete mode 100644 public/images/icons-mime/gnome-mime-empty.png delete mode 100644 public/images/icons-mime/gnome-mime-text-html.png delete mode 100644 public/images/icons-mime/ico-feed-on.png delete mode 100644 public/images/icons-mime/rss-feed-16.png delete mode 120000 public/images/icons-mime/rss-feed.png delete mode 120000 public/images/icons-mime/text-html.png delete mode 120000 public/images/icons-mime/unknown.png delete mode 100644 public/images/icons-task/closed-arrow-hover.png delete mode 100644 public/images/icons-task/closed-arrow.png delete mode 100644 public/images/icons-task/opened-arrow-hover.png delete mode 100644 public/images/icons-task/opened-arrow.png delete mode 100644 public/images/input-bg.gif delete mode 100644 public/images/loading-dark.gif delete mode 100644 public/images/loading-small-dark.gif delete mode 100644 public/images/loading-small.gif delete mode 100644 public/images/loading.gif delete mode 100644 public/images/login_checking.png delete mode 100644 public/images/logo-anhetegua-200x50.png delete mode 100644 public/images/logo-anhetegua.png delete mode 100644 public/images/noosfero-network.png delete mode 100755 public/images/noosfero-network.svg delete mode 100644 public/images/orange-balloon.png delete mode 100644 public/images/orange-bg.png delete mode 100644 public/images/passwords_match.png delete mode 100644 public/images/passwords_nomatch.png delete mode 100644 public/images/rails.png delete mode 100644 public/images/scrap-bg-gray.png delete mode 100644 public/images/scrap-bg.png delete mode 100644 public/images/solidarity-economy.png delete mode 100644 public/images/top-arrow.png delete mode 100644 public/images/white-pixel.gif delete mode 100644 public/images/zoom-dark.png delete mode 100644 public/images/zoom.png delete mode 100644 public/javascripts/add-and-join.js delete mode 100644 public/javascripts/application.js delete mode 100644 public/javascripts/article.js delete mode 100644 public/javascripts/ba-linkify.js delete mode 100644 public/javascripts/catalog.js delete mode 100644 public/javascripts/chat.js delete mode 100644 public/javascripts/codepress/codepress.css delete mode 100644 public/javascripts/codepress/codepress.html delete mode 100644 public/javascripts/codepress/codepress.js delete mode 100644 public/javascripts/codepress/engines/gecko.js delete mode 100644 public/javascripts/codepress/engines/khtml.js delete mode 100644 public/javascripts/codepress/engines/msie.js delete mode 100644 public/javascripts/codepress/engines/older.js delete mode 100644 public/javascripts/codepress/engines/opera.js delete mode 100644 public/javascripts/codepress/images/line-numbers.png delete mode 100644 public/javascripts/codepress/index.html delete mode 100644 public/javascripts/codepress/languages/asp.css delete mode 100644 public/javascripts/codepress/languages/asp.js delete mode 100644 public/javascripts/codepress/languages/autoit.css delete mode 100644 public/javascripts/codepress/languages/autoit.js delete mode 100644 public/javascripts/codepress/languages/csharp.css delete mode 100644 public/javascripts/codepress/languages/csharp.js delete mode 100644 public/javascripts/codepress/languages/css.css delete mode 100644 public/javascripts/codepress/languages/css.js delete mode 100644 public/javascripts/codepress/languages/generic.css delete mode 100644 public/javascripts/codepress/languages/generic.js delete mode 100644 public/javascripts/codepress/languages/html.css delete mode 100644 public/javascripts/codepress/languages/html.js delete mode 100644 public/javascripts/codepress/languages/java.css delete mode 100644 public/javascripts/codepress/languages/java.js delete mode 100644 public/javascripts/codepress/languages/javascript.css delete mode 100644 public/javascripts/codepress/languages/javascript.js delete mode 100644 public/javascripts/codepress/languages/perl.css delete mode 100644 public/javascripts/codepress/languages/perl.js delete mode 100644 public/javascripts/codepress/languages/php.css delete mode 100644 public/javascripts/codepress/languages/php.js delete mode 100644 public/javascripts/codepress/languages/ruby.css delete mode 100644 public/javascripts/codepress/languages/ruby.js delete mode 100644 public/javascripts/codepress/languages/sql.css delete mode 100644 public/javascripts/codepress/languages/sql.js delete mode 100644 public/javascripts/codepress/languages/text.css delete mode 100644 public/javascripts/codepress/languages/text.js delete mode 100644 public/javascripts/codepress/languages/vbscript.css delete mode 100644 public/javascripts/codepress/languages/vbscript.js delete mode 100644 public/javascripts/codepress/languages/xsl.css delete mode 100644 public/javascripts/codepress/languages/xsl.js delete mode 100644 public/javascripts/codepress/license.txt delete mode 100644 public/javascripts/colorbox.js delete mode 100644 public/javascripts/colorpicker-noosfero.js delete mode 100644 public/javascripts/colorpicker.js delete mode 100644 public/javascripts/controls.js delete mode 100644 public/javascripts/dragdrop.js delete mode 100644 public/javascripts/effects.js delete mode 100644 public/javascripts/errors.js delete mode 100644 public/javascripts/google_maps.js delete mode 100644 public/javascripts/jquery-latest.js delete mode 100644 public/javascripts/jquery-ui-1.8.2.custom.min.js delete mode 100644 public/javascripts/jquery-validation/README.md delete mode 100644 public/javascripts/jquery-validation/changelog.txt delete mode 100644 public/javascripts/jquery-validation/jquery.validate.js delete mode 100644 public/javascripts/jquery-validation/jquery.validate.min.js delete mode 100644 public/javascripts/jquery-validation/lib/jquery-1.4.2.js delete mode 100644 public/javascripts/jquery-validation/lib/jquery-1.4.4.js delete mode 100644 public/javascripts/jquery-validation/lib/jquery-1.5.1.js delete mode 100644 public/javascripts/jquery-validation/lib/jquery-1.5.js delete mode 100644 public/javascripts/jquery-validation/lib/jquery.form.js delete mode 100644 public/javascripts/jquery-validation/lib/jquery.js delete mode 100644 public/javascripts/jquery-validation/lib/jquery.metadata.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_ar.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_bg.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_ca.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_cn.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_cs.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_da.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_de.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_el.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_es.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_fa.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_fi.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_fr.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_ge.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_he.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_hu.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_it.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_ja.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_kk.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_lt.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_lv.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_nl.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_no.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_pl.js delete mode 120000 public/javascripts/jquery-validation/localization/messages_pt.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_ptbr.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_ptpt.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_ro.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_ru.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_se.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_si.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_sk.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_sr.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_tr.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_tw.js delete mode 100644 public/javascripts/jquery-validation/localization/messages_ua.js delete mode 100644 public/javascripts/jquery-validation/localization/methods_de.js delete mode 100644 public/javascripts/jquery-validation/localization/methods_nl.js delete mode 100644 public/javascripts/jquery-validation/localization/methods_pt.js delete mode 100644 public/javascripts/jquery-validation/test/events.html delete mode 100644 public/javascripts/jquery-validation/test/firebug/errorIcon.png delete mode 100644 public/javascripts/jquery-validation/test/firebug/firebug.css delete mode 100644 public/javascripts/jquery-validation/test/firebug/firebug.html delete mode 100644 public/javascripts/jquery-validation/test/firebug/firebug.js delete mode 100644 public/javascripts/jquery-validation/test/firebug/firebugx.js delete mode 100644 public/javascripts/jquery-validation/test/firebug/infoIcon.png delete mode 100644 public/javascripts/jquery-validation/test/firebug/warningIcon.png delete mode 100644 public/javascripts/jquery-validation/test/index.html delete mode 100644 public/javascripts/jquery-validation/test/jquery.js delete mode 100644 public/javascripts/jquery-validation/test/large.html delete mode 100644 public/javascripts/jquery-validation/test/messages.js delete mode 100644 public/javascripts/jquery-validation/test/methods.js delete mode 100644 public/javascripts/jquery-validation/test/qunit/qunit.css delete mode 100644 public/javascripts/jquery-validation/test/qunit/qunit.js delete mode 100644 public/javascripts/jquery-validation/test/rules.js delete mode 100644 public/javascripts/jquery-validation/test/selects/index.html delete mode 100644 public/javascripts/jquery-validation/test/tabs.html delete mode 100644 public/javascripts/jquery-validation/test/test.js delete mode 100644 public/javascripts/jquery-validation/test/users.php delete mode 100644 public/javascripts/jquery-validation/test/users2.php delete mode 100644 public/javascripts/jquery-validation/todo delete mode 100644 public/javascripts/jquery-validation/version.txt delete mode 100644 public/javascripts/jquery.ba-bbq.min.js delete mode 100644 public/javascripts/jquery.ba-hashchange.js delete mode 100644 public/javascripts/jquery.cookie.js delete mode 100644 public/javascripts/jquery.cycle.all.min.js delete mode 100644 public/javascripts/jquery.emoticon.js delete mode 100644 public/javascripts/jquery.fancybox-1.3.4.pack.js delete mode 100644 public/javascripts/jquery.form.js delete mode 100644 public/javascripts/jquery.noconflict.js delete mode 100644 public/javascripts/jquery.scrollTo.js delete mode 100644 public/javascripts/jquery.scrollabletab.js delete mode 100644 public/javascripts/jquery.sound.js delete mode 100644 public/javascripts/jquery.tokeninput.js delete mode 100644 public/javascripts/lightbox.js delete mode 100644 public/javascripts/lowpro.js delete mode 100644 public/javascripts/manage-categories.js delete mode 100644 public/javascripts/manage-products.js delete mode 100644 public/javascripts/pikachoose.js delete mode 100644 public/javascripts/prototype.js delete mode 100644 public/javascripts/reflection.js delete mode 100644 public/javascripts/report-abuse.js delete mode 100644 public/javascripts/sliderjs.js delete mode 100644 public/javascripts/strophejs-1.0.1/LICENSE.txt delete mode 100644 public/javascripts/strophejs-1.0.1/README.txt delete mode 100644 public/javascripts/strophejs-1.0.1/contrib/discojs/README.txt delete mode 100644 public/javascripts/strophejs-1.0.1/contrib/discojs/css/disco.css delete mode 100644 public/javascripts/strophejs-1.0.1/contrib/discojs/index.html delete mode 100644 public/javascripts/strophejs-1.0.1/contrib/discojs/punjab.tac delete mode 100644 public/javascripts/strophejs-1.0.1/contrib/discojs/scripts/basic.js delete mode 100644 public/javascripts/strophejs-1.0.1/contrib/discojs/scripts/disco.js delete mode 100644 public/javascripts/strophejs-1.0.1/doc/files/core-js.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/index.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/javascript/main.js delete mode 100644 public/javascripts/strophejs-1.0.1/doc/javascript/searchdata.js delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ClassesS.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsA.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsB.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsC.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsD.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsE.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsF.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsH.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsI.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsL.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsM.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsP.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsR.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsS.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsV.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsW.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/ConstantsX.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FilesS.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsA.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsB.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsC.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsD.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsE.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsF.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsG.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsI.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsL.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsP.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsR.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsS.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsSymbols.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsT.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsU.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsW.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/FunctionsX.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralA.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralB.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralC.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralD.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralE.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralF.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralG.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralH.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralI.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralL.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralM.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralP.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralR.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralS.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralSymbols.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralT.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralU.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralV.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralW.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/GeneralX.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/search/NoResults.html delete mode 100644 public/javascripts/strophejs-1.0.1/doc/styles/main.css delete mode 100644 public/javascripts/strophejs-1.0.1/examples/attach/README delete mode 100644 public/javascripts/strophejs-1.0.1/examples/attach/__init__.py delete mode 100644 public/javascripts/strophejs-1.0.1/examples/attach/attacher/__init__.py delete mode 100644 public/javascripts/strophejs-1.0.1/examples/attach/attacher/views.py delete mode 100644 public/javascripts/strophejs-1.0.1/examples/attach/boshclient.py delete mode 100755 public/javascripts/strophejs-1.0.1/examples/attach/manage.py delete mode 100644 public/javascripts/strophejs-1.0.1/examples/attach/settings.py delete mode 100644 public/javascripts/strophejs-1.0.1/examples/attach/templates/attacher/index.html delete mode 100644 public/javascripts/strophejs-1.0.1/examples/attach/urls.py delete mode 100644 public/javascripts/strophejs-1.0.1/examples/basic.html delete mode 100644 public/javascripts/strophejs-1.0.1/examples/basic.js delete mode 100644 public/javascripts/strophejs-1.0.1/examples/crossdomain.html delete mode 100644 public/javascripts/strophejs-1.0.1/examples/crossdomain.js delete mode 100644 public/javascripts/strophejs-1.0.1/examples/crossdomain.xml delete mode 100644 public/javascripts/strophejs-1.0.1/examples/dojo-ping.html delete mode 100644 public/javascripts/strophejs-1.0.1/examples/dojo-ping.js delete mode 100644 public/javascripts/strophejs-1.0.1/examples/echobot.html delete mode 100644 public/javascripts/strophejs-1.0.1/examples/echobot.js delete mode 100644 public/javascripts/strophejs-1.0.1/examples/prebind.html delete mode 100644 public/javascripts/strophejs-1.0.1/examples/prebind.js delete mode 100644 public/javascripts/strophejs-1.0.1/examples/prototype-ping.html delete mode 100644 public/javascripts/strophejs-1.0.1/examples/prototype-ping.js delete mode 100644 public/javascripts/strophejs-1.0.1/examples/yui-ping.html delete mode 100644 public/javascripts/strophejs-1.0.1/examples/yui-ping.js delete mode 100644 public/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.js delete mode 100644 public/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.min.js delete mode 100644 public/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.js delete mode 100644 public/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.min.js delete mode 100644 public/javascripts/strophejs-1.0.1/strophe.js delete mode 100644 public/javascripts/strophejs-1.0.1/strophe.min.js delete mode 100644 public/javascripts/strophejs-1.0.1/tests/jstests.js delete mode 100644 public/javascripts/strophejs-1.0.1/tests/jsyuitests.js delete mode 100644 public/javascripts/strophejs-1.0.1/tests/pubsub.html delete mode 100644 public/javascripts/strophejs-1.0.1/tests/pubsub.js delete mode 100644 public/javascripts/strophejs-1.0.1/tests/strophe.html delete mode 100644 public/javascripts/strophejs-1.0.1/tests/testrunner.js delete mode 100644 public/javascripts/strophejs-1.0.1/tests/tests.js delete mode 100644 public/javascripts/strophejs-1.0.1/tests/testsuite.css delete mode 100644 public/javascripts/strophejs-1.0.1/tests/yuitests.html delete mode 100644 public/javascripts/strophejs-1.0.1/tests/yuitests.js delete mode 100644 public/javascripts/tasks.js delete mode 100644 public/javascripts/thickbox.js delete mode 100644 public/javascripts/tinymce/changelog.txt delete mode 100644 public/javascripts/tinymce/examples/accessibility.html delete mode 100644 public/javascripts/tinymce/examples/css/content.css delete mode 100644 public/javascripts/tinymce/examples/css/word.css delete mode 100644 public/javascripts/tinymce/examples/custom_formats.html delete mode 100644 public/javascripts/tinymce/examples/full.html delete mode 100644 public/javascripts/tinymce/examples/index.html delete mode 100644 public/javascripts/tinymce/examples/lists/image_list.js delete mode 100644 public/javascripts/tinymce/examples/lists/link_list.js delete mode 100644 public/javascripts/tinymce/examples/lists/media_list.js delete mode 100644 public/javascripts/tinymce/examples/lists/template_list.js delete mode 100644 public/javascripts/tinymce/examples/media/logo.jpg delete mode 100644 public/javascripts/tinymce/examples/media/logo_over.jpg delete mode 100644 public/javascripts/tinymce/examples/media/sample.avi delete mode 100644 public/javascripts/tinymce/examples/media/sample.dcr delete mode 100644 public/javascripts/tinymce/examples/media/sample.flv delete mode 100644 public/javascripts/tinymce/examples/media/sample.mov delete mode 100644 public/javascripts/tinymce/examples/media/sample.ram delete mode 100644 public/javascripts/tinymce/examples/media/sample.rm delete mode 100644 public/javascripts/tinymce/examples/media/sample.swf delete mode 100644 public/javascripts/tinymce/examples/menu.html delete mode 100644 public/javascripts/tinymce/examples/simple.html delete mode 100644 public/javascripts/tinymce/examples/skins.html delete mode 100644 public/javascripts/tinymce/examples/templates/layout1.htm delete mode 100644 public/javascripts/tinymce/examples/templates/snippet1.htm delete mode 100644 public/javascripts/tinymce/examples/translate.html delete mode 100644 public/javascripts/tinymce/examples/word.html delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/langs/de.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/langs/en.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/langs/eo.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/langs/es.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/langs/fr.js delete mode 120000 public/javascripts/tinymce/jscripts/tiny_mce/langs/hy.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/langs/it.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/langs/ja.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/langs/nl.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/langs/pt.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/langs/ru.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/license.txt delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/content.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/media.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flash.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flv_player.swf delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/quicktime.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/realmedia.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/shockwave.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/windowsmedia.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/js/media.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/media.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/example.html delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/preview.html delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/css/props.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/js/props.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/style/props.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/cell.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/row.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/table.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/row.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/table.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/row.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/table/table.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/blank.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/css/template.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/js/template.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/template/template.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/fr_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/about.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/image.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/realmedia.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/trans.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr_dlg.js delete mode 120000 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/hy.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru_dlg.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/link.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/de.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/eo.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/es.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/fr.js delete mode 120000 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/hy.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/it.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ja.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/nl.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/pt.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ru.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/tiny_mce.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/tiny_mce_popup.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/tiny_mce_src.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/utils/editable_selects.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/utils/form_utils.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/utils/mctabs.js delete mode 100644 public/javascripts/tinymce/jscripts/tiny_mce/utils/validate.js delete mode 100644 public/stylesheets/application.css delete mode 100644 public/stylesheets/calendar_date_select/blue.css delete mode 100644 public/stylesheets/calendar_date_select/default.css delete mode 100644 public/stylesheets/calendar_date_select/plain.css delete mode 100644 public/stylesheets/calendar_date_select/red.css delete mode 100644 public/stylesheets/calendar_date_select/silver.css delete mode 100644 public/stylesheets/colorbox.css delete mode 100644 public/stylesheets/colorpicker.css delete mode 100644 public/stylesheets/fancybox.css delete mode 100755 public/stylesheets/iepngfix/blank.gif delete mode 100644 public/stylesheets/iepngfix/iepngfix.css delete mode 100755 public/stylesheets/iepngfix/iepngfix.htc delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-anim_basic_16x16.gif delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-bg_flat_55_fbec88_40x100.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-bg_glass_85_dfeffc_1x400.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-icons_217bc0_256x240.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-icons_2e83ff_256x240.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-icons_469bdd_256x240.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-icons_6da8d5_256x240.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-icons_cd0a0a_256x240.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-icons_d8e7f3_256x240.png delete mode 100644 public/stylesheets/jquery.ui/redmond/images/ui-icons_f9bd01_256x240.png delete mode 100644 public/stylesheets/jquery.ui/redmond/jquery-ui-1.8.2.custom.css delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-anim_basic_16x16.gif delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-icons_222222_256x240.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-icons_2e83ff_256x240.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-icons_454545_256x240.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-icons_888888_256x240.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/images/ui-icons_cd0a0a_256x240.png delete mode 100644 public/stylesheets/jquery.ui/smoothness/jquery-ui-1.8.2.custom.css delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-anim_basic_16x16.gif delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_55_fbf9ee_1x400.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_dadada_1x400.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_222222_256x240.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_2e83ff_256x240.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_454545_256x240.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_888888_256x240.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_cd0a0a_256x240.png delete mode 100644 public/stylesheets/jquery.ui/smoothness_mod/jquery-ui-1.8.2.custom.css delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-anim_basic_16x16.gif delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-icons_808080_256x240.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-icons_847e71_256x240.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-icons_8dc262_256x240.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-icons_cd0a0a_256x240.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-icons_eeeeee_256x240.png delete mode 100644 public/stylesheets/jquery.ui/south-street/images/ui-icons_ffffff_256x240.png delete mode 100644 public/stylesheets/jquery.ui/south-street/jquery-ui-1.8.2.custom.css delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-anim_basic_16x16.gif delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_diagonals-medium_20_d34d17_40x40.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_30_cccccc_40x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_50_5c5c5c_40x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_30_888a85_500x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_45_918e88_500x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_60_fece2f_500x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_70_ffdd57_500x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_90_fff9e5_500x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_0_feeebd_1x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_70_feeebd_1x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_30_feeebd_1x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_70_feeebd_1x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_3d3d3d_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_bd7b00_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_d19405_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_eb990f_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ed9f26_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_fadc7a_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ffe180_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny-mod/jquery-ui-1.8.2.custom.css delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-anim_basic_16x16.gif delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-bg_flat_30_cccccc_40x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-icons_3d3d3d_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-icons_bd7b00_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-icons_d19405_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-icons_eb990f_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-icons_ed9f26_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-icons_fadc7a_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny/images/ui-icons_ffe180_256x240.png delete mode 100644 public/stylesheets/jquery.ui/sunny/jquery-ui-1.8.2.custom.css delete mode 100644 public/stylesheets/lightbox.css delete mode 100644 public/stylesheets/search.css delete mode 100644 public/stylesheets/slideshow.css delete mode 100644 public/stylesheets/tasks.css delete mode 100644 public/stylesheets/thickbox.css delete mode 100644 public/stylesheets/tinymce.css delete mode 100644 public/stylesheets/token-input-facebook.css delete mode 100644 public/stylesheets/token-input-facet.css delete mode 100644 public/stylesheets/token-input-mac.css delete mode 100644 public/stylesheets/token-input.css diff --git a/app/assets/images/balloon-footer.png b/app/assets/images/balloon-footer.png new file mode 100644 index 0000000..3c1a606 Binary files /dev/null and b/app/assets/images/balloon-footer.png differ diff --git a/app/assets/images/balloon-header.png b/app/assets/images/balloon-header.png new file mode 100644 index 0000000..054e5d3 Binary files /dev/null and b/app/assets/images/balloon-header.png differ diff --git a/app/assets/images/balloon-middle.png b/app/assets/images/balloon-middle.png new file mode 100644 index 0000000..83cee0e Binary files /dev/null and b/app/assets/images/balloon-middle.png differ diff --git a/app/assets/images/beta.gif b/app/assets/images/beta.gif new file mode 100644 index 0000000..8a05ac4 Binary files /dev/null and b/app/assets/images/beta.gif differ diff --git a/app/assets/images/black-alpha-pixel-5.png b/app/assets/images/black-alpha-pixel-5.png new file mode 100644 index 0000000..a728b36 Binary files /dev/null and b/app/assets/images/black-alpha-pixel-5.png differ diff --git a/app/assets/images/black-alpha-pixel.png b/app/assets/images/black-alpha-pixel.png new file mode 100644 index 0000000..aca41eb Binary files /dev/null and b/app/assets/images/black-alpha-pixel.png differ diff --git a/app/assets/images/blocks/1.png b/app/assets/images/blocks/1.png new file mode 100644 index 0000000..7a3afb8 Binary files /dev/null and b/app/assets/images/blocks/1.png differ diff --git a/app/assets/images/blocks/1.svg b/app/assets/images/blocks/1.svg new file mode 100644 index 0000000..6f78f11 --- /dev/null +++ b/app/assets/images/blocks/1.svg @@ -0,0 +1,77 @@ + + + + + + + + + image/svg+xml + + + + + + + 1 + + diff --git a/app/assets/images/blocks/2.png b/app/assets/images/blocks/2.png new file mode 100644 index 0000000..3675e5e Binary files /dev/null and b/app/assets/images/blocks/2.png differ diff --git a/app/assets/images/blocks/2.svg b/app/assets/images/blocks/2.svg new file mode 100644 index 0000000..f79707e --- /dev/null +++ b/app/assets/images/blocks/2.svg @@ -0,0 +1,77 @@ + + + + + + + + + image/svg+xml + + + + + + + 2 + + diff --git a/app/assets/images/blocks/3.png b/app/assets/images/blocks/3.png new file mode 100644 index 0000000..bb2f7c5 Binary files /dev/null and b/app/assets/images/blocks/3.png differ diff --git a/app/assets/images/blocks/3.svg b/app/assets/images/blocks/3.svg new file mode 100644 index 0000000..7731380 --- /dev/null +++ b/app/assets/images/blocks/3.svg @@ -0,0 +1,77 @@ + + + + + + + + + image/svg+xml + + + + + + + 3 + + diff --git a/app/assets/images/bolota.gif b/app/assets/images/bolota.gif new file mode 100644 index 0000000..2001476 Binary files /dev/null and b/app/assets/images/bolota.gif differ diff --git a/app/assets/images/borda-esq-aba-azul.gif b/app/assets/images/borda-esq-aba-azul.gif new file mode 100644 index 0000000..0c356ae Binary files /dev/null and b/app/assets/images/borda-esq-aba-azul.gif differ diff --git a/app/assets/images/bt-bookmark.gif b/app/assets/images/bt-bookmark.gif new file mode 100644 index 0000000..f7e3ce8 Binary files /dev/null and b/app/assets/images/bt-bookmark.gif differ diff --git a/app/assets/images/calendar_date_select/calendar.gif b/app/assets/images/calendar_date_select/calendar.gif new file mode 100644 index 0000000..6b7b7ca Binary files /dev/null and b/app/assets/images/calendar_date_select/calendar.gif differ diff --git a/app/assets/images/calendar_date_select/calendar.png b/app/assets/images/calendar_date_select/calendar.png new file mode 100644 index 0000000..371f293 Binary files /dev/null and b/app/assets/images/calendar_date_select/calendar.png differ diff --git a/app/assets/images/catalog-expanders.png b/app/assets/images/catalog-expanders.png new file mode 100644 index 0000000..395e0b2 Binary files /dev/null and b/app/assets/images/catalog-expanders.png differ diff --git a/app/assets/images/ccc.gif b/app/assets/images/ccc.gif new file mode 100644 index 0000000..6066bef Binary files /dev/null and b/app/assets/images/ccc.gif differ diff --git a/app/assets/images/colorbox/border.png b/app/assets/images/colorbox/border.png new file mode 100644 index 0000000..f463a10 Binary files /dev/null and b/app/assets/images/colorbox/border.png differ diff --git a/app/assets/images/colorbox/controls.png b/app/assets/images/colorbox/controls.png new file mode 100644 index 0000000..9257176 Binary files /dev/null and b/app/assets/images/colorbox/controls.png differ diff --git a/app/assets/images/colorbox/ie6/borderBottomCenter.png b/app/assets/images/colorbox/ie6/borderBottomCenter.png new file mode 100644 index 0000000..0d4475e Binary files /dev/null and b/app/assets/images/colorbox/ie6/borderBottomCenter.png differ diff --git a/app/assets/images/colorbox/ie6/borderBottomLeft.png b/app/assets/images/colorbox/ie6/borderBottomLeft.png new file mode 100644 index 0000000..2775eba Binary files /dev/null and b/app/assets/images/colorbox/ie6/borderBottomLeft.png differ diff --git a/app/assets/images/colorbox/ie6/borderBottomRight.png b/app/assets/images/colorbox/ie6/borderBottomRight.png new file mode 100644 index 0000000..f7f5137 Binary files /dev/null and b/app/assets/images/colorbox/ie6/borderBottomRight.png differ diff --git a/app/assets/images/colorbox/ie6/borderMiddleLeft.png b/app/assets/images/colorbox/ie6/borderMiddleLeft.png new file mode 100644 index 0000000..a2d63d1 Binary files /dev/null and b/app/assets/images/colorbox/ie6/borderMiddleLeft.png differ diff --git a/app/assets/images/colorbox/ie6/borderMiddleRight.png b/app/assets/images/colorbox/ie6/borderMiddleRight.png new file mode 100644 index 0000000..fd7c3e8 Binary files /dev/null and b/app/assets/images/colorbox/ie6/borderMiddleRight.png differ diff --git a/app/assets/images/colorbox/ie6/borderTopCenter.png b/app/assets/images/colorbox/ie6/borderTopCenter.png new file mode 100644 index 0000000..2937a9c Binary files /dev/null and b/app/assets/images/colorbox/ie6/borderTopCenter.png differ diff --git a/app/assets/images/colorbox/ie6/borderTopLeft.png b/app/assets/images/colorbox/ie6/borderTopLeft.png new file mode 100644 index 0000000..f9d458b Binary files /dev/null and b/app/assets/images/colorbox/ie6/borderTopLeft.png differ diff --git a/app/assets/images/colorbox/ie6/borderTopRight.png b/app/assets/images/colorbox/ie6/borderTopRight.png new file mode 100644 index 0000000..74b8583 Binary files /dev/null and b/app/assets/images/colorbox/ie6/borderTopRight.png differ diff --git a/app/assets/images/colorbox/loading.gif b/app/assets/images/colorbox/loading.gif new file mode 100644 index 0000000..b4695d8 Binary files /dev/null and b/app/assets/images/colorbox/loading.gif differ diff --git a/app/assets/images/colorbox/loading_background.png b/app/assets/images/colorbox/loading_background.png new file mode 100644 index 0000000..6ae83e6 Binary files /dev/null and b/app/assets/images/colorbox/loading_background.png differ diff --git a/app/assets/images/colorbox/overlay.png b/app/assets/images/colorbox/overlay.png new file mode 100644 index 0000000..53ea98f Binary files /dev/null and b/app/assets/images/colorbox/overlay.png differ diff --git a/app/assets/images/colorpicker/apply.png b/app/assets/images/colorpicker/apply.png new file mode 100644 index 0000000..56ef039 Binary files /dev/null and b/app/assets/images/colorpicker/apply.png differ diff --git a/app/assets/images/colorpicker/gradiente.png b/app/assets/images/colorpicker/gradiente.png new file mode 100644 index 0000000..8af6749 Binary files /dev/null and b/app/assets/images/colorpicker/gradiente.png differ diff --git a/app/assets/images/colorpicker/indic.gif b/app/assets/images/colorpicker/indic.gif new file mode 100644 index 0000000..f9fa95e Binary files /dev/null and b/app/assets/images/colorpicker/indic.gif differ diff --git a/app/assets/images/colorpicker/overlay.png b/app/assets/images/colorpicker/overlay.png new file mode 100644 index 0000000..561cdd9 Binary files /dev/null and b/app/assets/images/colorpicker/overlay.png differ diff --git a/app/assets/images/colorpicker/select.gif b/app/assets/images/colorpicker/select.gif new file mode 100644 index 0000000..599f7f1 Binary files /dev/null and b/app/assets/images/colorpicker/select.gif differ diff --git a/app/assets/images/comment-owner-bg-L.png b/app/assets/images/comment-owner-bg-L.png new file mode 100644 index 0000000..457eaa1 Binary files /dev/null and b/app/assets/images/comment-owner-bg-L.png differ diff --git a/app/assets/images/comment-owner-bg-N.png b/app/assets/images/comment-owner-bg-N.png new file mode 100644 index 0000000..f515550 Binary files /dev/null and b/app/assets/images/comment-owner-bg-N.png differ diff --git a/app/assets/images/comment-owner-bg-NL.png b/app/assets/images/comment-owner-bg-NL.png new file mode 100644 index 0000000..ebbe1c5 Binary files /dev/null and b/app/assets/images/comment-owner-bg-NL.png differ diff --git a/app/assets/images/comment-owner-bg-NO.png b/app/assets/images/comment-owner-bg-NO.png new file mode 100644 index 0000000..3482700 Binary files /dev/null and b/app/assets/images/comment-owner-bg-NO.png differ diff --git a/app/assets/images/comment-owner-bg-O.png b/app/assets/images/comment-owner-bg-O.png new file mode 100644 index 0000000..4a73252 Binary files /dev/null and b/app/assets/images/comment-owner-bg-O.png differ diff --git a/app/assets/images/comment-owner-bg-S.png b/app/assets/images/comment-owner-bg-S.png new file mode 100644 index 0000000..04b0ca3 Binary files /dev/null and b/app/assets/images/comment-owner-bg-S.png differ diff --git a/app/assets/images/comment-owner-bg-SL.png b/app/assets/images/comment-owner-bg-SL.png new file mode 100644 index 0000000..9eaa0fd Binary files /dev/null and b/app/assets/images/comment-owner-bg-SL.png differ diff --git a/app/assets/images/comment-owner-bg-SO.png b/app/assets/images/comment-owner-bg-SO.png new file mode 100644 index 0000000..b939083 Binary files /dev/null and b/app/assets/images/comment-owner-bg-SO.png differ diff --git a/app/assets/images/comment-reply-owner-bg.png b/app/assets/images/comment-reply-owner-bg.png new file mode 100644 index 0000000..a25aeb3 Binary files /dev/null and b/app/assets/images/comment-reply-owner-bg.png differ diff --git a/app/assets/images/control-panel/Makefile b/app/assets/images/control-panel/Makefile new file mode 100644 index 0000000..3a03653 --- /dev/null +++ b/app/assets/images/control-panel/Makefile @@ -0,0 +1,13 @@ +PNGS = $(patsubst %.svg, %.png, $(wildcard *.svg)) +GIFS = $(patsubst %.svg, %.gif, $(wildcard *.svg)) + +%.png: %.svg + inkscape -w 48 -h 48 -e $@ $< + +%.gif : %.png + convert $< $@ + +all: $(GIFS) $(PNGS) + +clean: + rm -f $(GIFS) $(PNGS) diff --git a/app/assets/images/control-panel/application-certificate.gif b/app/assets/images/control-panel/application-certificate.gif new file mode 100644 index 0000000..745aee4 Binary files /dev/null and b/app/assets/images/control-panel/application-certificate.gif differ diff --git a/app/assets/images/control-panel/application-certificate.png b/app/assets/images/control-panel/application-certificate.png new file mode 100644 index 0000000..8936758 Binary files /dev/null and b/app/assets/images/control-panel/application-certificate.png differ diff --git a/app/assets/images/control-panel/application-certificate.svg b/app/assets/images/control-panel/application-certificate.svg new file mode 100644 index 0000000..077f741 --- /dev/null +++ b/app/assets/images/control-panel/application-certificate.svg @@ -0,0 +1,443 @@ + + + + + + image/svg+xml + + + + + + CertificateJakub Steinercertificate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/assets/images/control-panel/blocks.gif b/app/assets/images/control-panel/blocks.gif new file mode 100644 index 0000000..6eb69f2 Binary files /dev/null and b/app/assets/images/control-panel/blocks.gif differ diff --git a/app/assets/images/control-panel/blocks.png b/app/assets/images/control-panel/blocks.png new file mode 100644 index 0000000..d2ef64b Binary files /dev/null and b/app/assets/images/control-panel/blocks.png differ diff --git a/app/assets/images/control-panel/blocks.svg b/app/assets/images/control-panel/blocks.svg new file mode 100644 index 0000000..0f5c510 --- /dev/null +++ b/app/assets/images/control-panel/blocks.svg @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Justify Right + 2005-10-29 + + + Andreas Nilsson + + + + + justify + left + format + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/images/control-panel/contact.gif b/app/assets/images/control-panel/contact.gif new file mode 100644 index 0000000..25c56b3 Binary files /dev/null and b/app/assets/images/control-panel/contact.gif differ diff --git a/app/assets/images/control-panel/contact.png b/app/assets/images/control-panel/contact.png new file mode 100644 index 0000000..e85a140 Binary files /dev/null and b/app/assets/images/control-panel/contact.png differ diff --git a/app/assets/images/control-panel/contact.svg b/app/assets/images/control-panel/contact.svg new file mode 100644 index 0000000..f20c4cb --- /dev/null +++ b/app/assets/images/control-panel/contact.svg @@ -0,0 +1,795 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Jakub Steiner + + + http://jimmac.musichall.cz + + New Contact + + + address + contact + e-mail + person + information + card + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fulana + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fulana + + diff --git a/app/assets/images/control-panel/edit-profile-enterprise.gif b/app/assets/images/control-panel/edit-profile-enterprise.gif new file mode 100644 index 0000000..f87d3fb Binary files /dev/null and b/app/assets/images/control-panel/edit-profile-enterprise.gif differ diff --git a/app/assets/images/control-panel/edit-profile-enterprise.png b/app/assets/images/control-panel/edit-profile-enterprise.png new file mode 100644 index 0000000..39854d4 Binary files /dev/null and b/app/assets/images/control-panel/edit-profile-enterprise.png differ diff --git a/app/assets/images/control-panel/edit-profile-enterprise.svg b/app/assets/images/control-panel/edit-profile-enterprise.svg new file mode 100644 index 0000000..5ad24c0 --- /dev/null +++ b/app/assets/images/control-panel/edit-profile-enterprise.svg @@ -0,0 +1,549 @@ + +image/svg+xmlGo HomeJakub Steinerhttp://jimmac.musichall.czhomereturngodefaultuserdirectoryTuomas Kuosmanen + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/assets/images/control-panel/edit-profile-group.gif b/app/assets/images/control-panel/edit-profile-group.gif new file mode 100644 index 0000000..a3e5008 Binary files /dev/null and b/app/assets/images/control-panel/edit-profile-group.gif differ diff --git a/app/assets/images/control-panel/edit-profile-group.png b/app/assets/images/control-panel/edit-profile-group.png new file mode 100644 index 0000000..0ca3a80 Binary files /dev/null and b/app/assets/images/control-panel/edit-profile-group.png differ diff --git a/app/assets/images/control-panel/edit-profile-group.svg b/app/assets/images/control-panel/edit-profile-group.svg new file mode 100644 index 0000000..f7fc51d --- /dev/null +++ b/app/assets/images/control-panel/edit-profile-group.svg @@ -0,0 +1,675 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + People + + + Jakub Steiner + + + http://jimmac.musichall.cz + + + users + people + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/images/control-panel/edit-profile.gif b/app/assets/images/control-panel/edit-profile.gif new file mode 100644 index 0000000..8de4ef0 Binary files /dev/null and b/app/assets/images/control-panel/edit-profile.gif differ diff --git a/app/assets/images/control-panel/edit-profile.png b/app/assets/images/control-panel/edit-profile.png new file mode 100644 index 0000000..bf406c9 Binary files /dev/null and b/app/assets/images/control-panel/edit-profile.png differ diff --git a/app/assets/images/control-panel/edit-profile.svg b/app/assets/images/control-panel/edit-profile.svg new file mode 100644 index 0000000..d5edfba --- /dev/null +++ b/app/assets/images/control-panel/edit-profile.svg @@ -0,0 +1,590 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + People + + + Jakub Steiner + + + http://jimmac.musichall.cz + + + users + people + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/images/control-panel/editpaste.gif b/app/assets/images/control-panel/editpaste.gif new file mode 100644 index 0000000..534717f Binary files /dev/null and b/app/assets/images/control-panel/editpaste.gif differ diff --git a/app/assets/images/control-panel/editpaste.png b/app/assets/images/control-panel/editpaste.png new file mode 100644 index 0000000..1116e53 Binary files /dev/null and b/app/assets/images/control-panel/editpaste.png differ diff --git a/app/assets/images/control-panel/editpaste.svg b/app/assets/images/control-panel/editpaste.svg new file mode 120000 index 0000000..587b2f0 --- /dev/null +++ b/app/assets/images/control-panel/editpaste.svg @@ -0,0 +1 @@ +/usr/share/icons/Tango/scalable/actions/editpaste.svg \ No newline at end of file diff --git a/app/assets/images/control-panel/email.gif b/app/assets/images/control-panel/email.gif new file mode 100644 index 0000000..b4043d1 Binary files /dev/null and b/app/assets/images/control-panel/email.gif differ diff --git a/app/assets/images/control-panel/email.png b/app/assets/images/control-panel/email.png new file mode 100644 index 0000000..b611be2 Binary files /dev/null and b/app/assets/images/control-panel/email.png differ diff --git a/app/assets/images/control-panel/email.svg b/app/assets/images/control-panel/email.svg new file mode 120000 index 0000000..300cd62 --- /dev/null +++ b/app/assets/images/control-panel/email.svg @@ -0,0 +1 @@ +/usr/share/icons/Tango/scalable/apps/email.svg \ No newline at end of file diff --git a/app/assets/images/control-panel/emblem-favorite.gif b/app/assets/images/control-panel/emblem-favorite.gif new file mode 100644 index 0000000..37e3c8f Binary files /dev/null and b/app/assets/images/control-panel/emblem-favorite.gif differ diff --git a/app/assets/images/control-panel/emblem-favorite.png b/app/assets/images/control-panel/emblem-favorite.png new file mode 100644 index 0000000..f17e861 Binary files /dev/null and b/app/assets/images/control-panel/emblem-favorite.png differ diff --git a/app/assets/images/control-panel/emblem-favorite.svg b/app/assets/images/control-panel/emblem-favorite.svg new file mode 120000 index 0000000..d2c3e04 --- /dev/null +++ b/app/assets/images/control-panel/emblem-favorite.svg @@ -0,0 +1 @@ +/usr/share/icons/Tango/scalable/emblems/emblem-favorite.svg \ No newline at end of file diff --git a/app/assets/images/control-panel/header-footer.gif b/app/assets/images/control-panel/header-footer.gif new file mode 100644 index 0000000..bf23f9f Binary files /dev/null and b/app/assets/images/control-panel/header-footer.gif differ diff --git a/app/assets/images/control-panel/header-footer.png b/app/assets/images/control-panel/header-footer.png new file mode 100644 index 0000000..97b9be5 Binary files /dev/null and b/app/assets/images/control-panel/header-footer.png differ diff --git a/app/assets/images/control-panel/header-footer.svg b/app/assets/images/control-panel/header-footer.svg new file mode 100644 index 0000000..901b275 --- /dev/null +++ b/app/assets/images/control-panel/header-footer.svg @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Justify Right + 2005-10-29 + + + Andreas Nilsson + + + + + justify + left + format + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/images/control-panel/important.gif b/app/assets/images/control-panel/important.gif new file mode 100644 index 0000000..c4d634b Binary files /dev/null and b/app/assets/images/control-panel/important.gif differ diff --git a/app/assets/images/control-panel/important.png b/app/assets/images/control-panel/important.png new file mode 100644 index 0000000..a80d024 Binary files /dev/null and b/app/assets/images/control-panel/important.png differ diff --git a/app/assets/images/control-panel/important.svg b/app/assets/images/control-panel/important.svg new file mode 120000 index 0000000..239577f --- /dev/null +++ b/app/assets/images/control-panel/important.svg @@ -0,0 +1 @@ +/usr/share/icons/Tango/scalable/status/important.svg \ No newline at end of file diff --git a/app/assets/images/control-panel/mail-mark-junk.png b/app/assets/images/control-panel/mail-mark-junk.png new file mode 100644 index 0000000..d14f23f Binary files /dev/null and b/app/assets/images/control-panel/mail-mark-junk.png differ diff --git a/app/assets/images/control-panel/mail-mark-junk.svg b/app/assets/images/control-panel/mail-mark-junk.svg new file mode 100644 index 0000000..0163175 --- /dev/null +++ b/app/assets/images/control-panel/mail-mark-junk.svg @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Jakub Steiner + + + http://jimmac.musichall.cz + + Mark mail as Junk + + + mail + spam + junk + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/images/control-panel/package.gif b/app/assets/images/control-panel/package.gif new file mode 100644 index 0000000..e14a2a7 Binary files /dev/null and b/app/assets/images/control-panel/package.gif differ diff --git a/app/assets/images/control-panel/package.png b/app/assets/images/control-panel/package.png new file mode 100644 index 0000000..37c8365 Binary files /dev/null and b/app/assets/images/control-panel/package.png differ diff --git a/app/assets/images/control-panel/package.svg b/app/assets/images/control-panel/package.svg new file mode 100644 index 0000000..47beed7 --- /dev/null +++ b/app/assets/images/control-panel/package.svg @@ -0,0 +1,485 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Package + + + Jakub Steiner + + + http://jimmac.musichall.cz/ + + + package + archive + tarball + tar + bzip + gzip + zip + arj + tar + jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/images/control-panel/password.gif b/app/assets/images/control-panel/password.gif new file mode 100644 index 0000000..019c78a Binary files /dev/null and b/app/assets/images/control-panel/password.gif differ diff --git a/app/assets/images/control-panel/password.png b/app/assets/images/control-panel/password.png new file mode 100644 index 0000000..e40fa21 Binary files /dev/null and b/app/assets/images/control-panel/password.png differ diff --git a/app/assets/images/control-panel/password.svg b/app/assets/images/control-panel/password.svg new file mode 120000 index 0000000..916daa0 --- /dev/null +++ b/app/assets/images/control-panel/password.svg @@ -0,0 +1 @@ +../../designs/icons/tango/mod/scalable/actions/password.svg \ No newline at end of file diff --git a/app/assets/images/control-panel/preferences-desktop-wallpaper.gif b/app/assets/images/control-panel/preferences-desktop-wallpaper.gif new file mode 100644 index 0000000..1971a50 Binary files /dev/null and b/app/assets/images/control-panel/preferences-desktop-wallpaper.gif differ diff --git a/app/assets/images/control-panel/preferences-desktop-wallpaper.png b/app/assets/images/control-panel/preferences-desktop-wallpaper.png new file mode 100644 index 0000000..79e76c7 Binary files /dev/null and b/app/assets/images/control-panel/preferences-desktop-wallpaper.png differ diff --git a/app/assets/images/control-panel/preferences-desktop-wallpaper.svg b/app/assets/images/control-panel/preferences-desktop-wallpaper.svg new file mode 120000 index 0000000..7292175 --- /dev/null +++ b/app/assets/images/control-panel/preferences-desktop-wallpaper.svg @@ -0,0 +1 @@ +/usr/share/icons/Tango/scalable/apps/preferences-desktop-wallpaper.svg \ No newline at end of file diff --git a/app/assets/images/control-panel/set-geolocation.gif b/app/assets/images/control-panel/set-geolocation.gif new file mode 100644 index 0000000..3cc321b Binary files /dev/null and b/app/assets/images/control-panel/set-geolocation.gif differ diff --git a/app/assets/images/control-panel/set-geolocation.png b/app/assets/images/control-panel/set-geolocation.png new file mode 100644 index 0000000..d6f8170 Binary files /dev/null and b/app/assets/images/control-panel/set-geolocation.png differ diff --git a/app/assets/images/control-panel/stop.gif b/app/assets/images/control-panel/stop.gif new file mode 100644 index 0000000..0b3cd56 Binary files /dev/null and b/app/assets/images/control-panel/stop.gif differ diff --git a/app/assets/images/control-panel/stop.png b/app/assets/images/control-panel/stop.png new file mode 100644 index 0000000..6fe29db Binary files /dev/null and b/app/assets/images/control-panel/stop.png differ diff --git a/app/assets/images/control-panel/stop.svg b/app/assets/images/control-panel/stop.svg new file mode 100644 index 0000000..04ce3a7 --- /dev/null +++ b/app/assets/images/control-panel/stop.svg @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Stop + 2005-10-16 + + + Andreas Nilsson + + + + + stop + halt + error + + + + + + Jakub Steiner + + + + + + + + + + + + + + + + + + diff --git a/app/assets/images/control-panel/system-file-manager.gif b/app/assets/images/control-panel/system-file-manager.gif new file mode 100644 index 0000000..419c98c Binary files /dev/null and b/app/assets/images/control-panel/system-file-manager.gif differ diff --git a/app/assets/images/control-panel/system-file-manager.png b/app/assets/images/control-panel/system-file-manager.png new file mode 100644 index 0000000..65a9c73 Binary files /dev/null and b/app/assets/images/control-panel/system-file-manager.png differ diff --git a/app/assets/images/control-panel/system-file-manager.svg b/app/assets/images/control-panel/system-file-manager.svg new file mode 120000 index 0000000..a2bf4ff --- /dev/null +++ b/app/assets/images/control-panel/system-file-manager.svg @@ -0,0 +1 @@ +/usr/share/icons/Tango/scalable/apps/system-file-manager.svg \ No newline at end of file diff --git a/app/assets/images/control-panel/system-users.gif b/app/assets/images/control-panel/system-users.gif new file mode 100644 index 0000000..c99fbb4 Binary files /dev/null and b/app/assets/images/control-panel/system-users.gif differ diff --git a/app/assets/images/control-panel/system-users.png b/app/assets/images/control-panel/system-users.png new file mode 100644 index 0000000..33a3bec Binary files /dev/null and b/app/assets/images/control-panel/system-users.png differ diff --git a/app/assets/images/control-panel/system-users.svg b/app/assets/images/control-panel/system-users.svg new file mode 120000 index 0000000..5b52232 --- /dev/null +++ b/app/assets/images/control-panel/system-users.svg @@ -0,0 +1 @@ +/usr/share/icons/Tango/scalable/apps/system-users.svg \ No newline at end of file diff --git a/app/assets/images/control-panel/text-editor-disabled.gif b/app/assets/images/control-panel/text-editor-disabled.gif new file mode 100644 index 0000000..5b1a9f0 Binary files /dev/null and b/app/assets/images/control-panel/text-editor-disabled.gif differ diff --git a/app/assets/images/control-panel/text-editor-disabled.png b/app/assets/images/control-panel/text-editor-disabled.png new file mode 120000 index 0000000..9ac54ac --- /dev/null +++ b/app/assets/images/control-panel/text-editor-disabled.png @@ -0,0 +1 @@ +../../designs/icons/tango/mod/48x48/apps/text-editor.png \ No newline at end of file diff --git a/app/assets/images/control-panel/text-editor-disabled.svg b/app/assets/images/control-panel/text-editor-disabled.svg new file mode 120000 index 0000000..2d77626 --- /dev/null +++ b/app/assets/images/control-panel/text-editor-disabled.svg @@ -0,0 +1 @@ +../../designs/icons/tango/mod/scalable/apps/text-editor.svg \ No newline at end of file diff --git a/app/assets/images/control-panel/text-editor.gif b/app/assets/images/control-panel/text-editor.gif new file mode 100644 index 0000000..b923b13 Binary files /dev/null and b/app/assets/images/control-panel/text-editor.gif differ diff --git a/app/assets/images/control-panel/text-editor.png b/app/assets/images/control-panel/text-editor.png new file mode 100644 index 0000000..bd26767 Binary files /dev/null and b/app/assets/images/control-panel/text-editor.png differ diff --git a/app/assets/images/control-panel/text-editor.svg b/app/assets/images/control-panel/text-editor.svg new file mode 120000 index 0000000..117e78f --- /dev/null +++ b/app/assets/images/control-panel/text-editor.svg @@ -0,0 +1 @@ +/usr/share/icons/Tango/scalable/apps/text-editor.svg \ No newline at end of file diff --git a/app/assets/images/doc/activation-conlusion.en.png b/app/assets/images/doc/activation-conlusion.en.png new file mode 100644 index 0000000..48581a2 Binary files /dev/null and b/app/assets/images/doc/activation-conlusion.en.png differ diff --git a/app/assets/images/doc/activation-conlusion.pt.png b/app/assets/images/doc/activation-conlusion.pt.png new file mode 100644 index 0000000..c146160 Binary files /dev/null and b/app/assets/images/doc/activation-conlusion.pt.png differ diff --git a/app/assets/images/doc/activation-question.en.png b/app/assets/images/doc/activation-question.en.png new file mode 100644 index 0000000..6bdbf2c Binary files /dev/null and b/app/assets/images/doc/activation-question.en.png differ diff --git a/app/assets/images/doc/activation-question.pt.png b/app/assets/images/doc/activation-question.pt.png new file mode 100644 index 0000000..4f495bf Binary files /dev/null and b/app/assets/images/doc/activation-question.pt.png differ diff --git a/app/assets/images/doc/add-member-enterprise.en.png b/app/assets/images/doc/add-member-enterprise.en.png new file mode 100644 index 0000000..d869a95 Binary files /dev/null and b/app/assets/images/doc/add-member-enterprise.en.png differ diff --git a/app/assets/images/doc/add-member-enterprise.pt.png b/app/assets/images/doc/add-member-enterprise.pt.png new file mode 100644 index 0000000..c08e6a3 Binary files /dev/null and b/app/assets/images/doc/add-member-enterprise.pt.png differ diff --git a/app/assets/images/doc/admin-panel-export-users.en.png b/app/assets/images/doc/admin-panel-export-users.en.png new file mode 100644 index 0000000..c3b99d0 Binary files /dev/null and b/app/assets/images/doc/admin-panel-export-users.en.png differ diff --git a/app/assets/images/doc/admin-panel-export-users.pt.png b/app/assets/images/doc/admin-panel-export-users.pt.png new file mode 100644 index 0000000..81887c3 Binary files /dev/null and b/app/assets/images/doc/admin-panel-export-users.pt.png differ diff --git a/app/assets/images/doc/admin-panel-manage-users.en.png b/app/assets/images/doc/admin-panel-manage-users.en.png new file mode 100644 index 0000000..c287fc8 Binary files /dev/null and b/app/assets/images/doc/admin-panel-manage-users.en.png differ diff --git a/app/assets/images/doc/admin-panel-manage-users.pt.png b/app/assets/images/doc/admin-panel-manage-users.pt.png new file mode 100644 index 0000000..cbe1e9a Binary files /dev/null and b/app/assets/images/doc/admin-panel-manage-users.pt.png differ diff --git a/app/assets/images/doc/admin-panel-send-email.en.png b/app/assets/images/doc/admin-panel-send-email.en.png new file mode 100644 index 0000000..e9ea313 Binary files /dev/null and b/app/assets/images/doc/admin-panel-send-email.en.png differ diff --git a/app/assets/images/doc/admin-panel-send-email.pt.png b/app/assets/images/doc/admin-panel-send-email.pt.png new file mode 100644 index 0000000..0a54e73 Binary files /dev/null and b/app/assets/images/doc/admin-panel-send-email.pt.png differ diff --git a/app/assets/images/doc/admin-send-email.en.png b/app/assets/images/doc/admin-send-email.en.png new file mode 100644 index 0000000..59c1b4f Binary files /dev/null and b/app/assets/images/doc/admin-send-email.en.png differ diff --git a/app/assets/images/doc/admin-send-email.pt.png b/app/assets/images/doc/admin-send-email.pt.png new file mode 100644 index 0000000..2db17f3 Binary files /dev/null and b/app/assets/images/doc/admin-send-email.pt.png differ diff --git a/app/assets/images/doc/advanced-article-archives-list.en.png b/app/assets/images/doc/advanced-article-archives-list.en.png new file mode 100644 index 0000000..246cac1 Binary files /dev/null and b/app/assets/images/doc/advanced-article-archives-list.en.png differ diff --git a/app/assets/images/doc/advanced-article-archives-list.pt.png b/app/assets/images/doc/advanced-article-archives-list.pt.png new file mode 100644 index 0000000..91fdf51 Binary files /dev/null and b/app/assets/images/doc/advanced-article-archives-list.pt.png differ diff --git a/app/assets/images/doc/advanced-article-created-link.en.png b/app/assets/images/doc/advanced-article-created-link.en.png new file mode 100644 index 0000000..47c90fa Binary files /dev/null and b/app/assets/images/doc/advanced-article-created-link.en.png differ diff --git a/app/assets/images/doc/advanced-article-created-link.pt.png b/app/assets/images/doc/advanced-article-created-link.pt.png new file mode 100644 index 0000000..50059b3 Binary files /dev/null and b/app/assets/images/doc/advanced-article-created-link.pt.png differ diff --git a/app/assets/images/doc/advanced-article-created-object.en.png b/app/assets/images/doc/advanced-article-created-object.en.png new file mode 100644 index 0000000..6244572 Binary files /dev/null and b/app/assets/images/doc/advanced-article-created-object.en.png differ diff --git a/app/assets/images/doc/advanced-article-created-object.pt.png b/app/assets/images/doc/advanced-article-created-object.pt.png new file mode 100644 index 0000000..d4f0a69 Binary files /dev/null and b/app/assets/images/doc/advanced-article-created-object.pt.png differ diff --git a/app/assets/images/doc/advanced-article-insert-html.en.png b/app/assets/images/doc/advanced-article-insert-html.en.png new file mode 100644 index 0000000..61609c5 Binary files /dev/null and b/app/assets/images/doc/advanced-article-insert-html.en.png differ diff --git a/app/assets/images/doc/advanced-article-insert-html.pt.png b/app/assets/images/doc/advanced-article-insert-html.pt.png new file mode 100644 index 0000000..9d5410d Binary files /dev/null and b/app/assets/images/doc/advanced-article-insert-html.pt.png differ diff --git a/app/assets/images/doc/advanced-article-insert-links.en.png b/app/assets/images/doc/advanced-article-insert-links.en.png new file mode 100644 index 0000000..b9c475f Binary files /dev/null and b/app/assets/images/doc/advanced-article-insert-links.en.png differ diff --git a/app/assets/images/doc/advanced-article-insert-links.pt.png b/app/assets/images/doc/advanced-article-insert-links.pt.png new file mode 100644 index 0000000..fde699e Binary files /dev/null and b/app/assets/images/doc/advanced-article-insert-links.pt.png differ diff --git a/app/assets/images/doc/advanced-article-popup-insert-html.en.png b/app/assets/images/doc/advanced-article-popup-insert-html.en.png new file mode 100644 index 0000000..c5b495d Binary files /dev/null and b/app/assets/images/doc/advanced-article-popup-insert-html.en.png differ diff --git a/app/assets/images/doc/advanced-article-popup-insert-html.pt.png b/app/assets/images/doc/advanced-article-popup-insert-html.pt.png new file mode 100644 index 0000000..bfa7f39 Binary files /dev/null and b/app/assets/images/doc/advanced-article-popup-insert-html.pt.png differ diff --git a/app/assets/images/doc/advanced-article-popup-insert-link.en.png b/app/assets/images/doc/advanced-article-popup-insert-link.en.png new file mode 100644 index 0000000..1d10469 Binary files /dev/null and b/app/assets/images/doc/advanced-article-popup-insert-link.en.png differ diff --git a/app/assets/images/doc/advanced-article-popup-insert-link.pt.png b/app/assets/images/doc/advanced-article-popup-insert-link.pt.png new file mode 100644 index 0000000..a01a24c Binary files /dev/null and b/app/assets/images/doc/advanced-article-popup-insert-link.pt.png differ diff --git a/app/assets/images/doc/advanced-article-upload-images.en.png b/app/assets/images/doc/advanced-article-upload-images.en.png new file mode 100644 index 0000000..cf506a7 Binary files /dev/null and b/app/assets/images/doc/advanced-article-upload-images.en.png differ diff --git a/app/assets/images/doc/advanced-article-upload-images.pt.png b/app/assets/images/doc/advanced-article-upload-images.pt.png new file mode 100644 index 0000000..e790653 Binary files /dev/null and b/app/assets/images/doc/advanced-article-upload-images.pt.png differ diff --git a/app/assets/images/doc/article-bigger-spread-view.en.png b/app/assets/images/doc/article-bigger-spread-view.en.png new file mode 100644 index 0000000..926b587 Binary files /dev/null and b/app/assets/images/doc/article-bigger-spread-view.en.png differ diff --git a/app/assets/images/doc/article-bigger-spread-view.pt.png b/app/assets/images/doc/article-bigger-spread-view.pt.png new file mode 100644 index 0000000..a404e26 Binary files /dev/null and b/app/assets/images/doc/article-bigger-spread-view.pt.png differ diff --git a/app/assets/images/doc/article-block.en.png b/app/assets/images/doc/article-block.en.png new file mode 100644 index 0000000..2cc6404 Binary files /dev/null and b/app/assets/images/doc/article-block.en.png differ diff --git a/app/assets/images/doc/article-block.pt.png b/app/assets/images/doc/article-block.pt.png new file mode 100644 index 0000000..3b19b60 Binary files /dev/null and b/app/assets/images/doc/article-block.pt.png differ diff --git a/app/assets/images/doc/article-creation-categorization.en.png b/app/assets/images/doc/article-creation-categorization.en.png new file mode 100644 index 0000000..4da74d0 Binary files /dev/null and b/app/assets/images/doc/article-creation-categorization.en.png differ diff --git a/app/assets/images/doc/article-creation-categorization.pt.png b/app/assets/images/doc/article-creation-categorization.pt.png new file mode 100644 index 0000000..288fa65 Binary files /dev/null and b/app/assets/images/doc/article-creation-categorization.pt.png differ diff --git a/app/assets/images/doc/article-creation-category-choosen.en.png b/app/assets/images/doc/article-creation-category-choosen.en.png new file mode 100644 index 0000000..a878bd1 Binary files /dev/null and b/app/assets/images/doc/article-creation-category-choosen.en.png differ diff --git a/app/assets/images/doc/article-creation-category-choosen.pt.png b/app/assets/images/doc/article-creation-category-choosen.pt.png new file mode 100644 index 0000000..cda070d Binary files /dev/null and b/app/assets/images/doc/article-creation-category-choosen.pt.png differ diff --git a/app/assets/images/doc/article-creation-options.en.png b/app/assets/images/doc/article-creation-options.en.png new file mode 100644 index 0000000..601a97c Binary files /dev/null and b/app/assets/images/doc/article-creation-options.en.png differ diff --git a/app/assets/images/doc/article-creation-options.pt.png b/app/assets/images/doc/article-creation-options.pt.png new file mode 100644 index 0000000..bee4a35 Binary files /dev/null and b/app/assets/images/doc/article-creation-options.pt.png differ diff --git a/app/assets/images/doc/article-creation-tags.en.png b/app/assets/images/doc/article-creation-tags.en.png new file mode 100644 index 0000000..2c7f370 Binary files /dev/null and b/app/assets/images/doc/article-creation-tags.en.png differ diff --git a/app/assets/images/doc/article-creation-tags.pt.png b/app/assets/images/doc/article-creation-tags.pt.png new file mode 100644 index 0000000..b5a3904 Binary files /dev/null and b/app/assets/images/doc/article-creation-tags.pt.png differ diff --git a/app/assets/images/doc/article-spread-view.en.png b/app/assets/images/doc/article-spread-view.en.png new file mode 100644 index 0000000..05be735 Binary files /dev/null and b/app/assets/images/doc/article-spread-view.en.png differ diff --git a/app/assets/images/doc/article-spread-view.pt.png b/app/assets/images/doc/article-spread-view.pt.png new file mode 100644 index 0000000..841336f Binary files /dev/null and b/app/assets/images/doc/article-spread-view.pt.png differ diff --git a/app/assets/images/doc/article-spread.en.png b/app/assets/images/doc/article-spread.en.png new file mode 100644 index 0000000..1f7b797 Binary files /dev/null and b/app/assets/images/doc/article-spread.en.png differ diff --git a/app/assets/images/doc/article-spread.pt.png b/app/assets/images/doc/article-spread.pt.png new file mode 100644 index 0000000..393b0a4 Binary files /dev/null and b/app/assets/images/doc/article-spread.pt.png differ diff --git a/app/assets/images/doc/article-text-lead.en.png b/app/assets/images/doc/article-text-lead.en.png new file mode 100644 index 0000000..48cf0ee Binary files /dev/null and b/app/assets/images/doc/article-text-lead.en.png differ diff --git a/app/assets/images/doc/article-text-lead.pt.png b/app/assets/images/doc/article-text-lead.pt.png new file mode 100644 index 0000000..c3c8577 Binary files /dev/null and b/app/assets/images/doc/article-text-lead.pt.png differ diff --git a/app/assets/images/doc/article-text.en.png b/app/assets/images/doc/article-text.en.png new file mode 100644 index 0000000..19dd7f1 Binary files /dev/null and b/app/assets/images/doc/article-text.en.png differ diff --git a/app/assets/images/doc/article-text.pt.png b/app/assets/images/doc/article-text.pt.png new file mode 100644 index 0000000..93aace1 Binary files /dev/null and b/app/assets/images/doc/article-text.pt.png differ diff --git a/app/assets/images/doc/block-actions.en.png b/app/assets/images/doc/block-actions.en.png new file mode 100644 index 0000000..bf79472 Binary files /dev/null and b/app/assets/images/doc/block-actions.en.png differ diff --git a/app/assets/images/doc/blog-buttons.en.png b/app/assets/images/doc/blog-buttons.en.png new file mode 100644 index 0000000..45ce077 Binary files /dev/null and b/app/assets/images/doc/blog-buttons.en.png differ diff --git a/app/assets/images/doc/blog-buttons.pt.png b/app/assets/images/doc/blog-buttons.pt.png new file mode 100644 index 0000000..41a1162 Binary files /dev/null and b/app/assets/images/doc/blog-buttons.pt.png differ diff --git a/app/assets/images/doc/box-register.en.png b/app/assets/images/doc/box-register.en.png new file mode 100644 index 0000000..4461066 Binary files /dev/null and b/app/assets/images/doc/box-register.en.png differ diff --git a/app/assets/images/doc/box-register.pt.png b/app/assets/images/doc/box-register.pt.png new file mode 100644 index 0000000..cde860d Binary files /dev/null and b/app/assets/images/doc/box-register.pt.png differ diff --git a/app/assets/images/doc/change-password.en.png b/app/assets/images/doc/change-password.en.png new file mode 100644 index 0000000..b3b5f42 Binary files /dev/null and b/app/assets/images/doc/change-password.en.png differ diff --git a/app/assets/images/doc/change-password.pt.png b/app/assets/images/doc/change-password.pt.png new file mode 100644 index 0000000..c7f7c03 Binary files /dev/null and b/app/assets/images/doc/change-password.pt.png differ diff --git a/app/assets/images/doc/changing-role-enterprise-member.en.png b/app/assets/images/doc/changing-role-enterprise-member.en.png new file mode 100644 index 0000000..d5848d7 Binary files /dev/null and b/app/assets/images/doc/changing-role-enterprise-member.en.png differ diff --git a/app/assets/images/doc/changing-role-enterprise-member.pt.png b/app/assets/images/doc/changing-role-enterprise-member.pt.png new file mode 100644 index 0000000..9ecd8e6 Binary files /dev/null and b/app/assets/images/doc/changing-role-enterprise-member.pt.png differ diff --git a/app/assets/images/doc/closed-comment-box.en.png b/app/assets/images/doc/closed-comment-box.en.png new file mode 100644 index 0000000..b5975bd Binary files /dev/null and b/app/assets/images/doc/closed-comment-box.en.png differ diff --git a/app/assets/images/doc/closed-comment-box.pt.png b/app/assets/images/doc/closed-comment-box.pt.png new file mode 100644 index 0000000..146d316 Binary files /dev/null and b/app/assets/images/doc/closed-comment-box.pt.png differ diff --git a/app/assets/images/doc/cms-article-icons.en.png b/app/assets/images/doc/cms-article-icons.en.png new file mode 100644 index 0000000..937fb5b Binary files /dev/null and b/app/assets/images/doc/cms-article-icons.en.png differ diff --git a/app/assets/images/doc/cms-article-icons.pt.png b/app/assets/images/doc/cms-article-icons.pt.png new file mode 100644 index 0000000..937fb5b Binary files /dev/null and b/app/assets/images/doc/cms-article-icons.pt.png differ diff --git a/app/assets/images/doc/cms-article-types.en.png b/app/assets/images/doc/cms-article-types.en.png new file mode 100644 index 0000000..3a993d0 Binary files /dev/null and b/app/assets/images/doc/cms-article-types.en.png differ diff --git a/app/assets/images/doc/cms-article-types.pt.png b/app/assets/images/doc/cms-article-types.pt.png new file mode 100644 index 0000000..f1fcdbd Binary files /dev/null and b/app/assets/images/doc/cms-article-types.pt.png differ diff --git a/app/assets/images/doc/cms-blog-creation.en.png b/app/assets/images/doc/cms-blog-creation.en.png new file mode 100644 index 0000000..00ee42d Binary files /dev/null and b/app/assets/images/doc/cms-blog-creation.en.png differ diff --git a/app/assets/images/doc/cms-blog-creation.pt.png b/app/assets/images/doc/cms-blog-creation.pt.png new file mode 100644 index 0000000..262fd67 Binary files /dev/null and b/app/assets/images/doc/cms-blog-creation.pt.png differ diff --git a/app/assets/images/doc/cms-blog-public-visualization.en.png b/app/assets/images/doc/cms-blog-public-visualization.en.png new file mode 100644 index 0000000..9e641a3 Binary files /dev/null and b/app/assets/images/doc/cms-blog-public-visualization.en.png differ diff --git a/app/assets/images/doc/cms-blog-public-visualization.pt.png b/app/assets/images/doc/cms-blog-public-visualization.pt.png new file mode 100644 index 0000000..a139e99 Binary files /dev/null and b/app/assets/images/doc/cms-blog-public-visualization.pt.png differ diff --git a/app/assets/images/doc/cms-folder-icons.en.png b/app/assets/images/doc/cms-folder-icons.en.png new file mode 100644 index 0000000..77f28e5 Binary files /dev/null and b/app/assets/images/doc/cms-folder-icons.en.png differ diff --git a/app/assets/images/doc/cms-folder-icons.pt.png b/app/assets/images/doc/cms-folder-icons.pt.png new file mode 100644 index 0000000..77f28e5 Binary files /dev/null and b/app/assets/images/doc/cms-folder-icons.pt.png differ diff --git a/app/assets/images/doc/cms-gallery-public-visualization.en.png b/app/assets/images/doc/cms-gallery-public-visualization.en.png new file mode 100644 index 0000000..1feca64 Binary files /dev/null and b/app/assets/images/doc/cms-gallery-public-visualization.en.png differ diff --git a/app/assets/images/doc/cms-gallery-public-visualization.pt.png b/app/assets/images/doc/cms-gallery-public-visualization.pt.png new file mode 100644 index 0000000..0b6ab4f Binary files /dev/null and b/app/assets/images/doc/cms-gallery-public-visualization.pt.png differ diff --git a/app/assets/images/doc/cms-new-article.en.png b/app/assets/images/doc/cms-new-article.en.png new file mode 100644 index 0000000..52db253 Binary files /dev/null and b/app/assets/images/doc/cms-new-article.en.png differ diff --git a/app/assets/images/doc/cms-new-article.pt.png b/app/assets/images/doc/cms-new-article.pt.png new file mode 100644 index 0000000..8e0c2e9 Binary files /dev/null and b/app/assets/images/doc/cms-new-article.pt.png differ diff --git a/app/assets/images/doc/cms-spread-article-icon.en.png b/app/assets/images/doc/cms-spread-article-icon.en.png new file mode 100644 index 0000000..9fac2ee Binary files /dev/null and b/app/assets/images/doc/cms-spread-article-icon.en.png differ diff --git a/app/assets/images/doc/cms-spread-article-icon.pt.png b/app/assets/images/doc/cms-spread-article-icon.pt.png new file mode 100644 index 0000000..b929e35 Binary files /dev/null and b/app/assets/images/doc/cms-spread-article-icon.pt.png differ diff --git a/app/assets/images/doc/cms-uploading-files.en.png b/app/assets/images/doc/cms-uploading-files.en.png new file mode 100644 index 0000000..22caa37 Binary files /dev/null and b/app/assets/images/doc/cms-uploading-files.en.png differ diff --git a/app/assets/images/doc/cms-uploading-files.pt.png b/app/assets/images/doc/cms-uploading-files.pt.png new file mode 100644 index 0000000..adb4ae1 Binary files /dev/null and b/app/assets/images/doc/cms-uploading-files.pt.png differ diff --git a/app/assets/images/doc/cms.en.png b/app/assets/images/doc/cms.en.png new file mode 100644 index 0000000..2d96e9a Binary files /dev/null and b/app/assets/images/doc/cms.en.png differ diff --git a/app/assets/images/doc/cms.pt.png b/app/assets/images/doc/cms.pt.png new file mode 100644 index 0000000..604b422 Binary files /dev/null and b/app/assets/images/doc/cms.pt.png differ diff --git a/app/assets/images/doc/comments-of-logged-in-out-person.en.png b/app/assets/images/doc/comments-of-logged-in-out-person.en.png new file mode 100644 index 0000000..1a45728 Binary files /dev/null and b/app/assets/images/doc/comments-of-logged-in-out-person.en.png differ diff --git a/app/assets/images/doc/comments-of-logged-in-out-person.pt.png b/app/assets/images/doc/comments-of-logged-in-out-person.pt.png new file mode 100644 index 0000000..cd59290 Binary files /dev/null and b/app/assets/images/doc/comments-of-logged-in-out-person.pt.png differ diff --git a/app/assets/images/doc/comments.en.png b/app/assets/images/doc/comments.en.png new file mode 100644 index 0000000..04c6f13 Binary files /dev/null and b/app/assets/images/doc/comments.en.png differ diff --git a/app/assets/images/doc/comments.pt.png b/app/assets/images/doc/comments.pt.png new file mode 100644 index 0000000..0722ff0 Binary files /dev/null and b/app/assets/images/doc/comments.pt.png differ diff --git a/app/assets/images/doc/communities-block.en.png b/app/assets/images/doc/communities-block.en.png new file mode 100644 index 0000000..46a15d5 Binary files /dev/null and b/app/assets/images/doc/communities-block.en.png differ diff --git a/app/assets/images/doc/communities-block.pt.png b/app/assets/images/doc/communities-block.pt.png new file mode 100644 index 0000000..369d80d Binary files /dev/null and b/app/assets/images/doc/communities-block.pt.png differ diff --git a/app/assets/images/doc/communities-search-field.en.png b/app/assets/images/doc/communities-search-field.en.png new file mode 100644 index 0000000..26765db Binary files /dev/null and b/app/assets/images/doc/communities-search-field.en.png differ diff --git a/app/assets/images/doc/communities-search-field.pt.png b/app/assets/images/doc/communities-search-field.pt.png new file mode 100644 index 0000000..de54299 Binary files /dev/null and b/app/assets/images/doc/communities-search-field.pt.png differ diff --git a/app/assets/images/doc/communities-search-results-with-example.en.png b/app/assets/images/doc/communities-search-results-with-example.en.png new file mode 100644 index 0000000..3bd39bf Binary files /dev/null and b/app/assets/images/doc/communities-search-results-with-example.en.png differ diff --git a/app/assets/images/doc/communities-search-results-with-example.pt.png b/app/assets/images/doc/communities-search-results-with-example.pt.png new file mode 100644 index 0000000..0914edc Binary files /dev/null and b/app/assets/images/doc/communities-search-results-with-example.pt.png differ diff --git a/app/assets/images/doc/community-balloon-closed-en.png b/app/assets/images/doc/community-balloon-closed-en.png new file mode 100644 index 0000000..70d4439 Binary files /dev/null and b/app/assets/images/doc/community-balloon-closed-en.png differ diff --git a/app/assets/images/doc/community-balloon-closed.en.png b/app/assets/images/doc/community-balloon-closed.en.png new file mode 100644 index 0000000..70d4439 Binary files /dev/null and b/app/assets/images/doc/community-balloon-closed.en.png differ diff --git a/app/assets/images/doc/community-balloon-en.png b/app/assets/images/doc/community-balloon-en.png new file mode 100644 index 0000000..8442c47 Binary files /dev/null and b/app/assets/images/doc/community-balloon-en.png differ diff --git a/app/assets/images/doc/community-balloon-pt.png b/app/assets/images/doc/community-balloon-pt.png new file mode 100644 index 0000000..710d91e Binary files /dev/null and b/app/assets/images/doc/community-balloon-pt.png differ diff --git a/app/assets/images/doc/community-balloon.en.png b/app/assets/images/doc/community-balloon.en.png new file mode 100644 index 0000000..8442c47 Binary files /dev/null and b/app/assets/images/doc/community-balloon.en.png differ diff --git a/app/assets/images/doc/community-balloon.pt.png b/app/assets/images/doc/community-balloon.pt.png new file mode 100644 index 0000000..710d91e Binary files /dev/null and b/app/assets/images/doc/community-balloon.pt.png differ diff --git a/app/assets/images/doc/community-control-panel-manage-members.en.png b/app/assets/images/doc/community-control-panel-manage-members.en.png new file mode 100644 index 0000000..4fce019 Binary files /dev/null and b/app/assets/images/doc/community-control-panel-manage-members.en.png differ diff --git a/app/assets/images/doc/community-control-panel-manage-members.pt.png b/app/assets/images/doc/community-control-panel-manage-members.pt.png new file mode 100644 index 0000000..1533876 Binary files /dev/null and b/app/assets/images/doc/community-control-panel-manage-members.pt.png differ diff --git a/app/assets/images/doc/community-control-panel-with-approval-task.en.png b/app/assets/images/doc/community-control-panel-with-approval-task.en.png new file mode 100644 index 0000000..49729a9 Binary files /dev/null and b/app/assets/images/doc/community-control-panel-with-approval-task.en.png differ diff --git a/app/assets/images/doc/community-control-panel-with-approval-task.pt.png b/app/assets/images/doc/community-control-panel-with-approval-task.pt.png new file mode 100644 index 0000000..4664e06 Binary files /dev/null and b/app/assets/images/doc/community-control-panel-with-approval-task.pt.png differ diff --git a/app/assets/images/doc/community-control-panel-with-tasks.en.png b/app/assets/images/doc/community-control-panel-with-tasks.en.png new file mode 100644 index 0000000..3e45fd4 Binary files /dev/null and b/app/assets/images/doc/community-control-panel-with-tasks.en.png differ diff --git a/app/assets/images/doc/community-control-panel-with-tasks.pt.png b/app/assets/images/doc/community-control-panel-with-tasks.pt.png new file mode 100644 index 0000000..a3a6205 Binary files /dev/null and b/app/assets/images/doc/community-control-panel-with-tasks.pt.png differ diff --git a/app/assets/images/doc/community-creation-form.en.png b/app/assets/images/doc/community-creation-form.en.png new file mode 100644 index 0000000..3c353ab Binary files /dev/null and b/app/assets/images/doc/community-creation-form.en.png differ diff --git a/app/assets/images/doc/community-creation-form.pt.png b/app/assets/images/doc/community-creation-form.pt.png new file mode 100644 index 0000000..3a9b66e Binary files /dev/null and b/app/assets/images/doc/community-creation-form.pt.png differ diff --git a/app/assets/images/doc/community-creation.en.png b/app/assets/images/doc/community-creation.en.png new file mode 100644 index 0000000..dbf8707 Binary files /dev/null and b/app/assets/images/doc/community-creation.en.png differ diff --git a/app/assets/images/doc/community-creation.pt.png b/app/assets/images/doc/community-creation.pt.png new file mode 100644 index 0000000..364407c Binary files /dev/null and b/app/assets/images/doc/community-creation.pt.png differ diff --git a/app/assets/images/doc/community-edit-sideboxes.en.png b/app/assets/images/doc/community-edit-sideboxes.en.png new file mode 100644 index 0000000..0f395a7 Binary files /dev/null and b/app/assets/images/doc/community-edit-sideboxes.en.png differ diff --git a/app/assets/images/doc/community-edit-sideboxes.pt.png b/app/assets/images/doc/community-edit-sideboxes.pt.png new file mode 100644 index 0000000..49390ac Binary files /dev/null and b/app/assets/images/doc/community-edit-sideboxes.pt.png differ diff --git a/app/assets/images/doc/community-image-block.en.png b/app/assets/images/doc/community-image-block.en.png new file mode 100644 index 0000000..0146336 Binary files /dev/null and b/app/assets/images/doc/community-image-block.en.png differ diff --git a/app/assets/images/doc/community-image-block.pt.png b/app/assets/images/doc/community-image-block.pt.png new file mode 100644 index 0000000..4b3ae8b Binary files /dev/null and b/app/assets/images/doc/community-image-block.pt.png differ diff --git a/app/assets/images/doc/community-import-invitation-step-1.en.png b/app/assets/images/doc/community-import-invitation-step-1.en.png new file mode 100644 index 0000000..de440c0 Binary files /dev/null and b/app/assets/images/doc/community-import-invitation-step-1.en.png differ diff --git a/app/assets/images/doc/community-import-invitation-step-1.pt.png b/app/assets/images/doc/community-import-invitation-step-1.pt.png new file mode 100644 index 0000000..b1b0705 Binary files /dev/null and b/app/assets/images/doc/community-import-invitation-step-1.pt.png differ diff --git a/app/assets/images/doc/community-import-invitation-step-2.en.png b/app/assets/images/doc/community-import-invitation-step-2.en.png new file mode 100644 index 0000000..c71559b Binary files /dev/null and b/app/assets/images/doc/community-import-invitation-step-2.en.png differ diff --git a/app/assets/images/doc/community-import-invitation-step-2.pt.png b/app/assets/images/doc/community-import-invitation-step-2.pt.png new file mode 100644 index 0000000..9c99f0a Binary files /dev/null and b/app/assets/images/doc/community-import-invitation-step-2.pt.png differ diff --git a/app/assets/images/doc/community-info-block.en.png b/app/assets/images/doc/community-info-block.en.png new file mode 100644 index 0000000..80a0dc2 Binary files /dev/null and b/app/assets/images/doc/community-info-block.en.png differ diff --git a/app/assets/images/doc/community-info-block.pt.png b/app/assets/images/doc/community-info-block.pt.png new file mode 100644 index 0000000..6484dae Binary files /dev/null and b/app/assets/images/doc/community-info-block.pt.png differ diff --git a/app/assets/images/doc/community-manually-invitation-step-1.en.png b/app/assets/images/doc/community-manually-invitation-step-1.en.png new file mode 100644 index 0000000..70d0e05 Binary files /dev/null and b/app/assets/images/doc/community-manually-invitation-step-1.en.png differ diff --git a/app/assets/images/doc/community-manually-invitation-step-1.pt.png b/app/assets/images/doc/community-manually-invitation-step-1.pt.png new file mode 100644 index 0000000..910ce4b Binary files /dev/null and b/app/assets/images/doc/community-manually-invitation-step-1.pt.png differ diff --git a/app/assets/images/doc/community-manually-invitation-step-2.en.png b/app/assets/images/doc/community-manually-invitation-step-2.en.png new file mode 100644 index 0000000..c532136 Binary files /dev/null and b/app/assets/images/doc/community-manually-invitation-step-2.en.png differ diff --git a/app/assets/images/doc/community-manually-invitation-step-2.pt.png b/app/assets/images/doc/community-manually-invitation-step-2.pt.png new file mode 100644 index 0000000..645b6ae Binary files /dev/null and b/app/assets/images/doc/community-manually-invitation-step-2.pt.png differ diff --git a/app/assets/images/doc/community-members-with-invitation-button.en.png b/app/assets/images/doc/community-members-with-invitation-button.en.png new file mode 100644 index 0000000..8b4044f Binary files /dev/null and b/app/assets/images/doc/community-members-with-invitation-button.en.png differ diff --git a/app/assets/images/doc/community-members-with-invitation-button.pt.png b/app/assets/images/doc/community-members-with-invitation-button.pt.png new file mode 100644 index 0000000..999f7ad Binary files /dev/null and b/app/assets/images/doc/community-members-with-invitation-button.pt.png differ diff --git a/app/assets/images/doc/community-members-with-send-mail-button.en.png b/app/assets/images/doc/community-members-with-send-mail-button.en.png new file mode 100644 index 0000000..9dac666 Binary files /dev/null and b/app/assets/images/doc/community-members-with-send-mail-button.en.png differ diff --git a/app/assets/images/doc/community-members-with-send-mail-button.pt.png b/app/assets/images/doc/community-members-with-send-mail-button.pt.png new file mode 100644 index 0000000..2d9629d Binary files /dev/null and b/app/assets/images/doc/community-members-with-send-mail-button.pt.png differ diff --git a/app/assets/images/doc/community-network-block.en.png b/app/assets/images/doc/community-network-block.en.png new file mode 100644 index 0000000..4749abe Binary files /dev/null and b/app/assets/images/doc/community-network-block.en.png differ diff --git a/app/assets/images/doc/community-network-block.pt.png b/app/assets/images/doc/community-network-block.pt.png new file mode 100644 index 0000000..04bb67e Binary files /dev/null and b/app/assets/images/doc/community-network-block.pt.png differ diff --git a/app/assets/images/doc/community-send-email.en.png b/app/assets/images/doc/community-send-email.en.png new file mode 100644 index 0000000..a6bacb3 Binary files /dev/null and b/app/assets/images/doc/community-send-email.en.png differ diff --git a/app/assets/images/doc/community-send-email.pt.png b/app/assets/images/doc/community-send-email.pt.png new file mode 100644 index 0000000..9b34ab2 Binary files /dev/null and b/app/assets/images/doc/community-send-email.pt.png differ diff --git a/app/assets/images/doc/community-sideboxes-add-block.en.png b/app/assets/images/doc/community-sideboxes-add-block.en.png new file mode 100644 index 0000000..98ab03a Binary files /dev/null and b/app/assets/images/doc/community-sideboxes-add-block.en.png differ diff --git a/app/assets/images/doc/community-sideboxes-add-block.pt.png b/app/assets/images/doc/community-sideboxes-add-block.pt.png new file mode 100644 index 0000000..d11b97f Binary files /dev/null and b/app/assets/images/doc/community-sideboxes-add-block.pt.png differ diff --git a/app/assets/images/doc/confirmation-adding-friend.en.png b/app/assets/images/doc/confirmation-adding-friend.en.png new file mode 100644 index 0000000..2842c02 Binary files /dev/null and b/app/assets/images/doc/confirmation-adding-friend.en.png differ diff --git a/app/assets/images/doc/confirmation-adding-friend.pt.png b/app/assets/images/doc/confirmation-adding-friend.pt.png new file mode 100644 index 0000000..4b97a5f Binary files /dev/null and b/app/assets/images/doc/confirmation-adding-friend.pt.png differ diff --git a/app/assets/images/doc/contact-button.en.png b/app/assets/images/doc/contact-button.en.png new file mode 100644 index 0000000..44d4098 Binary files /dev/null and b/app/assets/images/doc/contact-button.en.png differ diff --git a/app/assets/images/doc/contact-button.pt.png b/app/assets/images/doc/contact-button.pt.png new file mode 100644 index 0000000..53f8b3a Binary files /dev/null and b/app/assets/images/doc/contact-button.pt.png differ diff --git a/app/assets/images/doc/control-panel-change-password.en.png b/app/assets/images/doc/control-panel-change-password.en.png new file mode 100644 index 0000000..5b94cbc Binary files /dev/null and b/app/assets/images/doc/control-panel-change-password.en.png differ diff --git a/app/assets/images/doc/control-panel-change-password.pt.png b/app/assets/images/doc/control-panel-change-password.pt.png new file mode 100644 index 0000000..b9838ab Binary files /dev/null and b/app/assets/images/doc/control-panel-change-password.pt.png differ diff --git a/app/assets/images/doc/control-panel-community-edit-appearance.en.png b/app/assets/images/doc/control-panel-community-edit-appearance.en.png new file mode 100644 index 0000000..f3046d2 Binary files /dev/null and b/app/assets/images/doc/control-panel-community-edit-appearance.en.png differ diff --git a/app/assets/images/doc/control-panel-community-edit-appearance.pt.png b/app/assets/images/doc/control-panel-community-edit-appearance.pt.png new file mode 100644 index 0000000..3e5c95d Binary files /dev/null and b/app/assets/images/doc/control-panel-community-edit-appearance.pt.png differ diff --git a/app/assets/images/doc/control-panel-community-edit-header-footer.en.png b/app/assets/images/doc/control-panel-community-edit-header-footer.en.png new file mode 100644 index 0000000..9890418 Binary files /dev/null and b/app/assets/images/doc/control-panel-community-edit-header-footer.en.png differ diff --git a/app/assets/images/doc/control-panel-community-edit-header-footer.pt.png b/app/assets/images/doc/control-panel-community-edit-header-footer.pt.png new file mode 100644 index 0000000..9589ee9 Binary files /dev/null and b/app/assets/images/doc/control-panel-community-edit-header-footer.pt.png differ diff --git a/app/assets/images/doc/control-panel-community-edit-sideboxes.en.png b/app/assets/images/doc/control-panel-community-edit-sideboxes.en.png new file mode 100644 index 0000000..5440988 Binary files /dev/null and b/app/assets/images/doc/control-panel-community-edit-sideboxes.en.png differ diff --git a/app/assets/images/doc/control-panel-community-edit-sideboxes.pt.png b/app/assets/images/doc/control-panel-community-edit-sideboxes.pt.png new file mode 100644 index 0000000..6c9054f Binary files /dev/null and b/app/assets/images/doc/control-panel-community-edit-sideboxes.pt.png differ diff --git a/app/assets/images/doc/control-panel-content-management.en.png b/app/assets/images/doc/control-panel-content-management.en.png new file mode 100644 index 0000000..3671235 Binary files /dev/null and b/app/assets/images/doc/control-panel-content-management.en.png differ diff --git a/app/assets/images/doc/control-panel-content-management.pt.png b/app/assets/images/doc/control-panel-content-management.pt.png new file mode 100644 index 0000000..39c565d Binary files /dev/null and b/app/assets/images/doc/control-panel-content-management.pt.png differ diff --git a/app/assets/images/doc/control-panel-create-blog.en.png b/app/assets/images/doc/control-panel-create-blog.en.png new file mode 100644 index 0000000..3913701 Binary files /dev/null and b/app/assets/images/doc/control-panel-create-blog.en.png differ diff --git a/app/assets/images/doc/control-panel-create-blog.pt.png b/app/assets/images/doc/control-panel-create-blog.pt.png new file mode 100644 index 0000000..341adbd Binary files /dev/null and b/app/assets/images/doc/control-panel-create-blog.pt.png differ diff --git a/app/assets/images/doc/control-panel-disable-enterprise.en.png b/app/assets/images/doc/control-panel-disable-enterprise.en.png new file mode 100644 index 0000000..9fc1e15 Binary files /dev/null and b/app/assets/images/doc/control-panel-disable-enterprise.en.png differ diff --git a/app/assets/images/doc/control-panel-disable-enterprise.pt.png b/app/assets/images/doc/control-panel-disable-enterprise.pt.png new file mode 100644 index 0000000..c38e122 Binary files /dev/null and b/app/assets/images/doc/control-panel-disable-enterprise.pt.png differ diff --git a/app/assets/images/doc/control-panel-enterprise-edit-appearance.en.png b/app/assets/images/doc/control-panel-enterprise-edit-appearance.en.png new file mode 100644 index 0000000..9042254 Binary files /dev/null and b/app/assets/images/doc/control-panel-enterprise-edit-appearance.en.png differ diff --git a/app/assets/images/doc/control-panel-enterprise-edit-appearance.pt.png b/app/assets/images/doc/control-panel-enterprise-edit-appearance.pt.png new file mode 100644 index 0000000..47143dc Binary files /dev/null and b/app/assets/images/doc/control-panel-enterprise-edit-appearance.pt.png differ diff --git a/app/assets/images/doc/control-panel-enterprise-edit-header-footer.en.png b/app/assets/images/doc/control-panel-enterprise-edit-header-footer.en.png new file mode 100644 index 0000000..91c5aea Binary files /dev/null and b/app/assets/images/doc/control-panel-enterprise-edit-header-footer.en.png differ diff --git a/app/assets/images/doc/control-panel-enterprise-edit-header-footer.pt.png b/app/assets/images/doc/control-panel-enterprise-edit-header-footer.pt.png new file mode 100644 index 0000000..7821395 Binary files /dev/null and b/app/assets/images/doc/control-panel-enterprise-edit-header-footer.pt.png differ diff --git a/app/assets/images/doc/control-panel-enterprise-edit-profile-info.en.png b/app/assets/images/doc/control-panel-enterprise-edit-profile-info.en.png new file mode 100644 index 0000000..37d7736 Binary files /dev/null and b/app/assets/images/doc/control-panel-enterprise-edit-profile-info.en.png differ diff --git a/app/assets/images/doc/control-panel-enterprise-edit-profile-info.pt.png b/app/assets/images/doc/control-panel-enterprise-edit-profile-info.pt.png new file mode 100644 index 0000000..4727106 Binary files /dev/null and b/app/assets/images/doc/control-panel-enterprise-edit-profile-info.pt.png differ diff --git a/app/assets/images/doc/control-panel-enterprise-edit-sideboxes.en.png b/app/assets/images/doc/control-panel-enterprise-edit-sideboxes.en.png new file mode 100644 index 0000000..b403b01 Binary files /dev/null and b/app/assets/images/doc/control-panel-enterprise-edit-sideboxes.en.png differ diff --git a/app/assets/images/doc/control-panel-enterprise-edit-sideboxes.pt.png b/app/assets/images/doc/control-panel-enterprise-edit-sideboxes.pt.png new file mode 100644 index 0000000..b0e0e38 Binary files /dev/null and b/app/assets/images/doc/control-panel-enterprise-edit-sideboxes.pt.png differ diff --git a/app/assets/images/doc/control-panel-manage-groups.en.png b/app/assets/images/doc/control-panel-manage-groups.en.png new file mode 100644 index 0000000..d6be071 Binary files /dev/null and b/app/assets/images/doc/control-panel-manage-groups.en.png differ diff --git a/app/assets/images/doc/control-panel-manage-groups.pt.png b/app/assets/images/doc/control-panel-manage-groups.pt.png new file mode 100644 index 0000000..1648f81 Binary files /dev/null and b/app/assets/images/doc/control-panel-manage-groups.pt.png differ diff --git a/app/assets/images/doc/control-panel-manage-members.en.png b/app/assets/images/doc/control-panel-manage-members.en.png new file mode 100644 index 0000000..79069db Binary files /dev/null and b/app/assets/images/doc/control-panel-manage-members.en.png differ diff --git a/app/assets/images/doc/control-panel-manage-members.pt.png b/app/assets/images/doc/control-panel-manage-members.pt.png new file mode 100644 index 0000000..e41577d Binary files /dev/null and b/app/assets/images/doc/control-panel-manage-members.pt.png differ diff --git a/app/assets/images/doc/control-panel-manage-products.en.png b/app/assets/images/doc/control-panel-manage-products.en.png new file mode 100644 index 0000000..99884d9 Binary files /dev/null and b/app/assets/images/doc/control-panel-manage-products.en.png differ diff --git a/app/assets/images/doc/control-panel-manage-products.pt.png b/app/assets/images/doc/control-panel-manage-products.pt.png new file mode 100644 index 0000000..78a71bd Binary files /dev/null and b/app/assets/images/doc/control-panel-manage-products.pt.png differ diff --git a/app/assets/images/doc/control-panel-menu.en.png b/app/assets/images/doc/control-panel-menu.en.png new file mode 100644 index 0000000..b671241 Binary files /dev/null and b/app/assets/images/doc/control-panel-menu.en.png differ diff --git a/app/assets/images/doc/control-panel-menu.pt.png b/app/assets/images/doc/control-panel-menu.pt.png new file mode 100644 index 0000000..f57794c Binary files /dev/null and b/app/assets/images/doc/control-panel-menu.pt.png differ diff --git a/app/assets/images/doc/control-panel-person-delete-profile.en.png b/app/assets/images/doc/control-panel-person-delete-profile.en.png new file mode 100644 index 0000000..d8908a3 Binary files /dev/null and b/app/assets/images/doc/control-panel-person-delete-profile.en.png differ diff --git a/app/assets/images/doc/control-panel-person-delete-profile.pt.png b/app/assets/images/doc/control-panel-person-delete-profile.pt.png new file mode 100644 index 0000000..584ab75 Binary files /dev/null and b/app/assets/images/doc/control-panel-person-delete-profile.pt.png differ diff --git a/app/assets/images/doc/control-panel-person-edit-profile-info.en.png b/app/assets/images/doc/control-panel-person-edit-profile-info.en.png new file mode 100644 index 0000000..3634455 Binary files /dev/null and b/app/assets/images/doc/control-panel-person-edit-profile-info.en.png differ diff --git a/app/assets/images/doc/control-panel-person-edit-profile-info.pt.png b/app/assets/images/doc/control-panel-person-edit-profile-info.pt.png new file mode 100644 index 0000000..d728831 Binary files /dev/null and b/app/assets/images/doc/control-panel-person-edit-profile-info.pt.png differ diff --git a/app/assets/images/doc/control-panel-user-edit-appearance.en.png b/app/assets/images/doc/control-panel-user-edit-appearance.en.png new file mode 100644 index 0000000..043be82 Binary files /dev/null and b/app/assets/images/doc/control-panel-user-edit-appearance.en.png differ diff --git a/app/assets/images/doc/control-panel-user-edit-appearance.pt.png b/app/assets/images/doc/control-panel-user-edit-appearance.pt.png new file mode 100644 index 0000000..888e741 Binary files /dev/null and b/app/assets/images/doc/control-panel-user-edit-appearance.pt.png differ diff --git a/app/assets/images/doc/control-panel-user-edit-header-footer.en.png b/app/assets/images/doc/control-panel-user-edit-header-footer.en.png new file mode 100644 index 0000000..3f0f3b3 Binary files /dev/null and b/app/assets/images/doc/control-panel-user-edit-header-footer.en.png differ diff --git a/app/assets/images/doc/control-panel-user-edit-header-footer.pt.png b/app/assets/images/doc/control-panel-user-edit-header-footer.pt.png new file mode 100644 index 0000000..82aa363 Binary files /dev/null and b/app/assets/images/doc/control-panel-user-edit-header-footer.pt.png differ diff --git a/app/assets/images/doc/control-panel-user-edit-sideboxes.en.png b/app/assets/images/doc/control-panel-user-edit-sideboxes.en.png new file mode 100644 index 0000000..0e9684e Binary files /dev/null and b/app/assets/images/doc/control-panel-user-edit-sideboxes.en.png differ diff --git a/app/assets/images/doc/control-panel-user-edit-sideboxes.pt.png b/app/assets/images/doc/control-panel-user-edit-sideboxes.pt.png new file mode 100644 index 0000000..e7c183a Binary files /dev/null and b/app/assets/images/doc/control-panel-user-edit-sideboxes.pt.png differ diff --git a/app/assets/images/doc/control-panel-with-tasks.en.png b/app/assets/images/doc/control-panel-with-tasks.en.png new file mode 100644 index 0000000..7e070db Binary files /dev/null and b/app/assets/images/doc/control-panel-with-tasks.en.png differ diff --git a/app/assets/images/doc/control-panel-with-tasks.pt.png b/app/assets/images/doc/control-panel-with-tasks.pt.png new file mode 100644 index 0000000..0302de5 Binary files /dev/null and b/app/assets/images/doc/control-panel-with-tasks.pt.png differ diff --git a/app/assets/images/doc/disable-enterprise-confirmation.en.png b/app/assets/images/doc/disable-enterprise-confirmation.en.png new file mode 100644 index 0000000..4779e18 Binary files /dev/null and b/app/assets/images/doc/disable-enterprise-confirmation.en.png differ diff --git a/app/assets/images/doc/disable-enterprise-confirmation.pt.png b/app/assets/images/doc/disable-enterprise-confirmation.pt.png new file mode 100644 index 0000000..d885a97 Binary files /dev/null and b/app/assets/images/doc/disable-enterprise-confirmation.pt.png differ diff --git a/app/assets/images/doc/disabled-enterprise-block.en.png b/app/assets/images/doc/disabled-enterprise-block.en.png new file mode 100644 index 0000000..592367a Binary files /dev/null and b/app/assets/images/doc/disabled-enterprise-block.en.png differ diff --git a/app/assets/images/doc/disabled-enterprise-block.pt.png b/app/assets/images/doc/disabled-enterprise-block.pt.png new file mode 100644 index 0000000..23b9164 Binary files /dev/null and b/app/assets/images/doc/disabled-enterprise-block.pt.png differ diff --git a/app/assets/images/doc/edit-appearance.en.png b/app/assets/images/doc/edit-appearance.en.png new file mode 100644 index 0000000..94d5a30 Binary files /dev/null and b/app/assets/images/doc/edit-appearance.en.png differ diff --git a/app/assets/images/doc/edit-appearance.pt.png b/app/assets/images/doc/edit-appearance.pt.png new file mode 100644 index 0000000..7682d1f Binary files /dev/null and b/app/assets/images/doc/edit-appearance.pt.png differ diff --git a/app/assets/images/doc/edit-block.en.png b/app/assets/images/doc/edit-block.en.png new file mode 100644 index 0000000..fa0e8fc Binary files /dev/null and b/app/assets/images/doc/edit-block.en.png differ diff --git a/app/assets/images/doc/edit-block.pt.png b/app/assets/images/doc/edit-block.pt.png new file mode 100644 index 0000000..6168fbc Binary files /dev/null and b/app/assets/images/doc/edit-block.pt.png differ diff --git a/app/assets/images/doc/edit-header-footer.en.png b/app/assets/images/doc/edit-header-footer.en.png new file mode 100644 index 0000000..e5aed7b Binary files /dev/null and b/app/assets/images/doc/edit-header-footer.en.png differ diff --git a/app/assets/images/doc/edit-header-footer.pt.png b/app/assets/images/doc/edit-header-footer.pt.png new file mode 100644 index 0000000..b112891 Binary files /dev/null and b/app/assets/images/doc/edit-header-footer.pt.png differ diff --git a/app/assets/images/doc/enterprise-activation-box.en.png b/app/assets/images/doc/enterprise-activation-box.en.png new file mode 100644 index 0000000..e28acbb Binary files /dev/null and b/app/assets/images/doc/enterprise-activation-box.en.png differ diff --git a/app/assets/images/doc/enterprise-activation-box.pt.png b/app/assets/images/doc/enterprise-activation-box.pt.png new file mode 100644 index 0000000..a18c614 Binary files /dev/null and b/app/assets/images/doc/enterprise-activation-box.pt.png differ diff --git a/app/assets/images/doc/enterprise-activation-terms.en.png b/app/assets/images/doc/enterprise-activation-terms.en.png new file mode 100644 index 0000000..4262657 Binary files /dev/null and b/app/assets/images/doc/enterprise-activation-terms.en.png differ diff --git a/app/assets/images/doc/enterprise-activation-terms.pt.png b/app/assets/images/doc/enterprise-activation-terms.pt.png new file mode 100644 index 0000000..b900b92 Binary files /dev/null and b/app/assets/images/doc/enterprise-activation-terms.pt.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-categories.en.png b/app/assets/images/doc/enterprise-edit-profile-categories.en.png new file mode 100644 index 0000000..6756ca3 Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-categories.en.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-categories.pt.png b/app/assets/images/doc/enterprise-edit-profile-categories.pt.png new file mode 100644 index 0000000..b189075 Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-categories.pt.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-info-add-picture.en.png b/app/assets/images/doc/enterprise-edit-profile-info-add-picture.en.png new file mode 100644 index 0000000..653b816 Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-info-add-picture.en.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-info-add-picture.pt.png b/app/assets/images/doc/enterprise-edit-profile-info-add-picture.pt.png new file mode 100644 index 0000000..cf82fed Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-info-add-picture.pt.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-info-change-picture.en.png b/app/assets/images/doc/enterprise-edit-profile-info-change-picture.en.png new file mode 100644 index 0000000..d342a76 Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-info-change-picture.en.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-info-change-picture.pt.png b/app/assets/images/doc/enterprise-edit-profile-info-change-picture.pt.png new file mode 100644 index 0000000..0b67347 Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-info-change-picture.pt.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-info-general-information.en.png b/app/assets/images/doc/enterprise-edit-profile-info-general-information.en.png new file mode 100644 index 0000000..5bbdacf Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-info-general-information.en.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-info-general-information.pt.png b/app/assets/images/doc/enterprise-edit-profile-info-general-information.pt.png new file mode 100644 index 0000000..6c4665f Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-info-general-information.pt.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-info-moderation-options.en.png b/app/assets/images/doc/enterprise-edit-profile-info-moderation-options.en.png new file mode 100644 index 0000000..de4f009 Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-info-moderation-options.en.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-info-moderation-options.pt.png b/app/assets/images/doc/enterprise-edit-profile-info-moderation-options.pt.png new file mode 100644 index 0000000..6cbce4d Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-info-moderation-options.pt.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-privacy-options.en.png b/app/assets/images/doc/enterprise-edit-profile-privacy-options.en.png new file mode 100644 index 0000000..9bf2f36 Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-privacy-options.en.png differ diff --git a/app/assets/images/doc/enterprise-edit-profile-privacy-options.pt.png b/app/assets/images/doc/enterprise-edit-profile-privacy-options.pt.png new file mode 100644 index 0000000..7abad6f Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-profile-privacy-options.pt.png differ diff --git a/app/assets/images/doc/enterprise-edit-sideboxes.en.png b/app/assets/images/doc/enterprise-edit-sideboxes.en.png new file mode 100644 index 0000000..9709b04 Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-sideboxes.en.png differ diff --git a/app/assets/images/doc/enterprise-edit-sideboxes.pt.png b/app/assets/images/doc/enterprise-edit-sideboxes.pt.png new file mode 100644 index 0000000..685383d Binary files /dev/null and b/app/assets/images/doc/enterprise-edit-sideboxes.pt.png differ diff --git a/app/assets/images/doc/enterprise-image-block.en.png b/app/assets/images/doc/enterprise-image-block.en.png new file mode 100644 index 0000000..5706beb Binary files /dev/null and b/app/assets/images/doc/enterprise-image-block.en.png differ diff --git a/app/assets/images/doc/enterprise-image-block.pt.png b/app/assets/images/doc/enterprise-image-block.pt.png new file mode 100644 index 0000000..de0465c Binary files /dev/null and b/app/assets/images/doc/enterprise-image-block.pt.png differ diff --git a/app/assets/images/doc/enterprise-info-block.en.png b/app/assets/images/doc/enterprise-info-block.en.png new file mode 100644 index 0000000..b14cfa9 Binary files /dev/null and b/app/assets/images/doc/enterprise-info-block.en.png differ diff --git a/app/assets/images/doc/enterprise-info-block.pt.png b/app/assets/images/doc/enterprise-info-block.pt.png new file mode 100644 index 0000000..dcef6a8 Binary files /dev/null and b/app/assets/images/doc/enterprise-info-block.pt.png differ diff --git a/app/assets/images/doc/enterprise-members-list.en.png b/app/assets/images/doc/enterprise-members-list.en.png new file mode 100644 index 0000000..b548320 Binary files /dev/null and b/app/assets/images/doc/enterprise-members-list.en.png differ diff --git a/app/assets/images/doc/enterprise-members-list.pt.png b/app/assets/images/doc/enterprise-members-list.pt.png new file mode 100644 index 0000000..3aaf647 Binary files /dev/null and b/app/assets/images/doc/enterprise-members-list.pt.png differ diff --git a/app/assets/images/doc/enterprise-network-block.en.png b/app/assets/images/doc/enterprise-network-block.en.png new file mode 100644 index 0000000..558d307 Binary files /dev/null and b/app/assets/images/doc/enterprise-network-block.en.png differ diff --git a/app/assets/images/doc/enterprise-network-block.pt.png b/app/assets/images/doc/enterprise-network-block.pt.png new file mode 100644 index 0000000..35a607c Binary files /dev/null and b/app/assets/images/doc/enterprise-network-block.pt.png differ diff --git a/app/assets/images/doc/enterprise-new-product-last-category.en.png b/app/assets/images/doc/enterprise-new-product-last-category.en.png new file mode 100644 index 0000000..af9e3b2 Binary files /dev/null and b/app/assets/images/doc/enterprise-new-product-last-category.en.png differ diff --git a/app/assets/images/doc/enterprise-new-product-no-category.en.png b/app/assets/images/doc/enterprise-new-product-no-category.en.png new file mode 100644 index 0000000..9805877 Binary files /dev/null and b/app/assets/images/doc/enterprise-new-product-no-category.en.png differ diff --git a/app/assets/images/doc/enterprise-new-product-second-category.en.png b/app/assets/images/doc/enterprise-new-product-second-category.en.png new file mode 100644 index 0000000..e19ef19 Binary files /dev/null and b/app/assets/images/doc/enterprise-new-product-second-category.en.png differ diff --git a/app/assets/images/doc/enterprise-product-add-input-button.en.png b/app/assets/images/doc/enterprise-product-add-input-button.en.png new file mode 100644 index 0000000..7cb22f1 Binary files /dev/null and b/app/assets/images/doc/enterprise-product-add-input-button.en.png differ diff --git a/app/assets/images/doc/enterprise-product-add-input-form.en.png b/app/assets/images/doc/enterprise-product-add-input-form.en.png new file mode 100644 index 0000000..0165230 Binary files /dev/null and b/app/assets/images/doc/enterprise-product-add-input-form.en.png differ diff --git a/app/assets/images/doc/enterprise-product-change-image-form.en.png b/app/assets/images/doc/enterprise-product-change-image-form.en.png new file mode 100644 index 0000000..52a3d21 Binary files /dev/null and b/app/assets/images/doc/enterprise-product-change-image-form.en.png differ diff --git a/app/assets/images/doc/enterprise-product-complete.en.png b/app/assets/images/doc/enterprise-product-complete.en.png new file mode 100644 index 0000000..70a14d4 Binary files /dev/null and b/app/assets/images/doc/enterprise-product-complete.en.png differ diff --git a/app/assets/images/doc/enterprise-product-edit-basic-info-form.en.png b/app/assets/images/doc/enterprise-product-edit-basic-info-form.en.png new file mode 100644 index 0000000..3ff2d5f Binary files /dev/null and b/app/assets/images/doc/enterprise-product-edit-basic-info-form.en.png differ diff --git a/app/assets/images/doc/enterprise-product-edit-description-form.en.png b/app/assets/images/doc/enterprise-product-edit-description-form.en.png new file mode 100644 index 0000000..4572f12 Binary files /dev/null and b/app/assets/images/doc/enterprise-product-edit-description-form.en.png differ diff --git a/app/assets/images/doc/enterprise-product-edit-name-form.en.png b/app/assets/images/doc/enterprise-product-edit-name-form.en.png new file mode 100644 index 0000000..e32e399 Binary files /dev/null and b/app/assets/images/doc/enterprise-product-edit-name-form.en.png differ diff --git a/app/assets/images/doc/enterprise-product-list-new-product-button.en.png b/app/assets/images/doc/enterprise-product-list-new-product-button.en.png new file mode 100644 index 0000000..0286dc1 Binary files /dev/null and b/app/assets/images/doc/enterprise-product-list-new-product-button.en.png differ diff --git a/app/assets/images/doc/enterprise-product-list-new-product-button.pt.png b/app/assets/images/doc/enterprise-product-list-new-product-button.pt.png new file mode 100644 index 0000000..c769dbe Binary files /dev/null and b/app/assets/images/doc/enterprise-product-list-new-product-button.pt.png differ diff --git a/app/assets/images/doc/enterprise-product.en.png b/app/assets/images/doc/enterprise-product.en.png new file mode 100644 index 0000000..04ab1ed Binary files /dev/null and b/app/assets/images/doc/enterprise-product.en.png differ diff --git a/app/assets/images/doc/enterprise-sideboxes-add-block.en.png b/app/assets/images/doc/enterprise-sideboxes-add-block.en.png new file mode 100644 index 0000000..4b3dae0 Binary files /dev/null and b/app/assets/images/doc/enterprise-sideboxes-add-block.en.png differ diff --git a/app/assets/images/doc/enterprise-sideboxes-add-block.pt.png b/app/assets/images/doc/enterprise-sideboxes-add-block.pt.png new file mode 100644 index 0000000..fb01164 Binary files /dev/null and b/app/assets/images/doc/enterprise-sideboxes-add-block.pt.png differ diff --git a/app/assets/images/doc/enterprises-block.en.png b/app/assets/images/doc/enterprises-block.en.png new file mode 100644 index 0000000..7ce8361 Binary files /dev/null and b/app/assets/images/doc/enterprises-block.en.png differ diff --git a/app/assets/images/doc/enterprises-block.pt.png b/app/assets/images/doc/enterprises-block.pt.png new file mode 100644 index 0000000..4300756 Binary files /dev/null and b/app/assets/images/doc/enterprises-block.pt.png differ diff --git a/app/assets/images/doc/enterprises-search-field.en.png b/app/assets/images/doc/enterprises-search-field.en.png new file mode 100644 index 0000000..edfbe04 Binary files /dev/null and b/app/assets/images/doc/enterprises-search-field.en.png differ diff --git a/app/assets/images/doc/enterprises-search-field.pt.png b/app/assets/images/doc/enterprises-search-field.pt.png new file mode 100644 index 0000000..32ccdba Binary files /dev/null and b/app/assets/images/doc/enterprises-search-field.pt.png differ diff --git a/app/assets/images/doc/enterprises-search-results-with-example.en.png b/app/assets/images/doc/enterprises-search-results-with-example.en.png new file mode 100644 index 0000000..259f05f Binary files /dev/null and b/app/assets/images/doc/enterprises-search-results-with-example.en.png differ diff --git a/app/assets/images/doc/enterprises-search-results-with-example.pt.png b/app/assets/images/doc/enterprises-search-results-with-example.pt.png new file mode 100644 index 0000000..32ccdba Binary files /dev/null and b/app/assets/images/doc/enterprises-search-results-with-example.pt.png differ diff --git a/app/assets/images/doc/environment-homepage-with-login-button.en.png b/app/assets/images/doc/environment-homepage-with-login-button.en.png new file mode 100644 index 0000000..763258a Binary files /dev/null and b/app/assets/images/doc/environment-homepage-with-login-button.en.png differ diff --git a/app/assets/images/doc/environment-homepage-with-login-button.pt.png b/app/assets/images/doc/environment-homepage-with-login-button.pt.png new file mode 100644 index 0000000..e334d46 Binary files /dev/null and b/app/assets/images/doc/environment-homepage-with-login-button.pt.png differ diff --git a/app/assets/images/doc/favorite-enterprises-block.en.png b/app/assets/images/doc/favorite-enterprises-block.en.png new file mode 100644 index 0000000..31863db Binary files /dev/null and b/app/assets/images/doc/favorite-enterprises-block.en.png differ diff --git a/app/assets/images/doc/favorite-enterprises-block.pt.png b/app/assets/images/doc/favorite-enterprises-block.pt.png new file mode 100644 index 0000000..0f51963 Binary files /dev/null and b/app/assets/images/doc/favorite-enterprises-block.pt.png differ diff --git a/app/assets/images/doc/feed-reader-block.en.png b/app/assets/images/doc/feed-reader-block.en.png new file mode 100644 index 0000000..7ae67dd Binary files /dev/null and b/app/assets/images/doc/feed-reader-block.en.png differ diff --git a/app/assets/images/doc/feed-reader-block.pt.png b/app/assets/images/doc/feed-reader-block.pt.png new file mode 100644 index 0000000..44d4b65 Binary files /dev/null and b/app/assets/images/doc/feed-reader-block.pt.png differ diff --git a/app/assets/images/doc/friends-block.en.png b/app/assets/images/doc/friends-block.en.png new file mode 100644 index 0000000..6a1a522 Binary files /dev/null and b/app/assets/images/doc/friends-block.en.png differ diff --git a/app/assets/images/doc/friends-block.pt.png b/app/assets/images/doc/friends-block.pt.png new file mode 100644 index 0000000..14ef697 Binary files /dev/null and b/app/assets/images/doc/friends-block.pt.png differ diff --git a/app/assets/images/doc/gallery-buttons.en.png b/app/assets/images/doc/gallery-buttons.en.png new file mode 100644 index 0000000..cd757fb Binary files /dev/null and b/app/assets/images/doc/gallery-buttons.en.png differ diff --git a/app/assets/images/doc/gallery-buttons.pt.png b/app/assets/images/doc/gallery-buttons.pt.png new file mode 100644 index 0000000..62cc7ca Binary files /dev/null and b/app/assets/images/doc/gallery-buttons.pt.png differ diff --git a/app/assets/images/doc/groups-list-with-create-community.en.png b/app/assets/images/doc/groups-list-with-create-community.en.png new file mode 100644 index 0000000..c39383d Binary files /dev/null and b/app/assets/images/doc/groups-list-with-create-community.en.png differ diff --git a/app/assets/images/doc/groups-list-with-create-community.pt.png b/app/assets/images/doc/groups-list-with-create-community.pt.png new file mode 100644 index 0000000..677b1e3 Binary files /dev/null and b/app/assets/images/doc/groups-list-with-create-community.pt.png differ diff --git a/app/assets/images/doc/groups-list-with-manage-community.en.png b/app/assets/images/doc/groups-list-with-manage-community.en.png new file mode 100644 index 0000000..0dddd50 Binary files /dev/null and b/app/assets/images/doc/groups-list-with-manage-community.en.png differ diff --git a/app/assets/images/doc/groups-list-with-manage-community.pt.png b/app/assets/images/doc/groups-list-with-manage-community.pt.png new file mode 100644 index 0000000..5cafebe Binary files /dev/null and b/app/assets/images/doc/groups-list-with-manage-community.pt.png differ diff --git a/app/assets/images/doc/groups-list-with-manage-enterprise.en.png b/app/assets/images/doc/groups-list-with-manage-enterprise.en.png new file mode 100644 index 0000000..d882c53 Binary files /dev/null and b/app/assets/images/doc/groups-list-with-manage-enterprise.en.png differ diff --git a/app/assets/images/doc/groups-list-with-manage-enterprise.pt.png b/app/assets/images/doc/groups-list-with-manage-enterprise.pt.png new file mode 100644 index 0000000..a767ccd Binary files /dev/null and b/app/assets/images/doc/groups-list-with-manage-enterprise.pt.png differ diff --git a/app/assets/images/doc/join-community-confirmation.en.png b/app/assets/images/doc/join-community-confirmation.en.png new file mode 100644 index 0000000..3cf45ee Binary files /dev/null and b/app/assets/images/doc/join-community-confirmation.en.png differ diff --git a/app/assets/images/doc/join-community-confirmation.pt.png b/app/assets/images/doc/join-community-confirmation.pt.png new file mode 100644 index 0000000..3a9bda9 Binary files /dev/null and b/app/assets/images/doc/join-community-confirmation.pt.png differ diff --git a/app/assets/images/doc/joining-community-button.en.png b/app/assets/images/doc/joining-community-button.en.png new file mode 100644 index 0000000..d943e66 Binary files /dev/null and b/app/assets/images/doc/joining-community-button.en.png differ diff --git a/app/assets/images/doc/joining-community-button.pt.png b/app/assets/images/doc/joining-community-button.pt.png new file mode 100644 index 0000000..d7febd8 Binary files /dev/null and b/app/assets/images/doc/joining-community-button.pt.png differ diff --git a/app/assets/images/doc/links-block.en.png b/app/assets/images/doc/links-block.en.png new file mode 100644 index 0000000..f78bddf Binary files /dev/null and b/app/assets/images/doc/links-block.en.png differ diff --git a/app/assets/images/doc/links-block.pt.png b/app/assets/images/doc/links-block.pt.png new file mode 100644 index 0000000..1d55f4b Binary files /dev/null and b/app/assets/images/doc/links-block.pt.png differ diff --git a/app/assets/images/doc/location-map-block.en.png b/app/assets/images/doc/location-map-block.en.png new file mode 100644 index 0000000..b199417 Binary files /dev/null and b/app/assets/images/doc/location-map-block.en.png differ diff --git a/app/assets/images/doc/location-map-block.pt.png b/app/assets/images/doc/location-map-block.pt.png new file mode 100644 index 0000000..3c356d5 Binary files /dev/null and b/app/assets/images/doc/location-map-block.pt.png differ diff --git a/app/assets/images/doc/manage-friends.en.png b/app/assets/images/doc/manage-friends.en.png new file mode 100644 index 0000000..3ffb496 Binary files /dev/null and b/app/assets/images/doc/manage-friends.en.png differ diff --git a/app/assets/images/doc/manage-friends.pt.png b/app/assets/images/doc/manage-friends.pt.png new file mode 100644 index 0000000..c2c969b Binary files /dev/null and b/app/assets/images/doc/manage-friends.pt.png differ diff --git a/app/assets/images/doc/members-block.en.png b/app/assets/images/doc/members-block.en.png new file mode 100644 index 0000000..eb38bdb Binary files /dev/null and b/app/assets/images/doc/members-block.en.png differ diff --git a/app/assets/images/doc/members-block.pt.png b/app/assets/images/doc/members-block.pt.png new file mode 100644 index 0000000..700d188 Binary files /dev/null and b/app/assets/images/doc/members-block.pt.png differ diff --git a/app/assets/images/doc/menu-admin.en.png b/app/assets/images/doc/menu-admin.en.png new file mode 100644 index 0000000..e1a0e5f Binary files /dev/null and b/app/assets/images/doc/menu-admin.en.png differ diff --git a/app/assets/images/doc/menu-admin.pt.png b/app/assets/images/doc/menu-admin.pt.png new file mode 100644 index 0000000..dad58fa Binary files /dev/null and b/app/assets/images/doc/menu-admin.pt.png differ diff --git a/app/assets/images/doc/menu-communities.en.png b/app/assets/images/doc/menu-communities.en.png new file mode 100644 index 0000000..b20ec3f Binary files /dev/null and b/app/assets/images/doc/menu-communities.en.png differ diff --git a/app/assets/images/doc/menu-communities.pt.png b/app/assets/images/doc/menu-communities.pt.png new file mode 100644 index 0000000..21ca281 Binary files /dev/null and b/app/assets/images/doc/menu-communities.pt.png differ diff --git a/app/assets/images/doc/menu-control-panel.en.png b/app/assets/images/doc/menu-control-panel.en.png new file mode 100644 index 0000000..b671241 Binary files /dev/null and b/app/assets/images/doc/menu-control-panel.en.png differ diff --git a/app/assets/images/doc/menu-control-panel.pt.png b/app/assets/images/doc/menu-control-panel.pt.png new file mode 100644 index 0000000..f57794c Binary files /dev/null and b/app/assets/images/doc/menu-control-panel.pt.png differ diff --git a/app/assets/images/doc/menu-enterprises.en.png b/app/assets/images/doc/menu-enterprises.en.png new file mode 100644 index 0000000..a4cb929 Binary files /dev/null and b/app/assets/images/doc/menu-enterprises.en.png differ diff --git a/app/assets/images/doc/menu-enterprises.pt.png b/app/assets/images/doc/menu-enterprises.pt.png new file mode 100644 index 0000000..5131f18 Binary files /dev/null and b/app/assets/images/doc/menu-enterprises.pt.png differ diff --git a/app/assets/images/doc/menu-logout.en.png b/app/assets/images/doc/menu-logout.en.png new file mode 100644 index 0000000..b9cf98b Binary files /dev/null and b/app/assets/images/doc/menu-logout.en.png differ diff --git a/app/assets/images/doc/menu-logout.pt.png b/app/assets/images/doc/menu-logout.pt.png new file mode 100644 index 0000000..8958acc Binary files /dev/null and b/app/assets/images/doc/menu-logout.pt.png differ diff --git a/app/assets/images/doc/menu-more-active-communities.en.png b/app/assets/images/doc/menu-more-active-communities.en.png new file mode 100644 index 0000000..1386852 Binary files /dev/null and b/app/assets/images/doc/menu-more-active-communities.en.png differ diff --git a/app/assets/images/doc/menu-more-active-communities.pt.png b/app/assets/images/doc/menu-more-active-communities.pt.png new file mode 100644 index 0000000..5a9f7b4 Binary files /dev/null and b/app/assets/images/doc/menu-more-active-communities.pt.png differ diff --git a/app/assets/images/doc/menu-more-active-people.en.png b/app/assets/images/doc/menu-more-active-people.en.png new file mode 100644 index 0000000..a52b8f8 Binary files /dev/null and b/app/assets/images/doc/menu-more-active-people.en.png differ diff --git a/app/assets/images/doc/menu-more-active-people.pt.png b/app/assets/images/doc/menu-more-active-people.pt.png new file mode 100644 index 0000000..ff662eb Binary files /dev/null and b/app/assets/images/doc/menu-more-active-people.pt.png differ diff --git a/app/assets/images/doc/menu-more-popular-communities.en.png b/app/assets/images/doc/menu-more-popular-communities.en.png new file mode 100644 index 0000000..20c473f Binary files /dev/null and b/app/assets/images/doc/menu-more-popular-communities.en.png differ diff --git a/app/assets/images/doc/menu-more-popular-communities.pt.png b/app/assets/images/doc/menu-more-popular-communities.pt.png new file mode 100644 index 0000000..a7699d8 Binary files /dev/null and b/app/assets/images/doc/menu-more-popular-communities.pt.png differ diff --git a/app/assets/images/doc/menu-more-popular-people.en.png b/app/assets/images/doc/menu-more-popular-people.en.png new file mode 100644 index 0000000..99db373 Binary files /dev/null and b/app/assets/images/doc/menu-more-popular-people.en.png differ diff --git a/app/assets/images/doc/menu-more-popular-people.pt.png b/app/assets/images/doc/menu-more-popular-people.pt.png new file mode 100644 index 0000000..8643597 Binary files /dev/null and b/app/assets/images/doc/menu-more-popular-people.pt.png differ diff --git a/app/assets/images/doc/menu-more-recent-communities.en.png b/app/assets/images/doc/menu-more-recent-communities.en.png new file mode 100644 index 0000000..7d4af84 Binary files /dev/null and b/app/assets/images/doc/menu-more-recent-communities.en.png differ diff --git a/app/assets/images/doc/menu-more-recent-communities.pt.png b/app/assets/images/doc/menu-more-recent-communities.pt.png new file mode 100644 index 0000000..149ebd3 Binary files /dev/null and b/app/assets/images/doc/menu-more-recent-communities.pt.png differ diff --git a/app/assets/images/doc/menu-more-recent-people.en.png b/app/assets/images/doc/menu-more-recent-people.en.png new file mode 100644 index 0000000..1deaa69 Binary files /dev/null and b/app/assets/images/doc/menu-more-recent-people.en.png differ diff --git a/app/assets/images/doc/menu-more-recent-people.pt.png b/app/assets/images/doc/menu-more-recent-people.pt.png new file mode 100644 index 0000000..0de31be Binary files /dev/null and b/app/assets/images/doc/menu-more-recent-people.pt.png differ diff --git a/app/assets/images/doc/menu-people.en.png b/app/assets/images/doc/menu-people.en.png new file mode 100644 index 0000000..6a84b6a Binary files /dev/null and b/app/assets/images/doc/menu-people.en.png differ diff --git a/app/assets/images/doc/menu-people.pt.png b/app/assets/images/doc/menu-people.pt.png new file mode 100644 index 0000000..08353ef Binary files /dev/null and b/app/assets/images/doc/menu-people.pt.png differ diff --git a/app/assets/images/doc/menu-products.en.png b/app/assets/images/doc/menu-products.en.png new file mode 100644 index 0000000..1b062c1 Binary files /dev/null and b/app/assets/images/doc/menu-products.en.png differ diff --git a/app/assets/images/doc/menu-products.pt.png b/app/assets/images/doc/menu-products.pt.png new file mode 100644 index 0000000..45cebfe Binary files /dev/null and b/app/assets/images/doc/menu-products.pt.png differ diff --git a/app/assets/images/doc/menu-search.en.png b/app/assets/images/doc/menu-search.en.png new file mode 100644 index 0000000..e718ba6 Binary files /dev/null and b/app/assets/images/doc/menu-search.en.png differ diff --git a/app/assets/images/doc/menu-search.pt.png b/app/assets/images/doc/menu-search.pt.png new file mode 100644 index 0000000..df3bfa1 Binary files /dev/null and b/app/assets/images/doc/menu-search.pt.png differ diff --git a/app/assets/images/doc/more-active-communities-detail.en.png b/app/assets/images/doc/more-active-communities-detail.en.png new file mode 100644 index 0000000..d5cc3c4 Binary files /dev/null and b/app/assets/images/doc/more-active-communities-detail.en.png differ diff --git a/app/assets/images/doc/more-active-communities-detail.pt.png b/app/assets/images/doc/more-active-communities-detail.pt.png new file mode 100644 index 0000000..0e6f41c Binary files /dev/null and b/app/assets/images/doc/more-active-communities-detail.pt.png differ diff --git a/app/assets/images/doc/more-active-communities-with-example.en.png b/app/assets/images/doc/more-active-communities-with-example.en.png new file mode 100644 index 0000000..570e2c3 Binary files /dev/null and b/app/assets/images/doc/more-active-communities-with-example.en.png differ diff --git a/app/assets/images/doc/more-active-communities-with-example.pt.png b/app/assets/images/doc/more-active-communities-with-example.pt.png new file mode 100644 index 0000000..ee863f4 Binary files /dev/null and b/app/assets/images/doc/more-active-communities-with-example.pt.png differ diff --git a/app/assets/images/doc/more-active-communities.en.png b/app/assets/images/doc/more-active-communities.en.png new file mode 100644 index 0000000..add1251 Binary files /dev/null and b/app/assets/images/doc/more-active-communities.en.png differ diff --git a/app/assets/images/doc/more-active-communities.pt.png b/app/assets/images/doc/more-active-communities.pt.png new file mode 100644 index 0000000..665636a Binary files /dev/null and b/app/assets/images/doc/more-active-communities.pt.png differ diff --git a/app/assets/images/doc/more-active-people-detail.en.png b/app/assets/images/doc/more-active-people-detail.en.png new file mode 100644 index 0000000..e9d0e3f Binary files /dev/null and b/app/assets/images/doc/more-active-people-detail.en.png differ diff --git a/app/assets/images/doc/more-active-people-detail.pt.png b/app/assets/images/doc/more-active-people-detail.pt.png new file mode 100644 index 0000000..0344790 Binary files /dev/null and b/app/assets/images/doc/more-active-people-detail.pt.png differ diff --git a/app/assets/images/doc/more-active-people-with-example.en.png b/app/assets/images/doc/more-active-people-with-example.en.png new file mode 100644 index 0000000..1b04b79 Binary files /dev/null and b/app/assets/images/doc/more-active-people-with-example.en.png differ diff --git a/app/assets/images/doc/more-active-people-with-example.pt.png b/app/assets/images/doc/more-active-people-with-example.pt.png new file mode 100644 index 0000000..f140310 Binary files /dev/null and b/app/assets/images/doc/more-active-people-with-example.pt.png differ diff --git a/app/assets/images/doc/more-active-people.en.png b/app/assets/images/doc/more-active-people.en.png new file mode 100644 index 0000000..130e22b Binary files /dev/null and b/app/assets/images/doc/more-active-people.en.png differ diff --git a/app/assets/images/doc/more-active-people.pt.png b/app/assets/images/doc/more-active-people.pt.png new file mode 100644 index 0000000..4642ab2 Binary files /dev/null and b/app/assets/images/doc/more-active-people.pt.png differ diff --git a/app/assets/images/doc/more-popular-communities-detail.en.png b/app/assets/images/doc/more-popular-communities-detail.en.png new file mode 100644 index 0000000..cfc3847 Binary files /dev/null and b/app/assets/images/doc/more-popular-communities-detail.en.png differ diff --git a/app/assets/images/doc/more-popular-communities-detail.pt.png b/app/assets/images/doc/more-popular-communities-detail.pt.png new file mode 100644 index 0000000..01864e0 Binary files /dev/null and b/app/assets/images/doc/more-popular-communities-detail.pt.png differ diff --git a/app/assets/images/doc/more-popular-communities-with-example.en.png b/app/assets/images/doc/more-popular-communities-with-example.en.png new file mode 100644 index 0000000..16ef87c Binary files /dev/null and b/app/assets/images/doc/more-popular-communities-with-example.en.png differ diff --git a/app/assets/images/doc/more-popular-communities-with-example.pt.png b/app/assets/images/doc/more-popular-communities-with-example.pt.png new file mode 100644 index 0000000..60898cf Binary files /dev/null and b/app/assets/images/doc/more-popular-communities-with-example.pt.png differ diff --git a/app/assets/images/doc/more-popular-communities.en.png b/app/assets/images/doc/more-popular-communities.en.png new file mode 100644 index 0000000..67b082a Binary files /dev/null and b/app/assets/images/doc/more-popular-communities.en.png differ diff --git a/app/assets/images/doc/more-popular-communities.pt.png b/app/assets/images/doc/more-popular-communities.pt.png new file mode 100644 index 0000000..3450281 Binary files /dev/null and b/app/assets/images/doc/more-popular-communities.pt.png differ diff --git a/app/assets/images/doc/more-popular-people-detail.en.png b/app/assets/images/doc/more-popular-people-detail.en.png new file mode 100644 index 0000000..6e1b7bc Binary files /dev/null and b/app/assets/images/doc/more-popular-people-detail.en.png differ diff --git a/app/assets/images/doc/more-popular-people-detail.pt.png b/app/assets/images/doc/more-popular-people-detail.pt.png new file mode 100644 index 0000000..06f1745 Binary files /dev/null and b/app/assets/images/doc/more-popular-people-detail.pt.png differ diff --git a/app/assets/images/doc/more-popular-people-with-example.en.png b/app/assets/images/doc/more-popular-people-with-example.en.png new file mode 100644 index 0000000..9b7ef12 Binary files /dev/null and b/app/assets/images/doc/more-popular-people-with-example.en.png differ diff --git a/app/assets/images/doc/more-popular-people-with-example.pt.png b/app/assets/images/doc/more-popular-people-with-example.pt.png new file mode 100644 index 0000000..c7128c8 Binary files /dev/null and b/app/assets/images/doc/more-popular-people-with-example.pt.png differ diff --git a/app/assets/images/doc/more-popular-people.en.png b/app/assets/images/doc/more-popular-people.en.png new file mode 100644 index 0000000..2832686 Binary files /dev/null and b/app/assets/images/doc/more-popular-people.en.png differ diff --git a/app/assets/images/doc/more-popular-people.pt.png b/app/assets/images/doc/more-popular-people.pt.png new file mode 100644 index 0000000..1b2503a Binary files /dev/null and b/app/assets/images/doc/more-popular-people.pt.png differ diff --git a/app/assets/images/doc/more-recent-communities-detail.en.png b/app/assets/images/doc/more-recent-communities-detail.en.png new file mode 100644 index 0000000..068b152 Binary files /dev/null and b/app/assets/images/doc/more-recent-communities-detail.en.png differ diff --git a/app/assets/images/doc/more-recent-communities-detail.pt.png b/app/assets/images/doc/more-recent-communities-detail.pt.png new file mode 100644 index 0000000..0721376 Binary files /dev/null and b/app/assets/images/doc/more-recent-communities-detail.pt.png differ diff --git a/app/assets/images/doc/more-recent-communities-with-example.en.png b/app/assets/images/doc/more-recent-communities-with-example.en.png new file mode 100644 index 0000000..2abac00 Binary files /dev/null and b/app/assets/images/doc/more-recent-communities-with-example.en.png differ diff --git a/app/assets/images/doc/more-recent-communities-with-example.pt.png b/app/assets/images/doc/more-recent-communities-with-example.pt.png new file mode 100644 index 0000000..09716a1 Binary files /dev/null and b/app/assets/images/doc/more-recent-communities-with-example.pt.png differ diff --git a/app/assets/images/doc/more-recent-communities.en.png b/app/assets/images/doc/more-recent-communities.en.png new file mode 100644 index 0000000..0493f25 Binary files /dev/null and b/app/assets/images/doc/more-recent-communities.en.png differ diff --git a/app/assets/images/doc/more-recent-communities.pt.png b/app/assets/images/doc/more-recent-communities.pt.png new file mode 100644 index 0000000..8a34986 Binary files /dev/null and b/app/assets/images/doc/more-recent-communities.pt.png differ diff --git a/app/assets/images/doc/more-recent-people-detail.en.png b/app/assets/images/doc/more-recent-people-detail.en.png new file mode 100644 index 0000000..ae90142 Binary files /dev/null and b/app/assets/images/doc/more-recent-people-detail.en.png differ diff --git a/app/assets/images/doc/more-recent-people-detail.pt.png b/app/assets/images/doc/more-recent-people-detail.pt.png new file mode 100644 index 0000000..d4db2ed Binary files /dev/null and b/app/assets/images/doc/more-recent-people-detail.pt.png differ diff --git a/app/assets/images/doc/more-recent-people-with-example.en.png b/app/assets/images/doc/more-recent-people-with-example.en.png new file mode 100644 index 0000000..36e2cdc Binary files /dev/null and b/app/assets/images/doc/more-recent-people-with-example.en.png differ diff --git a/app/assets/images/doc/more-recent-people-with-example.pt.png b/app/assets/images/doc/more-recent-people-with-example.pt.png new file mode 100644 index 0000000..5698821 Binary files /dev/null and b/app/assets/images/doc/more-recent-people-with-example.pt.png differ diff --git a/app/assets/images/doc/more-recent-people.en.png b/app/assets/images/doc/more-recent-people.en.png new file mode 100644 index 0000000..ab7b97d Binary files /dev/null and b/app/assets/images/doc/more-recent-people.en.png differ diff --git a/app/assets/images/doc/more-recent-people.pt.png b/app/assets/images/doc/more-recent-people.pt.png new file mode 100644 index 0000000..7b30cd0 Binary files /dev/null and b/app/assets/images/doc/more-recent-people.pt.png differ diff --git a/app/assets/images/doc/new-folder.en.png b/app/assets/images/doc/new-folder.en.png new file mode 100644 index 0000000..634f519 Binary files /dev/null and b/app/assets/images/doc/new-folder.en.png differ diff --git a/app/assets/images/doc/new-folder.pt.png b/app/assets/images/doc/new-folder.pt.png new file mode 100644 index 0000000..4653f24 Binary files /dev/null and b/app/assets/images/doc/new-folder.pt.png differ diff --git a/app/assets/images/doc/open-comment-box-for-logged-in.en.png b/app/assets/images/doc/open-comment-box-for-logged-in.en.png new file mode 100644 index 0000000..ee961b6 Binary files /dev/null and b/app/assets/images/doc/open-comment-box-for-logged-in.en.png differ diff --git a/app/assets/images/doc/open-comment-box-for-logged-in.pt.png b/app/assets/images/doc/open-comment-box-for-logged-in.pt.png new file mode 100644 index 0000000..280f91e Binary files /dev/null and b/app/assets/images/doc/open-comment-box-for-logged-in.pt.png differ diff --git a/app/assets/images/doc/open-comment-box-for-not-logged-in.en.png b/app/assets/images/doc/open-comment-box-for-not-logged-in.en.png new file mode 100644 index 0000000..8389815 Binary files /dev/null and b/app/assets/images/doc/open-comment-box-for-not-logged-in.en.png differ diff --git a/app/assets/images/doc/open-comment-box-for-not-logged-in.pt.png b/app/assets/images/doc/open-comment-box-for-not-logged-in.pt.png new file mode 100644 index 0000000..c7bcb36 Binary files /dev/null and b/app/assets/images/doc/open-comment-box-for-not-logged-in.pt.png differ diff --git a/app/assets/images/doc/other-person-view-profile-link.en.png b/app/assets/images/doc/other-person-view-profile-link.en.png new file mode 100644 index 0000000..e5cded2 Binary files /dev/null and b/app/assets/images/doc/other-person-view-profile-link.en.png differ diff --git a/app/assets/images/doc/other-person-view-profile-link.pt.png b/app/assets/images/doc/other-person-view-profile-link.pt.png new file mode 100644 index 0000000..e4397cb Binary files /dev/null and b/app/assets/images/doc/other-person-view-profile-link.pt.png differ diff --git a/app/assets/images/doc/people-search-field.en.png b/app/assets/images/doc/people-search-field.en.png new file mode 100644 index 0000000..cf471d3 Binary files /dev/null and b/app/assets/images/doc/people-search-field.en.png differ diff --git a/app/assets/images/doc/people-search-field.pt.png b/app/assets/images/doc/people-search-field.pt.png new file mode 100644 index 0000000..57ffc74 Binary files /dev/null and b/app/assets/images/doc/people-search-field.pt.png differ diff --git a/app/assets/images/doc/people-search-results-with-example.en.png b/app/assets/images/doc/people-search-results-with-example.en.png new file mode 100644 index 0000000..2b61988 Binary files /dev/null and b/app/assets/images/doc/people-search-results-with-example.en.png differ diff --git a/app/assets/images/doc/people-search-results-with-example.pt.png b/app/assets/images/doc/people-search-results-with-example.pt.png new file mode 100644 index 0000000..77d8f18 Binary files /dev/null and b/app/assets/images/doc/people-search-results-with-example.pt.png differ diff --git a/app/assets/images/doc/person-activities-list.en.png b/app/assets/images/doc/person-activities-list.en.png new file mode 100644 index 0000000..ccc9517 Binary files /dev/null and b/app/assets/images/doc/person-activities-list.en.png differ diff --git a/app/assets/images/doc/person-activities-list.pt.png b/app/assets/images/doc/person-activities-list.pt.png new file mode 100644 index 0000000..b919a42 Binary files /dev/null and b/app/assets/images/doc/person-activities-list.pt.png differ diff --git a/app/assets/images/doc/person-balloon-closed-en.png b/app/assets/images/doc/person-balloon-closed-en.png new file mode 100644 index 0000000..3064935 Binary files /dev/null and b/app/assets/images/doc/person-balloon-closed-en.png differ diff --git a/app/assets/images/doc/person-balloon-closed.en.png b/app/assets/images/doc/person-balloon-closed.en.png new file mode 100644 index 0000000..3064935 Binary files /dev/null and b/app/assets/images/doc/person-balloon-closed.en.png differ diff --git a/app/assets/images/doc/person-balloon-en.png b/app/assets/images/doc/person-balloon-en.png new file mode 100644 index 0000000..8c4d269 Binary files /dev/null and b/app/assets/images/doc/person-balloon-en.png differ diff --git a/app/assets/images/doc/person-balloon-pt.png b/app/assets/images/doc/person-balloon-pt.png new file mode 100644 index 0000000..3760f58 Binary files /dev/null and b/app/assets/images/doc/person-balloon-pt.png differ diff --git a/app/assets/images/doc/person-balloon.en.png b/app/assets/images/doc/person-balloon.en.png new file mode 100644 index 0000000..8c4d269 Binary files /dev/null and b/app/assets/images/doc/person-balloon.en.png differ diff --git a/app/assets/images/doc/person-balloon.pt.png b/app/assets/images/doc/person-balloon.pt.png new file mode 100644 index 0000000..3760f58 Binary files /dev/null and b/app/assets/images/doc/person-balloon.pt.png differ diff --git a/app/assets/images/doc/person-delete-profile-confirmation.en.png b/app/assets/images/doc/person-delete-profile-confirmation.en.png new file mode 100644 index 0000000..616c46a Binary files /dev/null and b/app/assets/images/doc/person-delete-profile-confirmation.en.png differ diff --git a/app/assets/images/doc/person-delete-profile-confirmation.pt.png b/app/assets/images/doc/person-delete-profile-confirmation.pt.png new file mode 100644 index 0000000..95e5534 Binary files /dev/null and b/app/assets/images/doc/person-delete-profile-confirmation.pt.png differ diff --git a/app/assets/images/doc/person-edit-profile-categories.en.png b/app/assets/images/doc/person-edit-profile-categories.en.png new file mode 100644 index 0000000..32d966c Binary files /dev/null and b/app/assets/images/doc/person-edit-profile-categories.en.png differ diff --git a/app/assets/images/doc/person-edit-profile-categories.pt.png b/app/assets/images/doc/person-edit-profile-categories.pt.png new file mode 100644 index 0000000..dc47ac8 Binary files /dev/null and b/app/assets/images/doc/person-edit-profile-categories.pt.png differ diff --git a/app/assets/images/doc/person-edit-profile-info-change-picture.en.png b/app/assets/images/doc/person-edit-profile-info-change-picture.en.png new file mode 100644 index 0000000..b7aa99b Binary files /dev/null and b/app/assets/images/doc/person-edit-profile-info-change-picture.en.png differ diff --git a/app/assets/images/doc/person-edit-profile-info-change-picture.pt.png b/app/assets/images/doc/person-edit-profile-info-change-picture.pt.png new file mode 100644 index 0000000..35fa301 Binary files /dev/null and b/app/assets/images/doc/person-edit-profile-info-change-picture.pt.png differ diff --git a/app/assets/images/doc/person-edit-profile-info-general-informationen.en.png b/app/assets/images/doc/person-edit-profile-info-general-informationen.en.png new file mode 100644 index 0000000..5af4467 Binary files /dev/null and b/app/assets/images/doc/person-edit-profile-info-general-informationen.en.png differ diff --git a/app/assets/images/doc/person-edit-profile-info-general-informationen.pt.png b/app/assets/images/doc/person-edit-profile-info-general-informationen.pt.png new file mode 100644 index 0000000..914deee Binary files /dev/null and b/app/assets/images/doc/person-edit-profile-info-general-informationen.pt.png differ diff --git a/app/assets/images/doc/person-edit-profile-privacy-options.en.png b/app/assets/images/doc/person-edit-profile-privacy-options.en.png new file mode 100644 index 0000000..a07b387 Binary files /dev/null and b/app/assets/images/doc/person-edit-profile-privacy-options.en.png differ diff --git a/app/assets/images/doc/person-edit-profile-privacy-options.pt.png b/app/assets/images/doc/person-edit-profile-privacy-options.pt.png new file mode 100644 index 0000000..0d5e36e Binary files /dev/null and b/app/assets/images/doc/person-edit-profile-privacy-options.pt.png differ diff --git a/app/assets/images/doc/person-view-profile-link.en.png b/app/assets/images/doc/person-view-profile-link.en.png new file mode 100644 index 0000000..d377257 Binary files /dev/null and b/app/assets/images/doc/person-view-profile-link.en.png differ diff --git a/app/assets/images/doc/person-view-profile-link.pt.png b/app/assets/images/doc/person-view-profile-link.pt.png new file mode 100644 index 0000000..ebbc18c Binary files /dev/null and b/app/assets/images/doc/person-view-profile-link.pt.png differ diff --git a/app/assets/images/doc/person-wall-scrap-reply-button.en.png b/app/assets/images/doc/person-wall-scrap-reply-button.en.png new file mode 100644 index 0000000..ece6b73 Binary files /dev/null and b/app/assets/images/doc/person-wall-scrap-reply-button.en.png differ diff --git a/app/assets/images/doc/person-wall-scrap-reply-form.en.png b/app/assets/images/doc/person-wall-scrap-reply-form.en.png new file mode 100644 index 0000000..86b3c9d Binary files /dev/null and b/app/assets/images/doc/person-wall-scrap-reply-form.en.png differ diff --git a/app/assets/images/doc/person-wall-scrap-reply-form.pt.png b/app/assets/images/doc/person-wall-scrap-reply-form.pt.png new file mode 100644 index 0000000..df274f1 Binary files /dev/null and b/app/assets/images/doc/person-wall-scrap-reply-form.pt.png differ diff --git a/app/assets/images/doc/person-wall-scrap-reply-sent.en.png b/app/assets/images/doc/person-wall-scrap-reply-sent.en.png new file mode 100644 index 0000000..d6449f9 Binary files /dev/null and b/app/assets/images/doc/person-wall-scrap-reply-sent.en.png differ diff --git a/app/assets/images/doc/person-wall-scrap-reply-sent.pt.png b/app/assets/images/doc/person-wall-scrap-reply-sent.pt.png new file mode 100644 index 0000000..6638852 Binary files /dev/null and b/app/assets/images/doc/person-wall-scrap-reply-sent.pt.png differ diff --git a/app/assets/images/doc/person-wall-scrap-sent.en.png b/app/assets/images/doc/person-wall-scrap-sent.en.png new file mode 100644 index 0000000..078e429 Binary files /dev/null and b/app/assets/images/doc/person-wall-scrap-sent.en.png differ diff --git a/app/assets/images/doc/person-wall-scrap-sent.pt.png b/app/assets/images/doc/person-wall-scrap-sent.pt.png new file mode 100644 index 0000000..bb515a3 Binary files /dev/null and b/app/assets/images/doc/person-wall-scrap-sent.pt.png differ diff --git a/app/assets/images/doc/person-wall-writing-scrap.en.png b/app/assets/images/doc/person-wall-writing-scrap.en.png new file mode 100644 index 0000000..2cde381 Binary files /dev/null and b/app/assets/images/doc/person-wall-writing-scrap.en.png differ diff --git a/app/assets/images/doc/person-wall-writing-scrap.pt.png b/app/assets/images/doc/person-wall-writing-scrap.pt.png new file mode 100644 index 0000000..a08711a Binary files /dev/null and b/app/assets/images/doc/person-wall-writing-scrap.pt.png differ diff --git a/app/assets/images/doc/products-block.en.png b/app/assets/images/doc/products-block.en.png new file mode 100644 index 0000000..c171cb8 Binary files /dev/null and b/app/assets/images/doc/products-block.en.png differ diff --git a/app/assets/images/doc/products-block.pt.png b/app/assets/images/doc/products-block.pt.png new file mode 100644 index 0000000..5717295 Binary files /dev/null and b/app/assets/images/doc/products-block.pt.png differ diff --git a/app/assets/images/doc/products-search-field.en.png b/app/assets/images/doc/products-search-field.en.png new file mode 100644 index 0000000..d2a880b Binary files /dev/null and b/app/assets/images/doc/products-search-field.en.png differ diff --git a/app/assets/images/doc/products-search-field.pt.png b/app/assets/images/doc/products-search-field.pt.png new file mode 100644 index 0000000..a62dd0f Binary files /dev/null and b/app/assets/images/doc/products-search-field.pt.png differ diff --git a/app/assets/images/doc/products-search-results-with-example.en.png b/app/assets/images/doc/products-search-results-with-example.en.png new file mode 100644 index 0000000..b4fb506 Binary files /dev/null and b/app/assets/images/doc/products-search-results-with-example.en.png differ diff --git a/app/assets/images/doc/products-search-results-with-example.pt.png b/app/assets/images/doc/products-search-results-with-example.pt.png new file mode 100644 index 0000000..18b5dc2 Binary files /dev/null and b/app/assets/images/doc/products-search-results-with-example.pt.png differ diff --git a/app/assets/images/doc/profile-image-block.en.png b/app/assets/images/doc/profile-image-block.en.png new file mode 100644 index 0000000..7f619a3 Binary files /dev/null and b/app/assets/images/doc/profile-image-block.en.png differ diff --git a/app/assets/images/doc/profile-image-block.pt.png b/app/assets/images/doc/profile-image-block.pt.png new file mode 100644 index 0000000..f6e6946 Binary files /dev/null and b/app/assets/images/doc/profile-image-block.pt.png differ diff --git a/app/assets/images/doc/profile-info-block.en.png b/app/assets/images/doc/profile-info-block.en.png new file mode 100644 index 0000000..94cbf0d Binary files /dev/null and b/app/assets/images/doc/profile-info-block.en.png differ diff --git a/app/assets/images/doc/profile-info-block.pt.png b/app/assets/images/doc/profile-info-block.pt.png new file mode 100644 index 0000000..dcf6748 Binary files /dev/null and b/app/assets/images/doc/profile-info-block.pt.png differ diff --git a/app/assets/images/doc/profile-with-button-to-add-friends.en.png b/app/assets/images/doc/profile-with-button-to-add-friends.en.png new file mode 100644 index 0000000..48581d6 Binary files /dev/null and b/app/assets/images/doc/profile-with-button-to-add-friends.en.png differ diff --git a/app/assets/images/doc/profile-with-button-to-add-friends.pt.png b/app/assets/images/doc/profile-with-button-to-add-friends.pt.png new file mode 100644 index 0000000..170df82 Binary files /dev/null and b/app/assets/images/doc/profile-with-button-to-add-friends.pt.png differ diff --git a/app/assets/images/doc/recent-content-block.en.png b/app/assets/images/doc/recent-content-block.en.png new file mode 100644 index 0000000..67820c1 Binary files /dev/null and b/app/assets/images/doc/recent-content-block.en.png differ diff --git a/app/assets/images/doc/recent-content-block.pt.png b/app/assets/images/doc/recent-content-block.pt.png new file mode 100644 index 0000000..82b66df Binary files /dev/null and b/app/assets/images/doc/recent-content-block.pt.png differ diff --git a/app/assets/images/doc/remove-comment-confirmation.en.png b/app/assets/images/doc/remove-comment-confirmation.en.png new file mode 100644 index 0000000..080521e Binary files /dev/null and b/app/assets/images/doc/remove-comment-confirmation.en.png differ diff --git a/app/assets/images/doc/remove-comment-confirmation.pt.png b/app/assets/images/doc/remove-comment-confirmation.pt.png new file mode 100644 index 0000000..d18800f Binary files /dev/null and b/app/assets/images/doc/remove-comment-confirmation.pt.png differ diff --git a/app/assets/images/doc/remove-friend-confirmation.en.png b/app/assets/images/doc/remove-friend-confirmation.en.png new file mode 100644 index 0000000..3df6993 Binary files /dev/null and b/app/assets/images/doc/remove-friend-confirmation.en.png differ diff --git a/app/assets/images/doc/remove-friend-confirmation.pt.png b/app/assets/images/doc/remove-friend-confirmation.pt.png new file mode 100644 index 0000000..ffa872b Binary files /dev/null and b/app/assets/images/doc/remove-friend-confirmation.pt.png differ diff --git a/app/assets/images/doc/remove-friend.en.png b/app/assets/images/doc/remove-friend.en.png new file mode 100644 index 0000000..cf49657 Binary files /dev/null and b/app/assets/images/doc/remove-friend.en.png differ diff --git a/app/assets/images/doc/remove-friend.pt.png b/app/assets/images/doc/remove-friend.pt.png new file mode 100644 index 0000000..d4bd284 Binary files /dev/null and b/app/assets/images/doc/remove-friend.pt.png differ diff --git a/app/assets/images/doc/search-more-options-open.en.png b/app/assets/images/doc/search-more-options-open.en.png new file mode 100644 index 0000000..bf29bce Binary files /dev/null and b/app/assets/images/doc/search-more-options-open.en.png differ diff --git a/app/assets/images/doc/search-more-options-open.pt.png b/app/assets/images/doc/search-more-options-open.pt.png new file mode 100644 index 0000000..0b01730 Binary files /dev/null and b/app/assets/images/doc/search-more-options-open.pt.png differ diff --git a/app/assets/images/doc/search-more-options.en.png b/app/assets/images/doc/search-more-options.en.png new file mode 100644 index 0000000..a99e4ba Binary files /dev/null and b/app/assets/images/doc/search-more-options.en.png differ diff --git a/app/assets/images/doc/search-more-options.pt.png b/app/assets/images/doc/search-more-options.pt.png new file mode 100644 index 0000000..a7b60af Binary files /dev/null and b/app/assets/images/doc/search-more-options.pt.png differ diff --git a/app/assets/images/doc/search-results-with-example.en.png b/app/assets/images/doc/search-results-with-example.en.png new file mode 100644 index 0000000..3e730dd Binary files /dev/null and b/app/assets/images/doc/search-results-with-example.en.png differ diff --git a/app/assets/images/doc/search-results-with-example.pt.png b/app/assets/images/doc/search-results-with-example.pt.png new file mode 100644 index 0000000..43e8137 Binary files /dev/null and b/app/assets/images/doc/search-results-with-example.pt.png differ diff --git a/app/assets/images/doc/search-view-all-results-with-example.en.png b/app/assets/images/doc/search-view-all-results-with-example.en.png new file mode 100644 index 0000000..08ff053 Binary files /dev/null and b/app/assets/images/doc/search-view-all-results-with-example.en.png differ diff --git a/app/assets/images/doc/search-view-all-results-with-example.pt.png b/app/assets/images/doc/search-view-all-results-with-example.pt.png new file mode 100644 index 0000000..d1c173b Binary files /dev/null and b/app/assets/images/doc/search-view-all-results-with-example.pt.png differ diff --git a/app/assets/images/doc/send-message.en.png b/app/assets/images/doc/send-message.en.png new file mode 100644 index 0000000..e6c9ef3 Binary files /dev/null and b/app/assets/images/doc/send-message.en.png differ diff --git a/app/assets/images/doc/send-message.pt.png b/app/assets/images/doc/send-message.pt.png new file mode 100644 index 0000000..32ed844 Binary files /dev/null and b/app/assets/images/doc/send-message.pt.png differ diff --git a/app/assets/images/doc/signup-form.en.png b/app/assets/images/doc/signup-form.en.png new file mode 100644 index 0000000..f489a13 Binary files /dev/null and b/app/assets/images/doc/signup-form.en.png differ diff --git a/app/assets/images/doc/signup-form.pt.png b/app/assets/images/doc/signup-form.pt.png new file mode 100644 index 0000000..60ccf71 Binary files /dev/null and b/app/assets/images/doc/signup-form.pt.png differ diff --git a/app/assets/images/doc/slideshow-block.en.png b/app/assets/images/doc/slideshow-block.en.png new file mode 100644 index 0000000..ad40088 Binary files /dev/null and b/app/assets/images/doc/slideshow-block.en.png differ diff --git a/app/assets/images/doc/slideshow-block.pt.png b/app/assets/images/doc/slideshow-block.pt.png new file mode 100644 index 0000000..6539ef1 Binary files /dev/null and b/app/assets/images/doc/slideshow-block.pt.png differ diff --git a/app/assets/images/doc/system-homepage-top-menu-admin.en.png b/app/assets/images/doc/system-homepage-top-menu-admin.en.png new file mode 100644 index 0000000..f944d32 Binary files /dev/null and b/app/assets/images/doc/system-homepage-top-menu-admin.en.png differ diff --git a/app/assets/images/doc/system-homepage-top-menu-admin.pt.png b/app/assets/images/doc/system-homepage-top-menu-admin.pt.png new file mode 100644 index 0000000..f8657b5 Binary files /dev/null and b/app/assets/images/doc/system-homepage-top-menu-admin.pt.png differ diff --git a/app/assets/images/doc/system-homepage-top-menu.en.png b/app/assets/images/doc/system-homepage-top-menu.en.png new file mode 100644 index 0000000..d91ac30 Binary files /dev/null and b/app/assets/images/doc/system-homepage-top-menu.en.png differ diff --git a/app/assets/images/doc/system-homepage-top-menu.pt.png b/app/assets/images/doc/system-homepage-top-menu.pt.png new file mode 100644 index 0000000..5be24a0 Binary files /dev/null and b/app/assets/images/doc/system-homepage-top-menu.pt.png differ diff --git a/app/assets/images/doc/tags-block.en.png b/app/assets/images/doc/tags-block.en.png new file mode 100644 index 0000000..71e4614 Binary files /dev/null and b/app/assets/images/doc/tags-block.en.png differ diff --git a/app/assets/images/doc/tags-block.pt.png b/app/assets/images/doc/tags-block.pt.png new file mode 100644 index 0000000..7fe5c45 Binary files /dev/null and b/app/assets/images/doc/tags-block.pt.png differ diff --git a/app/assets/images/doc/tasks-list-approval-request.en.png b/app/assets/images/doc/tasks-list-approval-request.en.png new file mode 100644 index 0000000..86aa0f7 Binary files /dev/null and b/app/assets/images/doc/tasks-list-approval-request.en.png differ diff --git a/app/assets/images/doc/tasks-list-approval-request.pt.png b/app/assets/images/doc/tasks-list-approval-request.pt.png new file mode 100644 index 0000000..d791c22 Binary files /dev/null and b/app/assets/images/doc/tasks-list-approval-request.pt.png differ diff --git a/app/assets/images/doc/tasks-list-friendship-request.en.png b/app/assets/images/doc/tasks-list-friendship-request.en.png new file mode 100644 index 0000000..9eca09b Binary files /dev/null and b/app/assets/images/doc/tasks-list-friendship-request.en.png differ diff --git a/app/assets/images/doc/tasks-list-friendship-request.pt.png b/app/assets/images/doc/tasks-list-friendship-request.pt.png new file mode 100644 index 0000000..dba9678 Binary files /dev/null and b/app/assets/images/doc/tasks-list-friendship-request.pt.png differ diff --git a/app/assets/images/doc/tasks-list-membership-request.en.png b/app/assets/images/doc/tasks-list-membership-request.en.png new file mode 100644 index 0000000..253131e Binary files /dev/null and b/app/assets/images/doc/tasks-list-membership-request.en.png differ diff --git a/app/assets/images/doc/tasks-list-membership-request.pt.png b/app/assets/images/doc/tasks-list-membership-request.pt.png new file mode 100644 index 0000000..47e5177 Binary files /dev/null and b/app/assets/images/doc/tasks-list-membership-request.pt.png differ diff --git a/app/assets/images/doc/top-menu.en.png b/app/assets/images/doc/top-menu.en.png new file mode 100644 index 0000000..8c5ae7b Binary files /dev/null and b/app/assets/images/doc/top-menu.en.png differ diff --git a/app/assets/images/doc/top-menu.pt.png b/app/assets/images/doc/top-menu.pt.png new file mode 100644 index 0000000..c2f7dbb Binary files /dev/null and b/app/assets/images/doc/top-menu.pt.png differ diff --git a/app/assets/images/doc/uploading-files-to-gallery.en.png b/app/assets/images/doc/uploading-files-to-gallery.en.png new file mode 100644 index 0000000..39484fd Binary files /dev/null and b/app/assets/images/doc/uploading-files-to-gallery.en.png differ diff --git a/app/assets/images/doc/uploading-files-to-gallery.pt.png b/app/assets/images/doc/uploading-files-to-gallery.pt.png new file mode 100644 index 0000000..70a8139 Binary files /dev/null and b/app/assets/images/doc/uploading-files-to-gallery.pt.png differ diff --git a/app/assets/images/doc/user-edit-sideboxes.en.png b/app/assets/images/doc/user-edit-sideboxes.en.png new file mode 100644 index 0000000..20a8544 Binary files /dev/null and b/app/assets/images/doc/user-edit-sideboxes.en.png differ diff --git a/app/assets/images/doc/user-edit-sideboxes.pt.png b/app/assets/images/doc/user-edit-sideboxes.pt.png new file mode 100644 index 0000000..56eda23 Binary files /dev/null and b/app/assets/images/doc/user-edit-sideboxes.pt.png differ diff --git a/app/assets/images/doc/user-friends-with-invitation-button.en.png b/app/assets/images/doc/user-friends-with-invitation-button.en.png new file mode 100644 index 0000000..6038b0c Binary files /dev/null and b/app/assets/images/doc/user-friends-with-invitation-button.en.png differ diff --git a/app/assets/images/doc/user-friends-with-invitation-button.pt.png b/app/assets/images/doc/user-friends-with-invitation-button.pt.png new file mode 100644 index 0000000..ca08852 Binary files /dev/null and b/app/assets/images/doc/user-friends-with-invitation-button.pt.png differ diff --git a/app/assets/images/doc/user-import-invitation-step-1.en.png b/app/assets/images/doc/user-import-invitation-step-1.en.png new file mode 100644 index 0000000..3bec3f8 Binary files /dev/null and b/app/assets/images/doc/user-import-invitation-step-1.en.png differ diff --git a/app/assets/images/doc/user-import-invitation-step-1.pt.png b/app/assets/images/doc/user-import-invitation-step-1.pt.png new file mode 100644 index 0000000..5179c0d Binary files /dev/null and b/app/assets/images/doc/user-import-invitation-step-1.pt.png differ diff --git a/app/assets/images/doc/user-import-invitation-step-2.en.png b/app/assets/images/doc/user-import-invitation-step-2.en.png new file mode 100644 index 0000000..58be9b7 Binary files /dev/null and b/app/assets/images/doc/user-import-invitation-step-2.en.png differ diff --git a/app/assets/images/doc/user-import-invitation-step-2.pt.png b/app/assets/images/doc/user-import-invitation-step-2.pt.png new file mode 100644 index 0000000..e617358 Binary files /dev/null and b/app/assets/images/doc/user-import-invitation-step-2.pt.png differ diff --git a/app/assets/images/doc/user-manually-invitation-step-1.en.png b/app/assets/images/doc/user-manually-invitation-step-1.en.png new file mode 100644 index 0000000..7148034 Binary files /dev/null and b/app/assets/images/doc/user-manually-invitation-step-1.en.png differ diff --git a/app/assets/images/doc/user-manually-invitation-step-1.pt.png b/app/assets/images/doc/user-manually-invitation-step-1.pt.png new file mode 100644 index 0000000..572cda1 Binary files /dev/null and b/app/assets/images/doc/user-manually-invitation-step-1.pt.png differ diff --git a/app/assets/images/doc/user-manually-invitation-step-2.en.png b/app/assets/images/doc/user-manually-invitation-step-2.en.png new file mode 100644 index 0000000..5c8e47d Binary files /dev/null and b/app/assets/images/doc/user-manually-invitation-step-2.en.png differ diff --git a/app/assets/images/doc/user-manually-invitation-step-2.pt.png b/app/assets/images/doc/user-manually-invitation-step-2.pt.png new file mode 100644 index 0000000..3f8e07b Binary files /dev/null and b/app/assets/images/doc/user-manually-invitation-step-2.pt.png differ diff --git a/app/assets/images/doc/user-network-block.en.png b/app/assets/images/doc/user-network-block.en.png new file mode 100644 index 0000000..4e55939 Binary files /dev/null and b/app/assets/images/doc/user-network-block.en.png differ diff --git a/app/assets/images/doc/user-network-block.pt.png b/app/assets/images/doc/user-network-block.pt.png new file mode 100644 index 0000000..01d89ba Binary files /dev/null and b/app/assets/images/doc/user-network-block.pt.png differ diff --git a/app/assets/images/doc/user-sideboxes-add-block.en.png b/app/assets/images/doc/user-sideboxes-add-block.en.png new file mode 100644 index 0000000..eaad923 Binary files /dev/null and b/app/assets/images/doc/user-sideboxes-add-block.en.png differ diff --git a/app/assets/images/doc/user-sideboxes-add-block.pt.png b/app/assets/images/doc/user-sideboxes-add-block.pt.png new file mode 100644 index 0000000..2eb9907 Binary files /dev/null and b/app/assets/images/doc/user-sideboxes-add-block.pt.png differ diff --git a/app/assets/images/doc/wysiwyg-buttons.en.png b/app/assets/images/doc/wysiwyg-buttons.en.png new file mode 100644 index 0000000..dbdf4d2 Binary files /dev/null and b/app/assets/images/doc/wysiwyg-buttons.en.png differ diff --git a/app/assets/images/doc/wysiwyg-buttons.pt.png b/app/assets/images/doc/wysiwyg-buttons.pt.png new file mode 100644 index 0000000..8c5faca Binary files /dev/null and b/app/assets/images/doc/wysiwyg-buttons.pt.png differ diff --git a/app/assets/images/dotleaders.png b/app/assets/images/dotleaders.png new file mode 100644 index 0000000..8359ba2 Binary files /dev/null and b/app/assets/images/dotleaders.png differ diff --git a/app/assets/images/down-arrow.png b/app/assets/images/down-arrow.png new file mode 100644 index 0000000..9e6b5dc Binary files /dev/null and b/app/assets/images/down-arrow.png differ diff --git a/app/assets/images/ecosol-tree-sprite.png b/app/assets/images/ecosol-tree-sprite.png new file mode 100644 index 0000000..843a71d Binary files /dev/null and b/app/assets/images/ecosol-tree-sprite.png differ diff --git a/app/assets/images/fancybox/blank.gif b/app/assets/images/fancybox/blank.gif new file mode 100644 index 0000000..35d42e8 Binary files /dev/null and b/app/assets/images/fancybox/blank.gif differ diff --git a/app/assets/images/fancybox/fancy_close.png b/app/assets/images/fancybox/fancy_close.png new file mode 100644 index 0000000..0703530 Binary files /dev/null and b/app/assets/images/fancybox/fancy_close.png differ diff --git a/app/assets/images/fancybox/fancy_loading.png b/app/assets/images/fancybox/fancy_loading.png new file mode 100644 index 0000000..2503017 Binary files /dev/null and b/app/assets/images/fancybox/fancy_loading.png differ diff --git a/app/assets/images/fancybox/fancy_nav_left.png b/app/assets/images/fancybox/fancy_nav_left.png new file mode 100644 index 0000000..ebaa6a4 Binary files /dev/null and b/app/assets/images/fancybox/fancy_nav_left.png differ diff --git a/app/assets/images/fancybox/fancy_nav_right.png b/app/assets/images/fancybox/fancy_nav_right.png new file mode 100644 index 0000000..873294e Binary files /dev/null and b/app/assets/images/fancybox/fancy_nav_right.png differ diff --git a/app/assets/images/fancybox/fancy_shadow_e.png b/app/assets/images/fancybox/fancy_shadow_e.png new file mode 100644 index 0000000..2eda089 Binary files /dev/null and b/app/assets/images/fancybox/fancy_shadow_e.png differ diff --git a/app/assets/images/fancybox/fancy_shadow_n.png b/app/assets/images/fancybox/fancy_shadow_n.png new file mode 100644 index 0000000..69aa10e Binary files /dev/null and b/app/assets/images/fancybox/fancy_shadow_n.png differ diff --git a/app/assets/images/fancybox/fancy_shadow_ne.png b/app/assets/images/fancybox/fancy_shadow_ne.png new file mode 100644 index 0000000..79f6980 Binary files /dev/null and b/app/assets/images/fancybox/fancy_shadow_ne.png differ diff --git a/app/assets/images/fancybox/fancy_shadow_nw.png b/app/assets/images/fancybox/fancy_shadow_nw.png new file mode 100644 index 0000000..7182cd9 Binary files /dev/null and b/app/assets/images/fancybox/fancy_shadow_nw.png differ diff --git a/app/assets/images/fancybox/fancy_shadow_s.png b/app/assets/images/fancybox/fancy_shadow_s.png new file mode 100644 index 0000000..d8858bf Binary files /dev/null and b/app/assets/images/fancybox/fancy_shadow_s.png differ diff --git a/app/assets/images/fancybox/fancy_shadow_se.png b/app/assets/images/fancybox/fancy_shadow_se.png new file mode 100644 index 0000000..541e3ff Binary files /dev/null and b/app/assets/images/fancybox/fancy_shadow_se.png differ diff --git a/app/assets/images/fancybox/fancy_shadow_sw.png b/app/assets/images/fancybox/fancy_shadow_sw.png new file mode 100644 index 0000000..b451689 Binary files /dev/null and b/app/assets/images/fancybox/fancy_shadow_sw.png differ diff --git a/app/assets/images/fancybox/fancy_shadow_w.png b/app/assets/images/fancybox/fancy_shadow_w.png new file mode 100644 index 0000000..8a4e4a8 Binary files /dev/null and b/app/assets/images/fancybox/fancy_shadow_w.png differ diff --git a/app/assets/images/fancybox/fancy_title_left.png b/app/assets/images/fancybox/fancy_title_left.png new file mode 100644 index 0000000..6049223 Binary files /dev/null and b/app/assets/images/fancybox/fancy_title_left.png differ diff --git a/app/assets/images/fancybox/fancy_title_main.png b/app/assets/images/fancybox/fancy_title_main.png new file mode 100644 index 0000000..8044271 Binary files /dev/null and b/app/assets/images/fancybox/fancy_title_main.png differ diff --git a/app/assets/images/fancybox/fancy_title_over.png b/app/assets/images/fancybox/fancy_title_over.png new file mode 100644 index 0000000..d9f458f Binary files /dev/null and b/app/assets/images/fancybox/fancy_title_over.png differ diff --git a/app/assets/images/fancybox/fancy_title_right.png b/app/assets/images/fancybox/fancy_title_right.png new file mode 100644 index 0000000..e36d9db Binary files /dev/null and b/app/assets/images/fancybox/fancy_title_right.png differ diff --git a/app/assets/images/fancybox/fancybox-x.png b/app/assets/images/fancybox/fancybox-x.png new file mode 100644 index 0000000..c2130f8 Binary files /dev/null and b/app/assets/images/fancybox/fancybox-x.png differ diff --git a/app/assets/images/fancybox/fancybox-y.png b/app/assets/images/fancybox/fancybox-y.png new file mode 100644 index 0000000..7ef399b Binary files /dev/null and b/app/assets/images/fancybox/fancybox-y.png differ diff --git a/app/assets/images/fancybox/fancybox.png b/app/assets/images/fancybox/fancybox.png new file mode 100644 index 0000000..65e14f6 Binary files /dev/null and b/app/assets/images/fancybox/fancybox.png differ diff --git a/app/assets/images/fff.gif b/app/assets/images/fff.gif new file mode 100644 index 0000000..81240ae Binary files /dev/null and b/app/assets/images/fff.gif differ diff --git a/app/assets/images/field-bg.png b/app/assets/images/field-bg.png new file mode 100644 index 0000000..12acff2 Binary files /dev/null and b/app/assets/images/field-bg.png differ diff --git a/app/assets/images/forum-activity-bg-onecol.png b/app/assets/images/forum-activity-bg-onecol.png new file mode 100644 index 0000000..2973d35 Binary files /dev/null and b/app/assets/images/forum-activity-bg-onecol.png differ diff --git a/app/assets/images/forum-activity-bg.png b/app/assets/images/forum-activity-bg.png new file mode 100644 index 0000000..b6e7926 Binary files /dev/null and b/app/assets/images/forum-activity-bg.png differ diff --git a/app/assets/images/forum-activity-icon.png b/app/assets/images/forum-activity-icon.png new file mode 100644 index 0000000..acadece Binary files /dev/null and b/app/assets/images/forum-activity-icon.png differ diff --git a/app/assets/images/gallery-image-activity-border-big-onecol.png b/app/assets/images/gallery-image-activity-border-big-onecol.png new file mode 100644 index 0000000..56692b8 Binary files /dev/null and b/app/assets/images/gallery-image-activity-border-big-onecol.png differ diff --git a/app/assets/images/gallery-image-activity-border-big.png b/app/assets/images/gallery-image-activity-border-big.png new file mode 100644 index 0000000..358302c Binary files /dev/null and b/app/assets/images/gallery-image-activity-border-big.png differ diff --git a/app/assets/images/gallery-image-activity-border-onecol.png b/app/assets/images/gallery-image-activity-border-onecol.png new file mode 100644 index 0000000..113d269 Binary files /dev/null and b/app/assets/images/gallery-image-activity-border-onecol.png differ diff --git a/app/assets/images/gallery-image-activity-border.png b/app/assets/images/gallery-image-activity-border.png new file mode 100644 index 0000000..5662e5d Binary files /dev/null and b/app/assets/images/gallery-image-activity-border.png differ diff --git a/app/assets/images/grip-clue.png b/app/assets/images/grip-clue.png new file mode 100644 index 0000000..05daab5 Binary files /dev/null and b/app/assets/images/grip-clue.png differ diff --git a/app/assets/images/hachure.png b/app/assets/images/hachure.png new file mode 100644 index 0000000..176275e Binary files /dev/null and b/app/assets/images/hachure.png differ diff --git a/app/assets/images/help-avatar.gif b/app/assets/images/help-avatar.gif new file mode 100644 index 0000000..32712f7 Binary files /dev/null and b/app/assets/images/help-avatar.gif differ diff --git a/app/assets/images/icon_filter_exclude.png b/app/assets/images/icon_filter_exclude.png new file mode 100644 index 0000000..e5a39da Binary files /dev/null and b/app/assets/images/icon_filter_exclude.png differ diff --git a/app/assets/images/icon_more_options.png b/app/assets/images/icon_more_options.png new file mode 100644 index 0000000..742f0a4 Binary files /dev/null and b/app/assets/images/icon_more_options.png differ diff --git a/app/assets/images/icons-app/alert.png b/app/assets/images/icons-app/alert.png new file mode 120000 index 0000000..a540276 --- /dev/null +++ b/app/assets/images/icons-app/alert.png @@ -0,0 +1 @@ +emblem-important.png \ No newline at end of file diff --git a/app/assets/images/icons-app/article-minor.png b/app/assets/images/icons-app/article-minor.png new file mode 100644 index 0000000..04f2680 Binary files /dev/null and b/app/assets/images/icons-app/article-minor.png differ diff --git a/app/assets/images/icons-app/article-portrait.png b/app/assets/images/icons-app/article-portrait.png new file mode 100644 index 0000000..339c3ca Binary files /dev/null and b/app/assets/images/icons-app/article-portrait.png differ diff --git a/app/assets/images/icons-app/article-thumb.png b/app/assets/images/icons-app/article-thumb.png new file mode 100644 index 0000000..0580ccb Binary files /dev/null and b/app/assets/images/icons-app/article-thumb.png differ diff --git a/app/assets/images/icons-app/chat-22x22.png b/app/assets/images/icons-app/chat-22x22.png new file mode 120000 index 0000000..dcd54db --- /dev/null +++ b/app/assets/images/icons-app/chat-22x22.png @@ -0,0 +1 @@ +gnome-irc-22x22.png \ No newline at end of file diff --git a/app/assets/images/icons-app/community-big.png b/app/assets/images/icons-app/community-big.png new file mode 100644 index 0000000..31cbd3f Binary files /dev/null and b/app/assets/images/icons-app/community-big.png differ diff --git a/app/assets/images/icons-app/community-icon.png b/app/assets/images/icons-app/community-icon.png new file mode 100644 index 0000000..67137bf Binary files /dev/null and b/app/assets/images/icons-app/community-icon.png differ diff --git a/app/assets/images/icons-app/community-minor.png b/app/assets/images/icons-app/community-minor.png new file mode 100644 index 0000000..b591795 Binary files /dev/null and b/app/assets/images/icons-app/community-minor.png differ diff --git a/app/assets/images/icons-app/community-portrait.png b/app/assets/images/icons-app/community-portrait.png new file mode 100644 index 0000000..5f5e7d2 Binary files /dev/null and b/app/assets/images/icons-app/community-portrait.png differ diff --git a/app/assets/images/icons-app/community-thumb.png b/app/assets/images/icons-app/community-thumb.png new file mode 100644 index 0000000..f952fba Binary files /dev/null and b/app/assets/images/icons-app/community-thumb.png differ diff --git a/app/assets/images/icons-app/design-editor.png b/app/assets/images/icons-app/design-editor.png new file mode 100644 index 0000000..3cec8f4 Binary files /dev/null and b/app/assets/images/icons-app/design-editor.png differ diff --git a/app/assets/images/icons-app/emblem-important.png b/app/assets/images/icons-app/emblem-important.png new file mode 100644 index 0000000..6ee4565 Binary files /dev/null and b/app/assets/images/icons-app/emblem-important.png differ diff --git a/app/assets/images/icons-app/enterprise-big.png b/app/assets/images/icons-app/enterprise-big.png new file mode 100644 index 0000000..551bdb1 Binary files /dev/null and b/app/assets/images/icons-app/enterprise-big.png differ diff --git a/app/assets/images/icons-app/enterprise-icon.png b/app/assets/images/icons-app/enterprise-icon.png new file mode 100644 index 0000000..aed1b99 Binary files /dev/null and b/app/assets/images/icons-app/enterprise-icon.png differ diff --git a/app/assets/images/icons-app/enterprise-minor.png b/app/assets/images/icons-app/enterprise-minor.png new file mode 100644 index 0000000..1f40c91 Binary files /dev/null and b/app/assets/images/icons-app/enterprise-minor.png differ diff --git a/app/assets/images/icons-app/enterprise-portrait.png b/app/assets/images/icons-app/enterprise-portrait.png new file mode 100644 index 0000000..75c9803 Binary files /dev/null and b/app/assets/images/icons-app/enterprise-portrait.png differ diff --git a/app/assets/images/icons-app/enterprise-registration.png b/app/assets/images/icons-app/enterprise-registration.png new file mode 120000 index 0000000..9850e17 --- /dev/null +++ b/app/assets/images/icons-app/enterprise-registration.png @@ -0,0 +1 @@ +gnome-settings-theme.png \ No newline at end of file diff --git a/app/assets/images/icons-app/enterprise-thumb.png b/app/assets/images/icons-app/enterprise-thumb.png new file mode 100644 index 0000000..ba3a6f1 Binary files /dev/null and b/app/assets/images/icons-app/enterprise-thumb.png differ diff --git a/app/assets/images/icons-app/gnome-irc-22x22.png b/app/assets/images/icons-app/gnome-irc-22x22.png new file mode 100644 index 0000000..3624f0e Binary files /dev/null and b/app/assets/images/icons-app/gnome-irc-22x22.png differ diff --git a/app/assets/images/icons-app/gnome-irc.png b/app/assets/images/icons-app/gnome-irc.png new file mode 100644 index 0000000..f036cf5 Binary files /dev/null and b/app/assets/images/icons-app/gnome-irc.png differ diff --git a/app/assets/images/icons-app/gnome-settings-theme.png b/app/assets/images/icons-app/gnome-settings-theme.png new file mode 100644 index 0000000..9f4d59b Binary files /dev/null and b/app/assets/images/icons-app/gnome-settings-theme.png differ diff --git a/app/assets/images/icons-app/gtk-folder.png b/app/assets/images/icons-app/gtk-folder.png new file mode 100644 index 0000000..51fb7da Binary files /dev/null and b/app/assets/images/icons-app/gtk-folder.png differ diff --git a/app/assets/images/icons-app/ico-female.png b/app/assets/images/icons-app/ico-female.png new file mode 100644 index 0000000..963ea0b Binary files /dev/null and b/app/assets/images/icons-app/ico-female.png differ diff --git a/app/assets/images/icons-app/ico-male.png b/app/assets/images/icons-app/ico-male.png new file mode 100644 index 0000000..af13933 Binary files /dev/null and b/app/assets/images/icons-app/ico-male.png differ diff --git a/app/assets/images/icons-app/ico-sex-undef.png b/app/assets/images/icons-app/ico-sex-undef.png new file mode 100644 index 0000000..ba8f653 Binary files /dev/null and b/app/assets/images/icons-app/ico-sex-undef.png differ diff --git a/app/assets/images/icons-app/image-loading-big.png b/app/assets/images/icons-app/image-loading-big.png new file mode 100644 index 0000000..b5c8fbe Binary files /dev/null and b/app/assets/images/icons-app/image-loading-big.png differ diff --git a/app/assets/images/icons-app/image-loading-display.png b/app/assets/images/icons-app/image-loading-display.png new file mode 100644 index 0000000..4c7573f Binary files /dev/null and b/app/assets/images/icons-app/image-loading-display.png differ diff --git a/app/assets/images/icons-app/image-loading-icon.png b/app/assets/images/icons-app/image-loading-icon.png new file mode 100644 index 0000000..08319c3 Binary files /dev/null and b/app/assets/images/icons-app/image-loading-icon.png differ diff --git a/app/assets/images/icons-app/image-loading-minor.png b/app/assets/images/icons-app/image-loading-minor.png new file mode 100644 index 0000000..1c9a14d Binary files /dev/null and b/app/assets/images/icons-app/image-loading-minor.png differ diff --git a/app/assets/images/icons-app/image-loading-portrait.png b/app/assets/images/icons-app/image-loading-portrait.png new file mode 100644 index 0000000..479ce45 Binary files /dev/null and b/app/assets/images/icons-app/image-loading-portrait.png differ diff --git a/app/assets/images/icons-app/image-loading-slideshow.png b/app/assets/images/icons-app/image-loading-slideshow.png new file mode 100644 index 0000000..80f63f1 Binary files /dev/null and b/app/assets/images/icons-app/image-loading-slideshow.png differ diff --git a/app/assets/images/icons-app/image-loading-small.png b/app/assets/images/icons-app/image-loading-small.png new file mode 100644 index 0000000..587902e Binary files /dev/null and b/app/assets/images/icons-app/image-loading-small.png differ diff --git a/app/assets/images/icons-app/image-loading-thumb.png b/app/assets/images/icons-app/image-loading-thumb.png new file mode 100644 index 0000000..0642df1 Binary files /dev/null and b/app/assets/images/icons-app/image-loading-thumb.png differ diff --git a/app/assets/images/icons-app/person-big.png b/app/assets/images/icons-app/person-big.png new file mode 100644 index 0000000..2b0bd4d Binary files /dev/null and b/app/assets/images/icons-app/person-big.png differ diff --git a/app/assets/images/icons-app/person-icon.png b/app/assets/images/icons-app/person-icon.png new file mode 100644 index 0000000..9d48ccf Binary files /dev/null and b/app/assets/images/icons-app/person-icon.png differ diff --git a/app/assets/images/icons-app/person-minor.png b/app/assets/images/icons-app/person-minor.png new file mode 100644 index 0000000..9527557 Binary files /dev/null and b/app/assets/images/icons-app/person-minor.png differ diff --git a/app/assets/images/icons-app/person-portrait.png b/app/assets/images/icons-app/person-portrait.png new file mode 100644 index 0000000..240502c Binary files /dev/null and b/app/assets/images/icons-app/person-portrait.png differ diff --git a/app/assets/images/icons-app/person-thumb.png b/app/assets/images/icons-app/person-thumb.png new file mode 100644 index 0000000..1946f29 Binary files /dev/null and b/app/assets/images/icons-app/person-thumb.png differ diff --git a/app/assets/images/icons-app/product-default-pic-big.png b/app/assets/images/icons-app/product-default-pic-big.png new file mode 100644 index 0000000..b7ec210 Binary files /dev/null and b/app/assets/images/icons-app/product-default-pic-big.png differ diff --git a/app/assets/images/icons-app/product-default-pic-minor.png b/app/assets/images/icons-app/product-default-pic-minor.png new file mode 100644 index 0000000..03c796a Binary files /dev/null and b/app/assets/images/icons-app/product-default-pic-minor.png differ diff --git a/app/assets/images/icons-app/product-default-pic-portrait.png b/app/assets/images/icons-app/product-default-pic-portrait.png new file mode 100644 index 0000000..960ccef Binary files /dev/null and b/app/assets/images/icons-app/product-default-pic-portrait.png differ diff --git a/app/assets/images/icons-app/product-default-pic-thumb.png b/app/assets/images/icons-app/product-default-pic-thumb.png new file mode 100644 index 0000000..f654580 Binary files /dev/null and b/app/assets/images/icons-app/product-default-pic-thumb.png differ diff --git a/app/assets/images/icons-app/user_icon.png b/app/assets/images/icons-app/user_icon.png new file mode 100644 index 0000000..b1f88eb Binary files /dev/null and b/app/assets/images/icons-app/user_icon.png differ diff --git a/app/assets/images/icons-app/user_icon.svg b/app/assets/images/icons-app/user_icon.svg new file mode 100644 index 0000000..684c446 --- /dev/null +++ b/app/assets/images/icons-app/user_icon.svg @@ -0,0 +1,529 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + People + + + Jakub Steiner + + + http://jimmac.musichall.cz + + + users + people + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/images/icons-app/users.svg b/app/assets/images/icons-app/users.svg new file mode 100644 index 0000000..a7ba359 --- /dev/null +++ b/app/assets/images/icons-app/users.svg @@ -0,0 +1,863 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + People + + + Jakub Steiner + + + http://jimmac.musichall.cz + + + users + people + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/images/icons-bar/accessibility.png b/app/assets/images/icons-bar/accessibility.png new file mode 100644 index 0000000..a0aa27e Binary files /dev/null and b/app/assets/images/icons-bar/accessibility.png differ diff --git a/app/assets/images/icons-bar/admin.png b/app/assets/images/icons-bar/admin.png new file mode 100644 index 0000000..f362e72 Binary files /dev/null and b/app/assets/images/icons-bar/admin.png differ diff --git a/app/assets/images/icons-bar/go-content.png b/app/assets/images/icons-bar/go-content.png new file mode 100644 index 0000000..386b187 Binary files /dev/null and b/app/assets/images/icons-bar/go-content.png differ diff --git a/app/assets/images/icons-bar/go-home.png b/app/assets/images/icons-bar/go-home.png new file mode 100644 index 0000000..5734022 Binary files /dev/null and b/app/assets/images/icons-bar/go-home.png differ diff --git a/app/assets/images/icons-bar/help.png b/app/assets/images/icons-bar/help.png new file mode 100644 index 0000000..5c266e6 Binary files /dev/null and b/app/assets/images/icons-bar/help.png differ diff --git a/app/assets/images/icons-bar/login.png b/app/assets/images/icons-bar/login.png new file mode 100644 index 0000000..f2023e8 Binary files /dev/null and b/app/assets/images/icons-bar/login.png differ diff --git a/app/assets/images/icons-bar/logout.png b/app/assets/images/icons-bar/logout.png new file mode 100644 index 0000000..502e206 Binary files /dev/null and b/app/assets/images/icons-bar/logout.png differ diff --git a/app/assets/images/icons-bar/logout2.png b/app/assets/images/icons-bar/logout2.png new file mode 100644 index 0000000..473e7bc Binary files /dev/null and b/app/assets/images/icons-bar/logout2.png differ diff --git a/app/assets/images/icons-cat/Agropecuária_extrativismo_e_pesca.png b/app/assets/images/icons-cat/Agropecuária_extrativismo_e_pesca.png new file mode 100644 index 0000000..9cbed3f Binary files /dev/null and b/app/assets/images/icons-cat/Agropecuária_extrativismo_e_pesca.png differ diff --git a/app/assets/images/icons-cat/Alimentos_e_bebidas.png b/app/assets/images/icons-cat/Alimentos_e_bebidas.png new file mode 100644 index 0000000..5ad5810 Binary files /dev/null and b/app/assets/images/icons-cat/Alimentos_e_bebidas.png differ diff --git a/app/assets/images/icons-cat/Artefatos_artesanais.png b/app/assets/images/icons-cat/Artefatos_artesanais.png new file mode 100644 index 0000000..1324701 Binary files /dev/null and b/app/assets/images/icons-cat/Artefatos_artesanais.png differ diff --git a/app/assets/images/icons-cat/Ação_comunitária.png b/app/assets/images/icons-cat/Ação_comunitária.png new file mode 100644 index 0000000..f6ee209 Binary files /dev/null and b/app/assets/images/icons-cat/Ação_comunitária.png differ diff --git a/app/assets/images/icons-cat/Coleta_e_reciclagem_de_materiais.png b/app/assets/images/icons-cat/Coleta_e_reciclagem_de_materiais.png new file mode 100644 index 0000000..d13568c Binary files /dev/null and b/app/assets/images/icons-cat/Coleta_e_reciclagem_de_materiais.png differ diff --git a/app/assets/images/icons-cat/Crédito_e_finanças.png b/app/assets/images/icons-cat/Crédito_e_finanças.png new file mode 100644 index 0000000..d7e10d7 Binary files /dev/null and b/app/assets/images/icons-cat/Crédito_e_finanças.png differ diff --git a/app/assets/images/icons-cat/Fitoterápicos_e_produtos_de_limpeza_e_higiene.png b/app/assets/images/icons-cat/Fitoterápicos_e_produtos_de_limpeza_e_higiene.png new file mode 100644 index 0000000..11a560e Binary files /dev/null and b/app/assets/images/icons-cat/Fitoterápicos_e_produtos_de_limpeza_e_higiene.png differ diff --git a/app/assets/images/icons-cat/Prestação_de_serviços_diversos.png b/app/assets/images/icons-cat/Prestação_de_serviços_diversos.png new file mode 100644 index 0000000..49c3e71 Binary files /dev/null and b/app/assets/images/icons-cat/Prestação_de_serviços_diversos.png differ diff --git a/app/assets/images/icons-cat/Produção_industrial.png b/app/assets/images/icons-cat/Produção_industrial.png new file mode 100644 index 0000000..209775b Binary files /dev/null and b/app/assets/images/icons-cat/Produção_industrial.png differ diff --git a/app/assets/images/icons-cat/Produção_têxtil_e_confecção.png b/app/assets/images/icons-cat/Produção_têxtil_e_confecção.png new file mode 100644 index 0000000..86271e9 Binary files /dev/null and b/app/assets/images/icons-cat/Produção_têxtil_e_confecção.png differ diff --git a/app/assets/images/icons-cat/Software.png b/app/assets/images/icons-cat/Software.png new file mode 100644 index 0000000..048da5b Binary files /dev/null and b/app/assets/images/icons-cat/Software.png differ diff --git a/app/assets/images/icons-cat/Software_Livre.png b/app/assets/images/icons-cat/Software_Livre.png new file mode 100644 index 0000000..02e6608 Binary files /dev/null and b/app/assets/images/icons-cat/Software_Livre.png differ diff --git a/app/assets/images/icons-cat/undefined.png b/app/assets/images/icons-cat/undefined.png new file mode 100644 index 0000000..a8ac82a Binary files /dev/null and b/app/assets/images/icons-cat/undefined.png differ diff --git a/app/assets/images/icons-map/enterprise.png b/app/assets/images/icons-map/enterprise.png new file mode 100644 index 0000000..b131338 Binary files /dev/null and b/app/assets/images/icons-map/enterprise.png differ diff --git a/app/assets/images/icons-map/enterprise_shadow.png b/app/assets/images/icons-map/enterprise_shadow.png new file mode 100644 index 0000000..521bca1 Binary files /dev/null and b/app/assets/images/icons-map/enterprise_shadow.png differ diff --git a/app/assets/images/icons-mime/README b/app/assets/images/icons-mime/README new file mode 100644 index 0000000..7248846 --- /dev/null +++ b/app/assets/images/icons-mime/README @@ -0,0 +1,93 @@ +mime icons in Noosfero +====================== + +Icon Source Theme License +------------------------ -------------- ------- +gnome-mime-text-html.png dlg-neu GPLV2+ +gnome-mime-empty.png Nuovo GPLV2+ +ico-feed-on.png GPLv3 + +The icons in this directory are taken from some GNOME theme with compatible +license (i.e. GPLV2+ or GPLv3), section "mimetypes/". We take the SVG files and +convert to 24x24 PNG images, so these icons are in fact derived works of those +in the themes. + +Some icons are not taken from themes (e.g. ico-feed-on.png was made by Aurélio +A. Heckert and is licensed under the GNU General +Public License, version 3.) + +Structure +========= + +To keep a trace back to original themes, when rasterizing the SVG files we keep +the original filenames (replacing .svg by .png, obviously) and create symbolic +links with names more sensible for Noosfero. + +Icons rasterization +=================== + +With rsvg, from the librsvg2-bin package (i.e. we use the same rasterization +library as GNOME, so the icons must look like they do in GNOME). + +$ rsvg -w 24 -h 24 .svg .png + +Licensing +========= + +dlg-neu icons (according to /usr/share/doc/gnome-icon-theme-dlg-neu/copyright +on a Debian system): + + Copyright Holders: Silvestre Herrera (silvestre.herrera@gmail.com) + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA + +Nuovo icons (according to /usr/share/doc/gnome-icon-theme-nuovo/copyright on a +Debian system): + + Copyright Holders: Silvestre Herrera + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA + +ico-feed-on.png: + + Copyright holders: Aurélio A. Heckert + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + diff --git a/app/assets/images/icons-mime/empty.png b/app/assets/images/icons-mime/empty.png new file mode 100644 index 0000000..9f56b72 Binary files /dev/null and b/app/assets/images/icons-mime/empty.png differ diff --git a/app/assets/images/icons-mime/event.png b/app/assets/images/icons-mime/event.png new file mode 120000 index 0000000..c258d1d --- /dev/null +++ b/app/assets/images/icons-mime/event.png @@ -0,0 +1 @@ +../calendar_date_select/calendar.png \ No newline at end of file diff --git a/app/assets/images/icons-mime/folder.png b/app/assets/images/icons-mime/folder.png new file mode 120000 index 0000000..0bd6da1 --- /dev/null +++ b/app/assets/images/icons-mime/folder.png @@ -0,0 +1 @@ +gnome-folder.png \ No newline at end of file diff --git a/app/assets/images/icons-mime/gnome-folder.png b/app/assets/images/icons-mime/gnome-folder.png new file mode 100644 index 0000000..b624ae8 Binary files /dev/null and b/app/assets/images/icons-mime/gnome-folder.png differ diff --git a/app/assets/images/icons-mime/gnome-mime-empty.png b/app/assets/images/icons-mime/gnome-mime-empty.png new file mode 100644 index 0000000..2a2727e Binary files /dev/null and b/app/assets/images/icons-mime/gnome-mime-empty.png differ diff --git a/app/assets/images/icons-mime/gnome-mime-text-html.png b/app/assets/images/icons-mime/gnome-mime-text-html.png new file mode 100644 index 0000000..5693e7a Binary files /dev/null and b/app/assets/images/icons-mime/gnome-mime-text-html.png differ diff --git a/app/assets/images/icons-mime/ico-feed-on.png b/app/assets/images/icons-mime/ico-feed-on.png new file mode 100644 index 0000000..e6e6edd Binary files /dev/null and b/app/assets/images/icons-mime/ico-feed-on.png differ diff --git a/app/assets/images/icons-mime/rss-feed-16.png b/app/assets/images/icons-mime/rss-feed-16.png new file mode 100644 index 0000000..f1b8742 Binary files /dev/null and b/app/assets/images/icons-mime/rss-feed-16.png differ diff --git a/app/assets/images/icons-mime/rss-feed.png b/app/assets/images/icons-mime/rss-feed.png new file mode 120000 index 0000000..e96cb3b --- /dev/null +++ b/app/assets/images/icons-mime/rss-feed.png @@ -0,0 +1 @@ +ico-feed-on.png \ No newline at end of file diff --git a/app/assets/images/icons-mime/text-html.png b/app/assets/images/icons-mime/text-html.png new file mode 120000 index 0000000..16cc51f --- /dev/null +++ b/app/assets/images/icons-mime/text-html.png @@ -0,0 +1 @@ +gnome-mime-text-html.png \ No newline at end of file diff --git a/app/assets/images/icons-mime/unknown.png b/app/assets/images/icons-mime/unknown.png new file mode 120000 index 0000000..3a18748 --- /dev/null +++ b/app/assets/images/icons-mime/unknown.png @@ -0,0 +1 @@ +gnome-mime-empty.png \ No newline at end of file diff --git a/app/assets/images/icons-task/closed-arrow-hover.png b/app/assets/images/icons-task/closed-arrow-hover.png new file mode 100644 index 0000000..a797866 Binary files /dev/null and b/app/assets/images/icons-task/closed-arrow-hover.png differ diff --git a/app/assets/images/icons-task/closed-arrow.png b/app/assets/images/icons-task/closed-arrow.png new file mode 100644 index 0000000..e2a51f7 Binary files /dev/null and b/app/assets/images/icons-task/closed-arrow.png differ diff --git a/app/assets/images/icons-task/opened-arrow-hover.png b/app/assets/images/icons-task/opened-arrow-hover.png new file mode 100644 index 0000000..db9e2fe Binary files /dev/null and b/app/assets/images/icons-task/opened-arrow-hover.png differ diff --git a/app/assets/images/icons-task/opened-arrow.png b/app/assets/images/icons-task/opened-arrow.png new file mode 100644 index 0000000..72f3edf Binary files /dev/null and b/app/assets/images/icons-task/opened-arrow.png differ diff --git a/app/assets/images/input-bg.gif b/app/assets/images/input-bg.gif new file mode 100644 index 0000000..a9a3051 Binary files /dev/null and b/app/assets/images/input-bg.gif differ diff --git a/app/assets/images/loading-dark.gif b/app/assets/images/loading-dark.gif new file mode 100644 index 0000000..e017d5d Binary files /dev/null and b/app/assets/images/loading-dark.gif differ diff --git a/app/assets/images/loading-small-dark.gif b/app/assets/images/loading-small-dark.gif new file mode 100644 index 0000000..c5fa56d Binary files /dev/null and b/app/assets/images/loading-small-dark.gif differ diff --git a/app/assets/images/loading-small.gif b/app/assets/images/loading-small.gif new file mode 100644 index 0000000..085ccae Binary files /dev/null and b/app/assets/images/loading-small.gif differ diff --git a/app/assets/images/loading.gif b/app/assets/images/loading.gif new file mode 100644 index 0000000..5bb90fd Binary files /dev/null and b/app/assets/images/loading.gif differ diff --git a/app/assets/images/login_checking.png b/app/assets/images/login_checking.png new file mode 100644 index 0000000..5dd52f1 Binary files /dev/null and b/app/assets/images/login_checking.png differ diff --git a/app/assets/images/logo-anhetegua-200x50.png b/app/assets/images/logo-anhetegua-200x50.png new file mode 100644 index 0000000..fb7ca53 Binary files /dev/null and b/app/assets/images/logo-anhetegua-200x50.png differ diff --git a/app/assets/images/logo-anhetegua.png b/app/assets/images/logo-anhetegua.png new file mode 100644 index 0000000..11ba6b8 Binary files /dev/null and b/app/assets/images/logo-anhetegua.png differ diff --git a/app/assets/images/noosfero-network.png b/app/assets/images/noosfero-network.png new file mode 100644 index 0000000..355d576 Binary files /dev/null and b/app/assets/images/noosfero-network.png differ diff --git a/app/assets/images/noosfero-network.svg b/app/assets/images/noosfero-network.svg new file mode 100755 index 0000000..319c97e --- /dev/null +++ b/app/assets/images/noosfero-network.svg @@ -0,0 +1,4618 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/images/orange-balloon.png b/app/assets/images/orange-balloon.png new file mode 100644 index 0000000..6a5540c Binary files /dev/null and b/app/assets/images/orange-balloon.png differ diff --git a/app/assets/images/orange-bg.png b/app/assets/images/orange-bg.png new file mode 100644 index 0000000..e3b1979 Binary files /dev/null and b/app/assets/images/orange-bg.png differ diff --git a/app/assets/images/passwords_match.png b/app/assets/images/passwords_match.png new file mode 100644 index 0000000..a837436 Binary files /dev/null and b/app/assets/images/passwords_match.png differ diff --git a/app/assets/images/passwords_nomatch.png b/app/assets/images/passwords_nomatch.png new file mode 100644 index 0000000..1cc786b Binary files /dev/null and b/app/assets/images/passwords_nomatch.png differ diff --git a/app/assets/images/rails.png b/app/assets/images/rails.png new file mode 100644 index 0000000..d5edc04 Binary files /dev/null and b/app/assets/images/rails.png differ diff --git a/app/assets/images/scrap-bg-gray.png b/app/assets/images/scrap-bg-gray.png new file mode 100644 index 0000000..b10351f Binary files /dev/null and b/app/assets/images/scrap-bg-gray.png differ diff --git a/app/assets/images/scrap-bg.png b/app/assets/images/scrap-bg.png new file mode 100644 index 0000000..c2637ab Binary files /dev/null and b/app/assets/images/scrap-bg.png differ diff --git a/app/assets/images/solidarity-economy.png b/app/assets/images/solidarity-economy.png new file mode 100644 index 0000000..b29f07a Binary files /dev/null and b/app/assets/images/solidarity-economy.png differ diff --git a/app/assets/images/top-arrow.png b/app/assets/images/top-arrow.png new file mode 100644 index 0000000..9b2b158 Binary files /dev/null and b/app/assets/images/top-arrow.png differ diff --git a/app/assets/images/white-pixel.gif b/app/assets/images/white-pixel.gif new file mode 100644 index 0000000..08fc23e Binary files /dev/null and b/app/assets/images/white-pixel.gif differ diff --git a/app/assets/images/zoom-dark.png b/app/assets/images/zoom-dark.png new file mode 100644 index 0000000..f1e89b3 Binary files /dev/null and b/app/assets/images/zoom-dark.png differ diff --git a/app/assets/images/zoom.png b/app/assets/images/zoom.png new file mode 100644 index 0000000..750e6bd Binary files /dev/null and b/app/assets/images/zoom.png differ diff --git a/app/assets/javascripts/add-and-join.js b/app/assets/javascripts/add-and-join.js new file mode 100644 index 0000000..9055491 --- /dev/null +++ b/app/assets/javascripts/add-and-join.js @@ -0,0 +1,103 @@ +jQuery(function($) { + + $(".add-friend").live('click', function(){ + clicked = $(this) + url = clicked.attr("href"); + loading_for_button(this); + $.post(url, function(data){ + clicked.fadeOut(); + display_notice(data); + }); + return false; + }) + + $(".join-community").live('click', function(){ + clicked = $(this) + url = clicked.attr("href"); + loading_for_button(this); + $.post(url, function(data){ + clicked.fadeOut(function(){ + clicked.css("display","none"); + clicked.parent().parent().find(".leave-community").fadeIn(); + clicked.parent().parent().find(".leave-community").css("display", ""); + }); + clicked.css("cursor",""); + $(".small-loading").remove(); + display_notice(data.message); + }, "json"); + return false; + }) + + $(".leave-community").live('click', function(){ + clicked = $(this) + url = clicked.attr("href"); + loading_for_button(this); + $.post(url, function(data){ + if(data.redirect_to){ + document.location.href = data.redirect_to; + } + else if(data.reload){ + document.location.reload(true); + } + else{ + clicked.fadeOut(function(){ + clicked.css("display","none"); + clicked.parent().parent().find(".join-community").fadeIn(); + clicked.parent().parent().find(".join-community").css("display", ""); + }); + clicked.css("cursor",""); + $(".small-loading").remove(); + + display_notice(data.message); + } + }, "json"); + return false; + }) + + $(".person-trigger").click(function(){ + clicked = $(this); + url = clicked.attr("url"); + $.get(url, function(data){ + if(data == "true"){ + clicked.parent().find(".add-friend").fadeOut(function(){ + clicked.parent().find(".send-an-email").fadeIn(); + }) + } + else if(data == "false"){ + clicked.parent().find(".send-an-email").fadeOut(function(){ + clicked.parent().find(".add-friend").fadeIn(); + }); + } + }) + }) + + $(".community-trigger").click(function(){ + clicked = $(this); + url = clicked.attr("url"); + $.get(url, function(data){ + if(data == "true"){ + clicked.parent().find(".join-community").fadeOut(function(){ + clicked.parent().find(".leave-community").fadeIn(); + clicked.parent().find(".send-an-email").fadeIn(); + }); + } + else if(data == "false"){ + clicked.parent().find(".send-an-email").fadeOut(); + clicked.parent().find(".leave-community").fadeOut(function(){ + clicked.parent().find(".join-community").fadeIn(); + }); + } + }) + }) + + $(".enterprise-trigger").click(function(){ + clicked = $(this); + url = clicked.attr("url"); + $.get(url, function(data){ + if(data == "true") + clicked.parent().find(".send-an-email").fadeIn(); + else if(data == "false") + clicked.parent().find(".send-an-email").fadeOut(); + }) + }) +}); diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js new file mode 100644 index 0000000..4e773ca --- /dev/null +++ b/app/assets/javascripts/application.js @@ -0,0 +1,16 @@ +// This is a manifest file that'll be compiled into application.js, which will include all the files +// listed below. +// +// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, +// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. +// +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the +// the compiled file. +// +// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD +// GO AFTER THE REQUIRES BELOW. +// +//= require jquery +//= require jquery_ujs +//= require miscellaneous +//= require_tree . \ No newline at end of file diff --git a/app/assets/javascripts/article.js b/app/assets/javascripts/article.js new file mode 100644 index 0000000..c26b4e5 --- /dev/null +++ b/app/assets/javascripts/article.js @@ -0,0 +1,175 @@ +jQuery(function($) { + $(".lead-button").live('click', function(){ + article_id = this.getAttribute("article_id"); + $(this).toggleClass('icon-add').toggleClass('icon-remove'); + $(article_id).slideToggle(); + return false; + }) + $("#body-button").click(function(){ + $(this).toggleClass('icon-add').toggleClass('icon-remove'); + $('#article-body-field').slideToggle(); + return false; + }) + + $("#textile-quickref-show").click(function(){ + $('#textile-quickref-hide').show(); + $(this).hide(); + $('#textile-quickref').slideToggle(); + return false; + }) + $("#textile-quickref-hide").click(function(){ + $('#textile-quickref-show').show(); + $(this).hide(); + $('#textile-quickref').slideToggle(); + return false; + }) + + var button_add = $('.text-editor-sidebar span.button-add').attr('data-value'); + var button_zoom = $('.text-editor-sidebar span.button-zoom').attr('data-value'); + var button_close = $('.text-editor-sidebar span.button-close').attr('data-value'); + + function add_to_text_button(extra_class) { + if (!extra_class) { extra_class = '' } + return '' + button_add + ''; + } + + function close_button(extra_class) { + if (!extra_class) { extra_class = '' } + return '' + button_close + ''; + } + + function zoom_button() { + return '' + button_zoom + ''; + } + + function list_items(items, selector, auto_add) { + var html_for_items = ''; + + var images = []; + var files = []; + var errors = []; + + $.each(items, function(i, item) { + if (item.error) { + errors.push(item); + return; + } + if (item.content_type && item.content_type.match(/^image/)) { + images.push(item); + } else { + files.push(item); + } + }); + + $.each(images, function(i, item) { + html_for_items += '
' + add_to_text_button() + zoom_button() + '
'; + }); + + $.each(files, function(i, item) { + html_for_items += '
' + add_to_text_button() + '
'; + }); + + $.each(errors, function(i, item) { + html_for_items += '
' + item.error + '
'; + }); + + $(selector).html(html_for_items); + + if (auto_add) { + $(selector).find('a.add-to-text').click(); + } + } + + function zoom_dialog_html(img) { + // FIXME organize this code better + return '
' + '
' + add_to_text_button('with-text') + '   ' + close_button('with-text') + '
' + } + + $('a.add-to-text').live('click', function() { + var $item = $(this).closest('.item'); + var html_selector = $item.attr('data-item'); + insert_item_in_text($item.find(html_selector)); + $.colorbox.close(); + return false; + }); + $('a.zoom').live('click', function() { + var $item = $(this).closest('.item'); + var html_selector = $item.attr('data-item'); + var img = $item.find(html_selector).find('img').attr('src'); + $.colorbox({ + html: zoom_dialog_html(img), + scrolling: false + }); + return false; + }); + $('a.close').live('click', function() { + $.colorbox.close(); + return false; + }) + + // FIXME the user may also want to add the item to the abstract textarea! + var text_field = 'article_body'; + + function insert_item_in_text($wrapper) { + if (window.tinymce) { + + var html = $wrapper.html(); + + var editor = tinymce.get(text_field); + + editor.setContent(editor.getContent() + html); + + } else { + // simple text editor + var $text_element = $('#' + text_field); + var text = $text_element.val(); + var $item = $wrapper.children().first(); + if ($item.attr('src')) { + $text_element.val(text + '!' + $item.attr('src') + "!\n"); + } + if ($item.attr('href')) { + $text_element.val(text + $item.attr('href')); + } + } + } + + $('#media-search-button').click(function() { + var query = $('#media-search-query').val(); + var $button = $(this); + $('#media-search-box .header').toggleClass('icon-loading'); + $.get($(this).parent().attr('action'), { 'q': query }, function(data) { + list_items(data, '#media-search-results .items', false); + if (data.length && data.length > 0) { + $('#media-search-results').slideDown(); + } + $('#media-search-box .header').toggleClass('icon-loading'); + }); + return false; + }); + + $('#media-upload-form form').ajaxForm({ + resetForm: true, + beforeSubmit: + function() { + $('#media-upload-form').slideUp(); + $('#media-upload-box .header').toggleClass('icon-loading'); + }, + success: + function(text) { + text = text.replace('
', '').replace('
', ''); // old firefox + var data = $.parseJSON(text); + list_items(data, '#media-upload-results .items', true); + if (data.length && data.length > 0) { + $('#media-upload-results').slideDown(); + } + $('#media-upload-box .header').toggleClass('icon-loading'); + } + }); + + $('#media-upload-more-files').click(function() { + $('#media-upload-results').hide(); + $('#media-upload-form').show(); + return false; + }); + +}); diff --git a/app/assets/javascripts/ba-linkify.js b/app/assets/javascripts/ba-linkify.js new file mode 100644 index 0000000..81dae5f --- /dev/null +++ b/app/assets/javascripts/ba-linkify.js @@ -0,0 +1,214 @@ +/*! + * JavaScript Linkify - v0.3 - 6/27/2009 + * http://benalman.com/projects/javascript-linkify/ + * + * Copyright (c) 2009 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + * + * Some regexps adapted from http://userscripts.org/scripts/review/7122 + */ + +// Script: JavaScript Linkify: Process links in text! +// +// *Version: 0.3, Last updated: 6/27/2009* +// +// Project Home - http://benalman.com/projects/javascript-linkify/ +// GitHub - http://github.com/cowboy/javascript-linkify/ +// Source - http://github.com/cowboy/javascript-linkify/raw/master/ba-linkify.js +// (Minified) - http://github.com/cowboy/javascript-linkify/raw/master/ba-linkify.min.js (2.8kb) +// +// About: License +// +// Copyright (c) 2009 "Cowboy" Ben Alman, +// Dual licensed under the MIT and GPL licenses. +// http://benalman.com/about/license/ +// +// About: Examples +// +// This working example, complete with fully commented code, illustrates one way +// in which this code can be used. +// +// Linkify - http://benalman.com/code/projects/javascript-linkify/examples/linkify/ +// +// About: Support and Testing +// +// Information about what browsers this code has been tested in. +// +// Browsers Tested - Internet Explorer 6-8, Firefox 2-3.7, Safari 3-4, Chrome, Opera 9.6-10. +// +// About: Release History +// +// 0.3 - (6/27/2009) Initial release + +// Function: linkify +// +// Turn text into linkified html. +// +// Usage: +// +// > var html = linkify( text [, options ] ); +// +// Arguments: +// +// text - (String) Non-HTML text containing links to be parsed. +// options - (Object) An optional object containing linkify parse options. +// +// Options: +// +// callback (Function) - If specified, this will be called once for each link- +// or non-link-chunk with two arguments, text and href. If the chunk is +// non-link, href will be omitted. If unspecified, the default linkification +// callback is used. +// punct_regexp (RegExp) - A RegExp that will be used to trim trailing +// punctuation from links, instead of the default. If set to null, trailing +// punctuation will not be trimmed. +// +// Returns: +// +// (String) An HTML string containing links. + +window.linkify = (function(){ + var + SCHEME = "[a-z\\d.-]+://", + IPV4 = "(?:(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])", + HOSTNAME = "(?:(?:[^\\s!@#$%^&*()_=+[\\]{}\\\\|;:'\",.<>/?]+)\\.)+", + TLD = "(?:ac|ad|aero|ae|af|ag|ai|al|am|an|ao|aq|arpa|ar|asia|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|biz|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|cat|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|coop|com|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|info|int|in|io|iq|ir|is|it|je|jm|jobs|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mobi|mo|mp|mq|mr|ms|mt|museum|mu|mv|mw|mx|my|mz|name|na|nc|net|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pro|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|travel|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xn--0zwm56d|xn--11b5bs3a9aj6g|xn--80akhbyknj4f|xn--9t4b11yi5a|xn--deba0ad|xn--g6w251d|xn--hgbk6aj7f53bba|xn--hlcj6aya9esc7a|xn--jxalpdlp|xn--kgbechtv|xn--zckzah|ye|yt|yu|za|zm|zw)", + HOST_OR_IP = "(?:" + HOSTNAME + TLD + "|" + IPV4 + ")", + PATH = "(?:[;/][^#?<>\\s]*)?", + QUERY_FRAG = "(?:\\?[^#<>\\s]*)?(?:#[^<>\\s]*)?", + URI1 = "\\b" + SCHEME + "[^<>\\s]+", + URI2 = "\\b" + HOST_OR_IP + PATH + QUERY_FRAG + "(?!\\w)", + + MAILTO = "mailto:", + EMAIL = "(?:" + MAILTO + ")?[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@" + HOST_OR_IP + QUERY_FRAG + "(?!\\w)", + + URI_RE = new RegExp( "(?:" + URI1 + "|" + URI2 + "|" + EMAIL + ")", "ig" ), + SCHEME_RE = new RegExp( "^" + SCHEME, "i" ), + + quotes = { + "'": "`", + '>': '<', + ')': '(', + ']': '[', + '}': '{', + '»': '«', + '›': '‹' + }, + + default_options = { + callback: function( text, href ) { + return href ? '' + text + '' : text; + }, + punct_regexp: /(?:[!?.,:;'"]|(?:&|&)(?:lt|gt|quot|apos|raquo|laquo|rsaquo|lsaquo);)$/ + }; + + return function( txt, options ) { + options = options || {}; + + // Temp variables. + var arr, + i, + link, + href, + + // Output HTML. + html = '', + + // Store text / link parts, in order, for re-combination. + parts = [], + + // Used for keeping track of indices in the text. + idx_prev, + idx_last, + idx, + link_last, + + // Used for trimming trailing punctuation and quotes from links. + matches_begin, + matches_end, + quote_begin, + quote_end; + + // Initialize options. + for ( i in default_options ) { + if ( options[ i ] === undefined ) { + options[ i ] = default_options[ i ]; + } + } + + // Find links. + while ( arr = URI_RE.exec( txt ) ) { + + link = arr[0]; + idx_last = URI_RE.lastIndex; + idx = idx_last - link.length; + + // Not a link if preceded by certain characters. + if ( /[\/:]/.test( txt.charAt( idx - 1 ) ) ) { + continue; + } + + // Trim trailing punctuation. + do { + // If no changes are made, we don't want to loop forever! + link_last = link; + + quote_end = link.substr( -1 ) + quote_begin = quotes[ quote_end ]; + + // Ending quote character? + if ( quote_begin ) { + matches_begin = link.match( new RegExp( '\\' + quote_begin + '(?!$)', 'g' ) ); + matches_end = link.match( new RegExp( '\\' + quote_end, 'g' ) ); + + // If quotes are unbalanced, remove trailing quote character. + if ( ( matches_begin ? matches_begin.length : 0 ) < ( matches_end ? matches_end.length : 0 ) ) { + link = link.substr( 0, link.length - 1 ); + idx_last--; + } + } + + // Ending non-quote punctuation character? + if ( options.punct_regexp ) { + link = link.replace( options.punct_regexp, function(a){ + idx_last -= a.length; + return ''; + }); + } + } while ( link.length && link !== link_last ); + + href = link; + + // Add appropriate protocol to naked links. + if ( !SCHEME_RE.test( href ) ) { + href = ( href.indexOf( '@' ) !== -1 ? ( !href.indexOf( MAILTO ) ? '' : MAILTO ) + : !href.indexOf( 'irc.' ) ? 'irc://' + : !href.indexOf( 'ftp.' ) ? 'ftp://' + : 'http://' ) + + href; + } + + // Push preceding non-link text onto the array. + if ( idx_prev != idx ) { + parts.push([ txt.slice( idx_prev, idx ) ]); + idx_prev = idx_last; + } + + // Push massaged link onto the array + parts.push([ link, href ]); + }; + + // Push remaining non-link text onto the array. + parts.push([ txt.substr( idx_prev ) ]); + + // Process the array items. + for ( i = 0; i < parts.length; i++ ) { + html += options.callback.apply( window, parts[i] ); + } + + // In case of catastrophic failure, return the original text; + return html || txt; + }; + +})(); \ No newline at end of file diff --git a/app/assets/javascripts/catalog.js b/app/assets/javascripts/catalog.js new file mode 100644 index 0000000..9e9341c --- /dev/null +++ b/app/assets/javascripts/catalog.js @@ -0,0 +1,47 @@ +(function($) { + +$('#product-list .product .expand-box').live('click', function () { + $('.expand-box').each(function(index, element){ this.clicked = false; toggle_expandbox(this); }); + this.clicked = !this.clicked; + toggle_expandbox(this); + $.each($(this).siblings('.expand-box'), function(index, value) { value.clicked = false; toggle_expandbox(value); }); + + return false; +}); + +$(document).live('click', function() { + $.each($('#product-list .product .expand-box'), function(index, value) { value.clicked = false; toggle_expandbox(value); }); +}); + +$(document).click(function (event) { + if ($(event.target).parents('.expand-box').length == 0) { + $('.expand-box').each(function(index, element){ + $(element).removeClass('open'); + $(element).children('div').toggle(false); + }); + } +}); + +var rows = {}; +$('#product-list .product').each(function (index, element) { + obj = rows[$(element).offset().top] || {}; + + obj.heights = obj.heights || []; + obj.elements = obj.elements || []; + obj.heights.push($(element).height()); + obj.elements.push(element); + + rows[$(element).offset().top] = obj; +}); + +$.each(rows, function(top, obj) { + maxWidth = Array.max(obj.heights); + $(obj.elements).height(maxWidth); +}); + +})(jQuery); + +function toggle_expandbox(e) { + jQuery(e).toggleClass('open', e.clicked); + jQuery(e).children('div').toggle(e.clicked).css({left: jQuery(e).position().left-180, top: jQuery(e).position().top-10}); +} diff --git a/app/assets/javascripts/chat.js b/app/assets/javascripts/chat.js new file mode 100644 index 0000000..35914a1 --- /dev/null +++ b/app/assets/javascripts/chat.js @@ -0,0 +1,641 @@ +/* XMPP/Jabber Noosfero's client + + XMPP Core: + http://xmpp.org/rfcs/rfc3920.html + + MUC support: + http://xmpp.org/extensions/xep-0045.html + + Messages and presence: + http://xmpp.org/rfcs/rfc3921.html +*/ + +jQuery(function($) { + // extending the current namespaces in Strophe.NS + Strophe.addNamespace('MUC_USER', 'http://jabber.org/protocol/muc#user'); + Strophe.addNamespace('MUC_OWNER', 'http://jabber.org/protocol/muc#owner'); + Strophe.addNamespace('CHAT_STATES', 'http://jabber.org/protocol/chatstates'); + Strophe.addNamespace('DATA_FORMS', 'jabber:x:data'); + + var Jabber = { + debug: true, + connection: null, + bosh_service: '/http-bind', + muc_domain: $muc_domain, + muc_supported: false, + presence_status: '', + update_presence_status_every: $update_presence_status_every, // time in seconds of how often update presence status to Noosfero DB + tab_prefix: 'conversation-', // used to compose jQuery UI tabs and anchors to select then + jids: {}, + rooms: {}, + + templates: { + buddy_item: "
  • %{name}
  • ", + occupant_item: "
  • %{name}
  • ", + room_item: "
  • %{name}
  • ", + message: $balloon_template, + error: "%{text}", + occupant_list: "
      " + }, + + jid_to_id: function (jid) { + return Strophe.getBareJidFromJid(jid).replace(/@/g, "-").replace(/\./g, "-"); + }, + + jid_of: function(jid_id) { + return Jabber.jids[jid_id].jid; + }, + name_of: function(jid_id) { + return Jabber.jids[jid_id].name; + }, + type_of: function(jid_id) { + return Jabber.jids[jid_id].type; + }, + unread_messages_of: function(jid_id, value) { + Jabber.jids[jid_id].unread_messages = (value == undefined ? Jabber.jids[jid_id].unread_messages : value); + return Jabber.jids[jid_id].unread_messages; + }, + + insert_or_update_user: function (list, item, jid, name, presence, template) { + var jid_id = Jabber.jid_to_id(jid); + var html = template + .replace('%{jid_id}', jid_id) + .replace(/%{presence_status}/g, presence) + .replace('%{name}', name); + if ($(item).length > 0) { + $(item).parent('li').replaceWith(html); + } else { + $(list).append(html); + } + Jabber.jids[jid_id] = {jid: jid, name: name, type: 'chat', presence: presence}; + }, + insert_or_update_contact: function (jid, name, presence) { + var jid_id = Jabber.jid_to_id(jid); + var list = $('#buddy-list .buddy-list'); + var item = $('#' + jid_id); + presence = presence || ($(item).length > 0 ? $(item).parent('li').attr('class') : 'offline'); + log('adding or updating contact ' + jid + ' as ' + presence); + Jabber.insert_or_update_user(list, item, jid, name, presence, Jabber.templates.buddy_item); + $("#chat-window .tab a[href='#"+ Jabber.tab_prefix + jid_id +"']") + .removeClass() + .addClass('icon-menu-' + presence + '-11'); + }, + insert_or_update_occupant: function (jid, name, presence, room_jid) { + log('adding or updating occupant ' + jid + ' as ' + presence); + var jid_id = Jabber.jid_to_id(jid); + var list = $('#' + Jabber.tab_prefix + Jabber.jid_to_id(room_jid) + ' .occupant-list ul'); + var item = $(list).find('a[data-id='+ jid_id +']'); + Jabber.insert_or_update_user(list, item, jid, name, presence, Jabber.templates.occupant_item); + if (Jabber.rooms[Jabber.jid_to_id(room_jid)] === undefined) { + Jabber.rooms[Jabber.jid_to_id(room_jid)] = {}; + } + Jabber.rooms[Jabber.jid_to_id(room_jid)][name] = jid; + }, + + remove_contact: function(jid) { + var jid_id = Jabber.jid_to_id(jid) + log('Removing contact ' + jid); + $('#' + jid_id).parent('li').remove(); + }, + + render_body_message: function(body) { + body = $().emoticon(body); + body = linkify(body, { + callback: function(text, href) { + return href ? '' + text + '' : text; + } + }); + return body; + }, + + show_message: function (jid, name, body, who, identifier) { + if (body) { + body = Jabber.render_body_message(body); + var jid_id = Jabber.jid_to_id(jid); + var tab_id = '#' + Jabber.tab_prefix + jid_id; + if ($(tab_id).find('.message').length > 0 && $(tab_id).find('.message:last').attr('data-who') == who) { + $(tab_id).find('.history').find('.message:last .comment-balloon-content').append('

      ' + body + '

      '); + } + else { + var time = new Date(); + time = time.getHours() + ':' + checkTime(time.getMinutes()); + var message_html = Jabber.templates.message + .replace('%{message}', body) + .replace(/%{who}/g, who) + .replace('%{time}', time) + .replace('%{name}', name) + .replace('%{avatar_url}', '/chat/avatar/' + identifier); + $('#' + Jabber.tab_prefix + jid_id).find('.history').append(message_html); + } + $(tab_id).find('.history').scrollTo({top:'100%', left:'0%'}); + if (who != "self") { + if ($(tab_id).find('.history:visible').length == 0) { + count_unread_messages(jid_id); + } + document.alert_title = name; + } + } + }, + + show_status: function(presence) { + log('changing my status to ' + presence); + $('#buddy-list .user-status .simplemenu-trigger') + .removeClass('icon-menu-chat') + .removeClass('icon-menu-offline') + .removeClass('icon-menu-dnd') + .addClass('icon-menu-' + (presence || 'offline')) + .find('span').html($presence_status_label[presence]); + $.get('/chat/update_presence_status', { status: {chat_status: presence, last_chat_status: presence} }); + }, + + send_availability_status: function(presence) { + Jabber.connection.send($pres().c('show').t(presence).up()); + Jabber.show_status(presence); + }, + + enter_room: function(room_jid) { + Jabber.connection.send( + $pres({to: room_jid + '/' + $own_name}).c('x', {xmlns: Strophe.NS.MUC}).c('history', {maxchars: 0}) + ); + }, + + leave_room: function(room_jid) { + Jabber.connection.send($pres({from: Jabber.connection.jid, to: room_jid + '/' + $own_name, type: 'unavailable'})) + }, + + update_chat_title: function () { + var friends_online = $('#buddy-list .buddy-list li:visible').length; + $('#friends-online').text(friends_online); + document.title = $('#title-bar .title').text(); + }, + + on_connect: function (status) { + switch (status) { + case Strophe.Status.CONNECTING: + log('connecting...'); + break; + case Strophe.Status.CONNFAIL: + log('failed to connect'); + break; + case Strophe.Status.DISCONNECTING: + log('disconnecting...'); + $('#buddy-list .toolbar').addClass('small-loading-dark'); + break; + case Strophe.Status.DISCONNECTED: + log('disconnected'); + Jabber.show_status(''); + $('#buddy-list ul.buddy-list, .occupant-list ul.occupant-list').html(''); + Jabber.update_chat_title(); + $('#chat-window .tab a').removeClass().addClass('icon-menu-offline-11'); + $('#buddy-list .toolbar').removeClass('small-loading-dark'); + $('textarea').attr('disabled', 'disabled'); + break; + case Strophe.Status.CONNECTED: + log('connected'); + case Strophe.Status.ATTACHED: + log('XMPP/BOSH session attached'); + $('#buddy-list .toolbar').removeClass('small-loading-dark'); + $('textarea').attr('disabled', ''); + break; + } + }, + + on_roster: function (iq) { + log('receiving roster'); + $(iq).find('item').each(function () { + var jid = $(this).attr('jid'); + var name = $(this).attr('name') || jid; + var jid_id = Jabber.jid_to_id(jid); + Jabber.insert_or_update_contact(jid, name); + }); + // set up presence handler and send initial presence + Jabber.connection.addHandler(Jabber.on_presence, null, "presence"); + Jabber.send_availability_status(Jabber.presence_status); + // detect if chat was opened with anchor like #community@conference.jabber.colivre + $(window).trigger('hashchange'); + }, + + // NOTE: cause Noosfero store's rosters in database based on friendship relation between people + // these event never occurs cause jabber service (ejabberd) didn't know when a roster was changed + on_roster_changed: function (iq) { + log('roster changed'); + $(iq).find('item').each(function () { + var sub = $(this).attr('subscription'); + var jid = $(this).attr('jid'); + var name = $(this).attr('name') || jid; + if (sub == 'remove') { + // contact is being removed + Jabber.remove_contact(jid); + } else { + // contact is being added or modified + Jabber.insert_or_update_contact(jid, name); + } + }); + return true; + }, + + parse: function (stanza) { + var result = {}; + if (Strophe.isTagEqual(stanza, 'presence')) { + result.from = $(stanza).attr('from'); + result.type = $(stanza).attr('type'); + if (result.type == 'unavailable') { + result.show = 'offline'; + } else { + var show = $(stanza).find("show").text(); + if (show === "" || show == "chat") { + result.show = 'chat'; + } + else if (show == "dnd" || show == "xa") { + result.show = 'dnd'; + } + else { + result.show = 'away'; + } + } + if ($(stanza).find('x[xmlns='+ Strophe.NS.MUC_USER +']').length > 0) { + result.is_from_room = true; + result.from_user = $(stanza).find('x item').attr('jid'); + if ($(stanza).find('x item').attr('affiliation') == 'owner') { + result.awaiting_configuration = ($(stanza).find('x status').attr('code') == '201'); + } + } + } + else if (Strophe.isTagEqual(stanza, 'message')) { + result.from = $(stanza).attr('from'); + result.body = $(stanza).find('body').text(); + if ($(stanza).find('error').length > 0) { + result.error = $(stanza).find('error text').text(); + if (!result.error && $(stanza).find('error').find('service-unavailable').length > 0) { + result.error = $user_unavailable_error; + } + } + } + return result; + }, + + on_presence: function (presence) { + presence = Jabber.parse(presence); + if (presence.type != 'error') { + if (presence.is_from_room) { + log('receiving room presence from ' + presence.from + ' as ' + presence.show); + var name = Strophe.getResourceFromJid(presence.from); + if (presence.from_user) { + Jabber.insert_or_update_occupant(presence.from_user, name, presence.show, presence.from); + } + else { + log('ooops! user jid not found in presence stanza'); + } + if (presence.awaiting_configuration) { + log('sending instant room configuration to ' + Strophe.getBareJidFromJid(presence.from)); + Jabber.connection.sendIQ( + $iq({type: 'set', to: Strophe.getBareJidFromJid(presence.from)}) + .c('query', {xmlns: Strophe.NS.MUC_OWNER}) + .c('x', {xmlns: Strophe.NS.DATA_FORMS, type: 'submit'}) + ); + } + } + else { + log('receiving contact presence from ' + presence.from + ' as ' + presence.show); + var jid = Strophe.getBareJidFromJid(presence.from); + if (jid != Jabber.connection.jid) { + var name = Jabber.name_of(Jabber.jid_to_id(jid)); + Jabber.insert_or_update_contact(jid, name, presence.show); + Jabber.update_chat_title(); + } + else { + // why server sends presence from myself to me? + log('ignoring presence from myself'); + } + } + } + return true; + }, + + on_private_message: function (message) { + message = Jabber.parse(message); + log('receiving message from ' + message.from); + var jid = Strophe.getBareJidFromJid(message.from); + var jid_id = Jabber.jid_to_id(jid); + var name = Jabber.name_of(jid_id); + create_conversation_tab(name, jid_id); + Jabber.show_message(jid, name, message.body, 'other', Strophe.getNodeFromJid(jid)); + $.sound.play('/sounds/receive.wav'); + return true; + }, + + on_public_message: function (message) { + message = Jabber.parse(message); + log('receiving message from ' + message.from); + var name = Strophe.getResourceFromJid(message.from); + // is a message from the room itself + if (! name) { + Jabber.show_notice(Jabber.jid_to_id(message.from), message.body); + } + // is a message from another user, not mine + else if ($own_name != name) { + var jid = Jabber.rooms[Jabber.jid_to_id(message.from)][name]; + Jabber.show_message(message.from, name, message.body, name, Strophe.getNodeFromJid(jid)); + $.sound.play('/sounds/receive.wav'); + } + return true; + }, + + on_message_error: function (message) { + message = Jabber.parse(message) + var jid = Strophe.getBareJidFromJid(message.from); + log('Receiving error message from ' + jid); + var body = Jabber.templates.error.replace('%{text}', message.error); + Jabber.show_message(jid, Jabber.name_of(Jabber.jid_to_id(jid)), body, 'other', Strophe.getNodeFromJid(jid)); + return true; + }, + + on_muc_support: function(iq) { + if ($(iq).find('identity[category=conference]').length > 0 && $(iq).find('feature[var='+ Strophe.NS.MUC +']').length > 0) { + var name = $(iq).find('identity[category=conference]').attr('name'); + log('muc support found with identity '+ name); + Jabber.muc_supported = true; + } + else { + log('muc support not found'); + } + }, + + attach_connection: function(data) { + // create the connection and attach it + Jabber.connection = new Strophe.Connection(Jabber.bosh_service); + Jabber.connection.attach(data.jid, data.sid, data.rid, Jabber.on_connect); + + // handle get roster list (buddy list) + Jabber.connection.sendIQ($iq({type: 'get'}).c('query', {xmlns: Strophe.NS.ROSTER}), Jabber.on_roster); + + // handle presence updates in roster list + Jabber.connection.addHandler(Jabber.on_roster_changed, 'jabber:iq:roster', 'iq', 'set'); + + // Handle messages + Jabber.connection.addHandler(Jabber.on_private_message, null, "message", "chat"); + + // Handle conference messages + Jabber.connection.addHandler(Jabber.on_public_message, null, "message", "groupchat"); + + // Handle message errors + Jabber.connection.addHandler(Jabber.on_message_error, null, "message", "error"); + + // discovering MUC support + Jabber.connection.sendIQ( + $iq({type: 'get', from: Jabber.connection.jid, to: Jabber.muc_domain}) + .c('query', {xmlns: Strophe.NS.DISCO_INFO}), + Jabber.on_muc_support + ); + + // Timed handle to save presence status to Noosfero DB every (N) seconds + Jabber.connection.addTimedHandler(Jabber.update_presence_status_every * 1000, function() { + log('saving presence status to Noosfero DB'); + $.get('/chat/update_presence_status', { status: {chat_status: Jabber.presence_status} }); + return true; + }); + + // uncomment for extra debugging + //Strophe.log = function (lvl, msg) { log(msg); }; + }, + + connect: function() { + if (Jabber.connection && Jabber.connection.connected) { + Jabber.send_availability_status(Jabber.presence_status); + } + else { + log('starting XMPP/BOSH session...'); + $('#buddy-list .toolbar').removeClass('small-loading-dark').addClass('small-loading-dark'); + $('.dialog-error').hide(); + $.ajax({ + url: '/chat/start_session', + dataType: 'json', + success: function(data) { + Jabber.attach_connection(data) + }, + error: function(error) { + $('#buddy-list .toolbar').removeClass('small-loading-dark'); + $('#buddy-list .dialog-error') + .html(error.responseText) + .show('highlight') + .unbind('click') + .click(function() { $(this).hide('highlight'); }); + } + }); + } + }, + + deliver_message: function(jid, body) { + var type = Jabber.type_of(Jabber.jid_to_id(jid)); + var message = $msg({to: jid, from: Jabber.connection.jid, "type": type}) + .c('body').t(body).up() + .c('active', {xmlns: Strophe.NS.CHAT_STATES}); + Jabber.connection.send(message); + Jabber.show_message(jid, $own_name, body, 'self', Strophe.getNodeFromJid(Jabber.connection.jid)); + }, + + is_a_room: function(jid_id) { + return Jabber.type_of(jid_id) == 'groupchat'; + }, + + show_notice: function(jid_id, msg) { + var tab_id = '#' + Jabber.tab_prefix + jid_id; + $(tab_id).find('.history').append("" + msg + ""); + } + }; + + $('#chat-connect').live('click', function() { + Jabber.presence_status = 'chat'; + Jabber.connect(); + }); + + $('#chat-disconnect').click(function() { + if (Jabber.connection && Jabber.connection.connected) { + Jabber.connection.disconnect(); + } + }); + + // save presence_status as offline in Noosfero database when close or reload chat window + $(window).unload(function() { + $.get('/chat/update_presence_status', { status: {chat_status: ''} }); + }); + + $('#chat-busy').click(function() { + Jabber.presence_status = 'dnd'; + Jabber.connect(); + }); + + $('#chat-retry').live('click', function() { + Jabber.presence_status = Jabber.presence_status || 'chat'; + Jabber.connect(); + }); + + // detect when click in chat with a community or person in main window of Noosfero environment + $(window).bind('hashchange', function() { + if (window.location.hash) { + var full_jid = window.location.hash.replace('#', ''); + var jid = Strophe.getBareJidFromJid(full_jid); + var name = Strophe.getResourceFromJid(full_jid); + var jid_id = Jabber.jid_to_id(full_jid); + window.location.hash = '#'; + if (full_jid) { + if (Strophe.getDomainFromJid(jid) == Jabber.muc_domain) { + if (Jabber.muc_supported) { + log('opening groupchat with ' + jid); + Jabber.jids[jid_id] = {jid: jid, name: name, type: 'groupchat'}; + Jabber.enter_room(jid); + create_conversation_tab(name, jid_id); + } + } + else { + log('opening chat with ' + jid); + create_conversation_tab(name, jid_id); + } + } + } + }); + + $('.conversation textarea').live('keydown', function(e) { + if (e.keyCode == 13) { + var jid = $(this).attr('data-to'); + var body = $(this).val(); + body = body.stripScripts(); + Jabber.deliver_message(jid, body); + $(this).val(''); + return false; + } + }); + + // open new conversation or change to already opened tab + $('#buddy-list .buddy-list li a').live('click', function() { + var jid_id = $(this).attr('id'); + var name = Jabber.name_of(jid_id); + create_conversation_tab(name, jid_id); + }); + + // put name into text area when click in one occupant + $('.occupant-list .occupant-list li a').live('click', function() { + var jid_id = $(this).attr('data-id'); + var name = Jabber.name_of(jid_id); + var val = $('.conversation textarea:visible').val(); + $('.conversation textarea:visible').val(val + name + ', ').focus(); + }); + + $('.conversation .history').live('click', function() { + $('.conversation textarea:visible').focus(); + }); + + function create_conversation_tab(title, jid_id) { + if (! $('#' + Jabber.tab_prefix + jid_id).length > 0) { + // opening chat with selected online friend + var tab = $tabs.tabs('add', '#' + Jabber.tab_prefix + jid_id, title); + var jid = Jabber.jid_of(jid_id); + $("a[href='#" + Jabber.tab_prefix + jid_id + "']").addClass($('#' + jid_id).attr('class') || 'icon-chat'); + $('#' + Jabber.tab_prefix + jid_id).find('textarea').attr('data-to', jid); + $tabs.tabs('select', '#' + Jabber.tab_prefix + jid_id); + } + } + + function count_unread_messages(jid_id, hide) { + if (hide) { + $('a[href=#' + Jabber.tab_prefix + jid_id + ']').find('.unread-messages').hide(); + Jabber.unread_messages_of(jid_id, 0); + $('a[href=#' + Jabber.tab_prefix + jid_id + ']').find('.unread-messages').text(''); + } + else { + $('a[href=#' + Jabber.tab_prefix + jid_id + ']').find('.unread-messages').show(); + var unread_messages = Jabber.unread_messages_of(jid_id) || 0; + Jabber.unread_messages_of(jid_id, ++unread_messages); + $('a[href=#' + Jabber.tab_prefix + jid_id + ']').find('.unread-messages').text(unread_messages); + } + } + + // creating tabs + var $tabs = $('#chat-window #tabs').tabs({ + tabTemplate: '
    • #{label}
    • ', + panelTemplate: "
      ", + add: function(event, ui) { + var jid_id = ui.panel.id.replace(Jabber.tab_prefix, ''); + + var notice = $starting_chat_notice.replace('%{name}', $(ui.tab).html()); + Jabber.show_notice(jid_id, notice); + + // define textarea name as '' + $(ui.panel).find('textarea').attr('name', ui.panel.id); + + if (Jabber.is_a_room(jid_id)) { + $(ui.panel).append(Jabber.templates.occupant_list); + $(ui.panel).find('.history').addClass('room'); + } + }, + show: function(event, ui) { + $(ui.panel).find('.history').scrollTo({top:'100%', left:'0%'}); + $(ui.panel).find('textarea').focus(); + var jid_id = ui.panel.id.replace(Jabber.tab_prefix, ''); + count_unread_messages(jid_id, true); + }, + remove: function(event, ui) { + var jid_id = ui.panel.id.replace(Jabber.tab_prefix, ''); + if (Jabber.is_a_room(jid_id)) { + // exiting from a chat room + var jid = Jabber.jid_of(jid_id); + log('leaving chatroom ' + jid); + Jabber.leave_room(jid); + } + else { + // TODO notify to friend when I close chat window + } + } + }).scrollabletab({ + closable: true + }); + + // remove some unnecessary css classes to apply style for tabs in bottom + $(".tabs-bottom .ui-tabs-nav, .tabs-bottom .ui-tabs-nav > *") + .removeClass("ui-corner-all ui-corner-top ui-helper-clearfix"); + $('#chat-window #tabs').removeClass("ui-corner-all ui-widget-content"); + + // positionting scrollabletab wrapper at bottom and tabs next/prev buttons + $('#stTabswrapper,#tabs').css({'position':'absolute', 'top':0, 'bottom':0, 'left': 0, 'right': 0, 'width': 'auto'}); + $('.stNavWrapper').css('position', 'absolute').css('bottom', 0).css('left', 0).css('right', 0) + .find('.stNav').css('top', null).css('bottom', '12px').css('height', '22px') + .find('.ui-icon').css('margin-top', '2px'); + $('.webkit .stNavWrapper .stNav').css('height', '20px'); + + // // blink window title alerting about new unread messages + // + // FIXME disabling window blinking for now + // + // $(window).blur(function() { + // setTimeout(function() { + // window.blinkInterval = setInterval(function() { + // if (document.title.match(/\*.+\* .+/)) { + // document.title = document.title.replace(/\*.+\* /g, ''); + // } + // else if (document.alert_title) { + // document.title = '*'+ document.alert_title +'* '+ document.title.replace(/\*.+\* /g, ''); + // }}, 2000 + // ); + // }, 2000); + // }, false); + // $(window).focus(function() { + // clearInterval(window.blinkInterval); + // document.alert_title = null; + // document.title = document.title.replace(/\*.+\* /g, ''); + // }, false); + + function log(msg) { + if(Jabber.debug && window.console && window.console.log) { + var time = new Date(); + window.console.log('['+ time.toTimeString() +'] ' + msg); + } + } + +}); + +function checkTime(i) { + if (i<10) { + i="0" + i; + } + return i; +} diff --git a/app/assets/javascripts/codepress/codepress.css b/app/assets/javascripts/codepress/codepress.css new file mode 100644 index 0000000..2186820 --- /dev/null +++ b/app/assets/javascripts/codepress/codepress.css @@ -0,0 +1,21 @@ +body { + margin-top:13px; + _margin-top:14px; + background:white; + margin-left:32px; + font-family:monospace; + font-size:13px; + white-space:pre; + background-image:url("images/line-numbers.png"); + background-repeat:repeat-y; + background-position:0 3px; + line-height:16px; + height:100%; +} +pre {margin:0;} +html>body{background-position:0 2px;} +P {margin:0;padding:0;border:0;outline:0;display:block;white-space:pre;} +b, i, s, u, a, em, tt, ins, big, cite, strong, var, dfn {text-decoration:none;font-weight:normal;font-style:normal;font-size:13px;} + +body.hide-line-numbers {background:white;margin-left:16px;} +body.show-line-numbers {background-image:url("images/line-numbers.png");margin-left:32px;} \ No newline at end of file diff --git a/app/assets/javascripts/codepress/codepress.html b/app/assets/javascripts/codepress/codepress.html new file mode 100644 index 0000000..20270fe --- /dev/null +++ b/app/assets/javascripts/codepress/codepress.html @@ -0,0 +1,35 @@ + + + + CodePress - Real Time Syntax Highlighting Editor written in JavaScript + + + + + + + + + diff --git a/app/assets/javascripts/codepress/codepress.js b/app/assets/javascripts/codepress/codepress.js new file mode 100644 index 0000000..48c1d74 --- /dev/null +++ b/app/assets/javascripts/codepress/codepress.js @@ -0,0 +1,138 @@ +/* + * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/ + * + * Copyright (C) 2006 Fernando M.A.d.S. + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation. + * + * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php + */ + +CodePress = function(obj) { + var self = document.createElement('iframe'); + self.textarea = obj; + self.textarea.disabled = true; + self.textarea.style.overflow = 'hidden'; + self.style.height = self.textarea.clientHeight +'px'; + self.style.width = self.textarea.clientWidth +'px'; + self.textarea.style.overflow = 'auto'; + self.style.border = '1px solid gray'; + self.frameBorder = 0; // remove IE internal iframe border + self.style.visibility = 'hidden'; + self.style.position = 'absolute'; + self.options = self.textarea.className; + + self.initialize = function() { + self.editor = self.contentWindow.CodePress; + self.editor.body = self.contentWindow.document.getElementsByTagName('body')[0]; + self.editor.setCode(self.textarea.value); + self.setOptions(); + self.editor.syntaxHighlight('init'); + self.textarea.style.display = 'none'; + self.style.position = 'static'; + self.style.visibility = 'visible'; + self.style.display = 'inline'; + } + + // obj can by a textarea id or a string (code) + self.edit = function(obj,language) { + if(obj) self.textarea.value = document.getElementById(obj) ? document.getElementById(obj).value : obj; + if(!self.textarea.disabled) return; + self.language = language ? language : self.getLanguage(); + self.src = CodePress.path+'codepress.html?language='+self.language+'&ts='+(new Date).getTime(); + if(self.attachEvent) self.attachEvent('onload',self.initialize); + else self.addEventListener('load',self.initialize,false); + } + + self.getLanguage = function() { + for (language in CodePress.languages) + if(self.options.match('\\b'+language+'\\b')) + return CodePress.languages[language] ? language : 'generic'; + } + + self.setOptions = function() { + if(self.options.match('autocomplete-off')) self.toggleAutoComplete(); + if(self.options.match('readonly-on')) self.toggleReadOnly(); + if(self.options.match('linenumbers-off')) self.toggleLineNumbers(); + } + + self.getCode = function() { + return self.textarea.disabled ? self.editor.getCode() : self.textarea.value; + } + + self.setCode = function(code) { + self.textarea.disabled ? self.editor.setCode(code) : self.textarea.value = code; + } + + self.toggleAutoComplete = function() { + self.editor.autocomplete = (self.editor.autocomplete) ? false : true; + } + + self.toggleReadOnly = function() { + self.textarea.readOnly = (self.textarea.readOnly) ? false : true; + if(self.style.display != 'none') // prevent exception on FF + iframe with display:none + self.editor.readOnly(self.textarea.readOnly ? true : false); + } + + self.toggleLineNumbers = function() { + var cn = self.editor.body.className; + self.editor.body.className = (cn==''||cn=='show-line-numbers') ? 'hide-line-numbers' : 'show-line-numbers'; + } + + self.toggleEditor = function() { + if(self.textarea.disabled) { + self.textarea.value = self.getCode(); + self.textarea.disabled = false; + self.style.display = 'none'; + self.textarea.style.display = 'inline'; + } + else { + self.textarea.disabled = true; + self.setCode(self.textarea.value); + self.editor.syntaxHighlight('init'); + self.style.display = 'inline'; + self.textarea.style.display = 'none'; + } + } + + self.edit(); + return self; +} + +CodePress.languages = { + csharp : 'C#', + css : 'CSS', + generic : 'Generic', + html : 'HTML', + java : 'Java', + javascript : 'JavaScript', + perl : 'Perl', + ruby : 'Ruby', + php : 'PHP', + text : 'Text', + sql : 'SQL', + vbscript : 'VBScript' +} + + +CodePress.run = function() { + s = document.getElementsByTagName('script'); + for(var i=0,n=s.length;i + * + * Developers: + * Fernando M.A.d.S. + * Michael Hurni + * Contributors: + * Martin D. Kirk + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation. + * + * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php + */ + +CodePress = { + scrolling : false, + autocomplete : true, + + // set initial vars and start sh + initialize : function() { + if(typeof(editor)=='undefined' && !arguments[0]) return; + body = document.getElementsByTagName('body')[0]; + body.innerHTML = body.innerHTML.replace(/\n/g,""); + chars = '|32|46|62|8|'; // charcodes that trigger syntax highlighting + cc = '\u2009'; // carret char + editor = document.getElementsByTagName('pre')[0]; + document.designMode = 'on'; + document.addEventListener('keypress', this.keyHandler, true); + window.addEventListener('scroll', function() { if(!CodePress.scrolling) CodePress.syntaxHighlight('scroll') }, false); + completeChars = this.getCompleteChars(); + completeEndingChars = this.getCompleteEndingChars(); + }, + + // treat key bindings + keyHandler : function(evt) { + keyCode = evt.keyCode; + charCode = evt.charCode; + fromChar = String.fromCharCode(charCode); + + if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && charCode!=90) { // shortcuts = ctrl||appleKey+shift+key!=z(undo) + CodePress.shortcuts(charCode?charCode:keyCode); + } + else if( (completeEndingChars.indexOf('|'+fromChar+'|')!= -1 || completeChars.indexOf('|'+fromChar+'|')!=-1) && CodePress.autocomplete) { // auto complete + if(!CodePress.completeEnding(fromChar)) + CodePress.complete(fromChar); + } + else if(chars.indexOf('|'+charCode+'|')!=-1||keyCode==13) { // syntax highlighting + top.setTimeout(function(){CodePress.syntaxHighlight('generic');},100); + } + else if(keyCode==9 || evt.tabKey) { // snippets activation (tab) + CodePress.snippets(evt); + } + else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed + CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML; + } + else if((charCode==122||charCode==121||charCode==90) && evt.ctrlKey) { // undo and redo + (charCode==121||evt.shiftKey) ? CodePress.actions.redo() : CodePress.actions.undo(); + evt.preventDefault(); + } + else if(charCode==118 && evt.ctrlKey) { // handle paste + top.setTimeout(function(){CodePress.syntaxHighlight('generic');},100); + } + else if(charCode==99 && evt.ctrlKey) { // handle cut + //alert(window.getSelection().getRangeAt(0).toString().replace(/\t/g,'FFF')); + } + + }, + + // put cursor back to its original position after every parsing + findString : function() { + if(self.find(cc)) + window.getSelection().getRangeAt(0).deleteContents(); + }, + + // split big files, highlighting parts of it + split : function(code,flag) { + if(flag=='scroll') { + this.scrolling = true; + return code; + } + else { + this.scrolling = false; + mid = code.indexOf(cc); + if(mid-2000<0) {ini=0;end=4000;} + else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;} + else {ini=mid-2000;end=mid+2000;} + code = code.substring(ini,end); + return code; + } + }, + + getEditor : function() { + if(!document.getElementsByTagName('pre')[0]) { + body = document.getElementsByTagName('body')[0]; + if(!body.innerHTML) return body; + if(body.innerHTML=="
      ") body.innerHTML = "
       
      "; + else body.innerHTML = "
      "+body.innerHTML+"
      "; + } + return document.getElementsByTagName('pre')[0]; + }, + + // syntax highlighting parser + syntaxHighlight : function(flag) { + //if(document.designMode=='off') document.designMode='on' + if(flag != 'init') { window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc));} + editor = CodePress.getEditor(); + o = editor.innerHTML; + o = o.replace(/
      /g,'\n'); + o = o.replace(/<.*?>/g,''); + x = z = this.split(o,flag); + x = x.replace(/\n/g,'
      '); + + if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]); + + for(i=0;i/g,'>'); + if(content.indexOf('$0')<0) content += cc; + else content = content.replace(/\$0/,cc); + content = content.replace(/\n/g,'
      '); + var pattern = new RegExp(trigger+cc,'gi'); + evt.preventDefault(); // prevent the tab key from being added + this.syntaxHighlight('snippets',pattern,content); + } + } + }, + + readOnly : function() { + document.designMode = (arguments[0]) ? 'off' : 'on'; + }, + + complete : function(trigger) { + window.getSelection().getRangeAt(0).deleteContents(); + var complete = Language.complete; + for (var i=0; i/g,'\n'); + code = code.replace(/\u2009/g,''); + code = code.replace(/<.*?>/g,''); + code = code.replace(/</g,'<'); + code = code.replace(/>/g,'>'); + code = code.replace(/&/gi,'&'); + return code; + }, + + // put code inside editor + setCode : function() { + var code = arguments[0]; + code = code.replace(/\u2009/gi,''); + code = code.replace(/&/gi,'&'); + code = code.replace(//g,'>'); + editor.innerHTML = code; + if (code == '') + document.getElementsByTagName('body')[0].innerHTML = ''; + }, + + // undo and redo methods + actions : { + pos : -1, // actual history position + history : [], // history vector + + undo : function() { + editor = CodePress.getEditor(); + if(editor.innerHTML.indexOf(cc)==-1){ + if(editor.innerHTML != " ") + window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc)); + this.history[this.pos] = editor.innerHTML; + } + this.pos --; + if(typeof(this.history[this.pos])=='undefined') this.pos ++; + editor.innerHTML = this.history[this.pos]; + if(editor.innerHTML.indexOf(cc)>-1) editor.innerHTML+=cc; + CodePress.findString(); + }, + + redo : function() { + // editor = CodePress.getEditor(); + this.pos++; + if(typeof(this.history[this.pos])=='undefined') this.pos--; + editor.innerHTML = this.history[this.pos]; + CodePress.findString(); + }, + + next : function() { // get next vector position and clean old ones + if(this.pos>20) this.history[this.pos-21] = undefined; + return ++this.pos; + } + } +} + +Language={}; +window.addEventListener('load', function() { CodePress.initialize('new'); }, true); \ No newline at end of file diff --git a/app/assets/javascripts/codepress/engines/khtml.js b/app/assets/javascripts/codepress/engines/khtml.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app/assets/javascripts/codepress/engines/khtml.js diff --git a/app/assets/javascripts/codepress/engines/msie.js b/app/assets/javascripts/codepress/engines/msie.js new file mode 100644 index 0000000..fd609b2 --- /dev/null +++ b/app/assets/javascripts/codepress/engines/msie.js @@ -0,0 +1,304 @@ +/* + * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/ + * + * Copyright (C) 2007 Fernando M.A.d.S. + * + * Developers: + * Fernando M.A.d.S. + * Michael Hurni + * Contributors: + * Martin D. Kirk + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation. + * + * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php + */ + +CodePress = { + scrolling : false, + autocomplete : true, + + // set initial vars and start sh + initialize : function() { + if(typeof(editor)=='undefined' && !arguments[0]) return; + chars = '|32|46|62|'; // charcodes that trigger syntax highlighting + cc = '\u2009'; // carret char + editor = document.getElementsByTagName('pre')[0]; + editor.contentEditable = 'true'; + document.getElementsByTagName('body')[0].onfocus = function() {editor.focus();} + document.attachEvent('onkeydown', this.metaHandler); + document.attachEvent('onkeypress', this.keyHandler); + window.attachEvent('onscroll', function() { if(!CodePress.scrolling) setTimeout(function(){CodePress.syntaxHighlight('scroll')},1)}); + completeChars = this.getCompleteChars(); + completeEndingChars = this.getCompleteEndingChars(); + setTimeout(function() { window.scroll(0,0) },50); // scroll IE to top + }, + + // treat key bindings + keyHandler : function(evt) { + charCode = evt.keyCode; + fromChar = String.fromCharCode(charCode); + + if( (completeEndingChars.indexOf('|'+fromChar+'|')!= -1 || completeChars.indexOf('|'+fromChar+'|')!=-1 )&& CodePress.autocomplete) { // auto complete + if(!CodePress.completeEnding(fromChar)) + CodePress.complete(fromChar); + } + else if(chars.indexOf('|'+charCode+'|')!=-1||charCode==13) { // syntax highlighting + CodePress.syntaxHighlight('generic'); + } + }, + + metaHandler : function(evt) { + keyCode = evt.keyCode; + + if(keyCode==9 || evt.tabKey) { + CodePress.snippets(); + } + else if((keyCode==122||keyCode==121||keyCode==90) && evt.ctrlKey) { // undo and redo + (keyCode==121||evt.shiftKey) ? CodePress.actions.redo() : CodePress.actions.undo(); + evt.returnValue = false; + } + else if(keyCode==34||keyCode==33) { // handle page up/down for IE + self.scrollBy(0, (keyCode==34) ? 200 : -200); + evt.returnValue = false; + } + else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed + CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML; + } + else if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && keyCode!=90) { // shortcuts = ctrl||appleKey+shift+key!=z(undo) + CodePress.shortcuts(keyCode); + evt.returnValue = false; + } + else if(keyCode==86 && evt.ctrlKey) { // handle paste + window.clipboardData.setData('Text',window.clipboardData.getData('Text').replace(/\t/g,'\u2008')); + top.setTimeout(function(){CodePress.syntaxHighlight('paste');},10); + } + else if(keyCode==67 && evt.ctrlKey) { // handle cut + // window.clipboardData.setData('Text',x[0]); + // code = window.clipboardData.getData('Text'); + } + }, + + // put cursor back to its original position after every parsing + + + findString : function() { + range = self.document.body.createTextRange(); + if(range.findText(cc)){ + range.select(); + range.text = ''; + } + }, + + // split big files, highlighting parts of it + split : function(code,flag) { + if(flag=='scroll') { + this.scrolling = true; + return code; + } + else { + this.scrolling = false; + mid = code.indexOf(cc); + if(mid-2000<0) {ini=0;end=4000;} + else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;} + else {ini=mid-2000;end=mid+2000;} + code = code.substring(ini,end); + return code.substring(code.indexOf('

      '),code.lastIndexOf('

      ')+4); + } + }, + + // syntax highlighting parser + syntaxHighlight : function(flag) { + if(flag!='init') document.selection.createRange().text = cc; + o = editor.innerHTML; + if(flag=='paste') { // fix pasted text + o = o.replace(/
      /g,'\r\n'); + o = o.replace(/\u2008/g,'\t'); + } + o = o.replace(/

      /g,'\n'); + o = o.replace(/<\/P>/g,'\r'); + o = o.replace(/<.*?>/g,''); + o = o.replace(/ /g,''); + o = '

      '+o+'

      '; + o = o.replace(/\n\r/g,'

      '); + o = o.replace(/\n/g,'

      '); + o = o.replace(/\r/g,'<\/P>'); + o = o.replace(/

      (

      )+/,'

      '); + o = o.replace(/<\/P>(<\/P>)+/,'

      '); + o = o.replace(/

      <\/P>/g,'


      '); + x = z = this.split(o,flag); + + if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]); + + for(i=0;i/g,'>'); + if(content.indexOf('$0')<0) content += cc; + else content = content.replace(/\$0/,cc); + content = content.replace(/\n/g,'

      '); + var pattern = new RegExp(trigger+cc,"gi"); + this.syntaxHighlight('snippets',pattern,content); + } + } + }, + + readOnly : function() { + editor.contentEditable = (arguments[0]) ? 'false' : 'true'; + }, + + complete : function(trigger) { + var complete = Language.complete; + for (var i=0; i/g,'\n'); + code = code.replace(/<\/p>/gi,'\r'); + code = code.replace(/

      /i,''); // IE first line fix + code = code.replace(/

      /gi,'\n'); + code = code.replace(/ /gi,''); + code = code.replace(/\u2009/g,''); + code = code.replace(/<.*?>/g,''); + code = code.replace(/</g,'<'); + code = code.replace(/>/g,'>'); + code = code.replace(/&/gi,'&'); + return code; + }, + + // put code inside editor + setCode : function() { + var code = arguments[0]; + code = code.replace(/\u2009/gi,''); + code = code.replace(/&/gi,'&'); + code = code.replace(//g,'>'); + editor.innerHTML = '

      '+code+'
      '; + }, + + + // undo and redo methods + actions : { + pos : -1, // actual history position + history : [], // history vector + + undo : function() { + if(editor.innerHTML.indexOf(cc)==-1){ + document.selection.createRange().text = cc; + this.history[this.pos] = editor.innerHTML; + } + this.pos--; + if(typeof(this.history[this.pos])=='undefined') this.pos++; + editor.innerHTML = this.history[this.pos]; + CodePress.findString(); + }, + + redo : function() { + this.pos++; + if(typeof(this.history[this.pos])=='undefined') this.pos--; + editor.innerHTML = this.history[this.pos]; + CodePress.findString(); + }, + + next : function() { // get next vector position and clean old ones + if(this.pos>20) this.history[this.pos-21] = undefined; + return ++this.pos; + } + } +} + +Language={}; +window.attachEvent('onload', function() { CodePress.initialize('new');}); \ No newline at end of file diff --git a/app/assets/javascripts/codepress/engines/older.js b/app/assets/javascripts/codepress/engines/older.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app/assets/javascripts/codepress/engines/older.js diff --git a/app/assets/javascripts/codepress/engines/opera.js b/app/assets/javascripts/codepress/engines/opera.js new file mode 100644 index 0000000..152c763 --- /dev/null +++ b/app/assets/javascripts/codepress/engines/opera.js @@ -0,0 +1,260 @@ +/* + * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/ + * + * Copyright (C) 2007 Fernando M.A.d.S. + * + * Contributors : + * + * Michael Hurni + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation. + * + * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php + */ + + +CodePress = { + scrolling : false, + autocomplete : true, + + // set initial vars and start sh + initialize : function() { + if(typeof(editor)=='undefined' && !arguments[0]) return; + chars = '|32|46|62|'; // charcodes that trigger syntax highlighting + cc = '\u2009'; // control char + editor = document.getElementsByTagName('body')[0]; + document.designMode = 'on'; + document.addEventListener('keyup', this.keyHandler, true); + window.addEventListener('scroll', function() { if(!CodePress.scrolling) CodePress.syntaxHighlight('scroll') }, false); + completeChars = this.getCompleteChars(); +// CodePress.syntaxHighlight('init'); + }, + + // treat key bindings + keyHandler : function(evt) { + keyCode = evt.keyCode; + charCode = evt.charCode; + + if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && charCode!=90) { // shortcuts = ctrl||appleKey+shift+key!=z(undo) + CodePress.shortcuts(charCode?charCode:keyCode); + } + else if(completeChars.indexOf('|'+String.fromCharCode(charCode)+'|')!=-1 && CodePress.autocomplete) { // auto complete + CodePress.complete(String.fromCharCode(charCode)); + } + else if(chars.indexOf('|'+charCode+'|')!=-1||keyCode==13) { // syntax highlighting + CodePress.syntaxHighlight('generic'); + } + else if(keyCode==9 || evt.tabKey) { // snippets activation (tab) + CodePress.snippets(evt); + } + else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed + CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML; + } + else if((charCode==122||charCode==121||charCode==90) && evt.ctrlKey) { // undo and redo + (charCode==121||evt.shiftKey) ? CodePress.actions.redo() : CodePress.actions.undo(); + evt.preventDefault(); + } + else if(keyCode==86 && evt.ctrlKey) { // paste + // TODO: pasted text should be parsed and highlighted + } + }, + + // put cursor back to its original position after every parsing + findString : function() { + var sel = window.getSelection(); + var range = window.document.createRange(); + var span = window.document.getElementsByTagName('span')[0]; + + range.selectNode(span); + sel.removeAllRanges(); + sel.addRange(range); + span.parentNode.removeChild(span); + //if(self.find(cc)) + //window.getSelection().getRangeAt(0).deleteContents(); + }, + + // split big files, highlighting parts of it + split : function(code,flag) { + if(flag=='scroll') { + this.scrolling = true; + return code; + } + else { + this.scrolling = false; + mid = code.indexOf(''); + if(mid-2000<0) {ini=0;end=4000;} + else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;} + else {ini=mid-2000;end=mid+2000;} + code = code.substring(ini,end); + return code; + } + }, + + // syntax highlighting parser + syntaxHighlight : function(flag) { + //if(document.designMode=='off') document.designMode='on' + if(flag!='init') { + var span = document.createElement('span'); + window.getSelection().getRangeAt(0).insertNode(span); + } + + o = editor.innerHTML; +// o = o.replace(/
      /g,'\r\n'); +// o = o.replace(/<(b|i|s|u|a|em|tt|ins|big|cite|strong)?>/g,''); + //alert(o) + o = o.replace(/<(?!span|\/span|br).*?>/gi,''); +// alert(o) +// x = o; + x = z = this.split(o,flag); + //alert(z) +// x = x.replace(/\r\n/g,'
      '); + x = x.replace(/\t/g, ' '); + + + if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]); + + for(i=0;i/g,'>'); + if(content.indexOf('$0')<0) content += cc; + else content = content.replace(/\$0/,cc); + content = content.replace(/\n/g,'
      '); + var pattern = new RegExp(trigger+cc,'gi'); + evt.preventDefault(); // prevent the tab key from being added + this.syntaxHighlight('snippets',pattern,content); + } + } + }, + + readOnly : function() { + document.designMode = (arguments[0]) ? 'off' : 'on'; + }, + + complete : function(trigger) { + window.getSelection().getRangeAt(0).deleteContents(); + var complete = Language.complete; + for (var i=0; i/g,'\n'); + code = code.replace(/\u2009/g,''); + code = code.replace(/<.*?>/g,''); + code = code.replace(/</g,'<'); + code = code.replace(/>/g,'>'); + code = code.replace(/&/gi,'&'); + return code; + }, + + // put code inside editor + setCode : function() { + var code = arguments[0]; + code = code.replace(/\u2009/gi,''); + code = code.replace(/&/gi,'&'); + code = code.replace(//g,'>'); + editor.innerHTML = code; + }, + + // undo and redo methods + actions : { + pos : -1, // actual history position + history : [], // history vector + + undo : function() { + if(editor.innerHTML.indexOf(cc)==-1){ + window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc)); + this.history[this.pos] = editor.innerHTML; + } + this.pos--; + if(typeof(this.history[this.pos])=='undefined') this.pos++; + editor.innerHTML = this.history[this.pos]; + CodePress.findString(); + }, + + redo : function() { + this.pos++; + if(typeof(this.history[this.pos])=='undefined') this.pos--; + editor.innerHTML = this.history[this.pos]; + CodePress.findString(); + }, + + next : function() { // get next vector position and clean old ones + if(this.pos>20) this.history[this.pos-21] = undefined; + return ++this.pos; + } + } +} + +Language={}; +window.addEventListener('load', function() { CodePress.initialize('new'); }, true); diff --git a/app/assets/javascripts/codepress/images/line-numbers.png b/app/assets/javascripts/codepress/images/line-numbers.png new file mode 100644 index 0000000..ffea4e6 Binary files /dev/null and b/app/assets/javascripts/codepress/images/line-numbers.png differ diff --git a/app/assets/javascripts/codepress/index.html b/app/assets/javascripts/codepress/index.html new file mode 100644 index 0000000..703cec2 --- /dev/null +++ b/app/assets/javascripts/codepress/index.html @@ -0,0 +1,443 @@ + + + + + CodePress - Real Time Syntax Highlighting Editor written in JavaScript + + + + + + +
      + + + +
      + + + + + + + + + + +

      + CodePress is web-based source code editor with syntax highlighting written in JavaScript that colors text in real time while it's being typed in the browser. +

      + +

      + Go to http://codepress.org/ for updates. +

      + +

      Demo

      +
      + choose example in: + + + + + + + +
      + + + +

      + + + +

      + + + + + +

      + + + +

      Installation

      +
        +
      1. +

        + Download and uncompress CodePress under a directory inside your webserver.
        + Example: http://yourserver/codepress/
        + Since CodePress is pure JavaScript and HTML, you can also test it without a webserver. +

        +
      2. +
      3. +

        + Insert CodePress script somewhere in your page inside the <head> or above the </body> tag. +

        + +

        + <script src="/codepress/codepress.js" type="text/javascript"></script> +

        +
      4. + +
      5. +

        + Add the <textarea> tag to the place on your page you want CodePress to appear. CodePress will inherit the width and height of your textarea. + When the page loads, it will automatically replace your textarea with a CodePress window. +

        +

        + <textarea id="myCpWindow" class="codepress javascript linenumbers-off">
        +    // your code here
        + </textarea> +

        +
          +
        • + The javascript portion of the class="" means that the language being edited is JavaScript. +
        • +
        • + The codepress portion of the class="" is mandatory and indicates a textarea to be replaced for a CodePress window. +
        • +
        • + Other class options are linenumbers-off, autocomplete-off and readonly-on. +
        • +
        • + Careful not to use the same id for two different CodePress windows (<textarea id="xx"...>) +
        • +
        + +
      6. +
      + +

      You also can...

      +
        +
      1. + Open/edit code from a different textarea.
        + Example: textarea_id.edit('other_textarea_id','language')
        +
      2. +
      3. + Get code from CodePress window.
        + Example: textarea_id.getCode()
        +
      4. +
      5. + Turn on/off CodePress editor and return to the regular textarea.
        + Example: textarea_id.toggleEditor()
        +
      6. +
      7. + Turn on/off line numbers.
        + Example: textarea_id.toggleLineNumbers()
        +
      8. +
      9. + Turn on/off read only.
        + Example: textarea_id.toggleReadOnly()
        +
      10. +
      11. + Turn on/off auto-complete.
        + Example: textarea_id.toggleAutoComplete()
        +
      12. + +
      + + + +

      License

      +

      + CodePress is distributed under the LGPL. If your software is compatible with this licence or it is under Creative Commons, you can use it as you want. Just keep the credits somewhere around. +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/javascripts/codepress/languages/asp.css b/app/assets/javascripts/codepress/languages/asp.css new file mode 100644 index 0000000..87af390 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/asp.css @@ -0,0 +1,71 @@ +/* + * CodePress color styles for ASP-VB syntax highlighting + * By Martin D. Kirk + */ +/* tags */ + +b { + color:#000080; +} +/* comments */ +big, big b, big em, big ins, big s, strong i, strong i b, strong i s, strong i u, strong i a, strong i a u, strong i s u { + color:gray; + font-weight:normal; +} +/* ASP comments */ +strong dfn, strong dfn a,strong dfn var, strong dfn a u, strong dfn u{ + color:gray; + font-weight:normal; +} + /* attributes */ +s, s b, span s u, span s cite, strong span s { + color:#5656fa ; + font-weight:normal; +} + /* strings */ +strong s,strong s b, strong s u, strong s cite { + color:#009900; + font-weight:normal; +} +strong ins{ + color:#000000; + font-weight:bold; +} + /* Syntax */ +strong a, strong a u { + color:#0000FF; + font-weight:; +} + /* Native Keywords */ +strong u { + color:#990099; + font-weight:bold; +} +/* Numbers */ +strong var{ + color:#FF0000; +} +/* ASP Language */ +span{ + color:#990000; + font-weight:bold; +} +strong i,strong a i, strong u i { + color:#009999; +} +/* style */ +em { + color:#800080; + font-style:normal; +} + /* script */ +ins { + color:#800000; + font-weight:bold; +} + +/* */ +cite, s cite { + color:red; + font-weight:bold; +} \ No newline at end of file diff --git a/app/assets/javascripts/codepress/languages/asp.js b/app/assets/javascripts/codepress/languages/asp.js new file mode 100644 index 0000000..7439539 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/asp.js @@ -0,0 +1,117 @@ +/* + * CodePress regular expressions for ASP-vbscript syntax highlighting + */ + +// ASP VBScript +Language.syntax = [ +// all tags + { input : /(<[^!%|!%@]*?>)/g, output : '$1' }, +// style tags + { input : /(<style.*?>)(.*?)(<\/style>)/g, output : '$1$2$3' }, +// script tags + { input : /(<script.*?>)(.*?)(<\/script>)/g, output : '$1$2$3' }, +// strings "" and attributes + { input : /\"(.*?)(\"|
      |<\/P>)/g, output : '"$1$2' }, +// ASP Comment + { input : /\'(.*?)(\'|
      |<\/P>)/g, output : '\'$1$2'}, +// <%.* + { input : /(<%)/g, output : '$1' }, +// .*%> + { input : /(%>)/g, output : '$1' }, +// <%@...%> + { input : /(<%@)(.+?)(%>)/gi, output : '$1$2$3' }, +//Numbers + { input : /\b([\d]+)\b/g, output : '$1' }, +// Reserved Words 1 (Blue) + { input : /\b(And|As|ByRef|ByVal|Call|Case|Class|Const|Dim|Do|Each|Else|ElseIf|Empty|End|Eqv|Exit|False|For|Function)\b/gi, output : '$1' }, + { input : /\b(Get|GoTo|If|Imp|In|Is|Let|Loop|Me|Mod|Enum|New|Next|Not|Nothing|Null|On|Option|Or|Private|Public|ReDim|Rem)\b/gi, output : '$1' }, + { input : /\b(Resume|Select|Set|Stop|Sub|Then|To|True|Until|Wend|While|With|Xor|Execute|Randomize|Erase|ExecuteGlobal|Explicit|step)\b/gi, output : '$1' }, +// Reserved Words 2 (Purple) + { input : /\b(Abandon|Abs|AbsolutePage|AbsolutePosition|ActiveCommand|ActiveConnection|ActualSize|AddHeader|AddNew|AppendChunk)\b/gi, output : '$1' }, + { input : /\b(AppendToLog|Application|Array|Asc|Atn|Attributes|BeginTrans|BinaryRead|BinaryWrite|BOF|Bookmark|Boolean|Buffer|Byte)\b/gi, output : '$1' }, + { input : /\b(CacheControl|CacheSize|Cancel|CancelBatch|CancelUpdate|CBool|CByte|CCur|CDate|CDbl|Charset|Chr|CInt|Clear)\b/gi, output : '$1' }, + { input : /\b(ClientCertificate|CLng|Clone|Close|CodePage|CommandText|CommandType|CommandTimeout|CommitTrans|CompareBookmarks|ConnectionString|ConnectionTimeout)\b/gi, output : '$1' }, + { input : /\b(Contents|ContentType|Cookies|Cos|CreateObject|CreateParameter|CSng|CStr|CursorLocation|CursorType|DataMember|DataSource|Date|DateAdd|DateDiff)\b/gi, output : '$1' }, + { input : /\b(DatePart|DateSerial|DateValue|Day|DefaultDatabase|DefinedSize|Delete|Description|Double|EditMode|Eof|EOF|err|Error)\b/gi, output : '$1' }, + { input : /\b(Exp|Expires|ExpiresAbsolute|Filter|Find|Fix|Flush|Form|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent)\b/gi, output : '$1' }, + { input : /\b(GetChunk|GetLastError|GetRows|GetString|Global|HelpContext|HelpFile|Hex|Hour|HTMLEncode|IgnoreCase|Index|InStr|InStrRev)\b/gi, output : '$1' }, + { input : /\b(Int|Integer|IsArray|IsClientConnected|IsDate|IsolationLevel|Join|LBound|LCase|LCID|Left|Len|Lock|LockType|Log|Long|LTrim)\b/gi, output : '$1' }, + { input : /\b(MapPath|MarshalOptions|MaxRecords|Mid|Minute|Mode|Month|MonthName|Move|MoveFirst|MoveLast|MoveNext|MovePrevious|Name|NextRecordset)\b/gi, output : '$1' }, + { input : /\b(Now|Number|NumericScale|ObjectContext|Oct|Open|OpenSchema|OriginalValue|PageCount|PageSize|Pattern|PICS|Precision|Prepared|Property)\b/gi, output : '$1' }, + { input : /\b(Provider|QueryString|RecordCount|Redirect|RegExp|Remove|RemoveAll|Replace|Requery|Request|Response|Resync|Right|Rnd)\b/gi, output : '$1' }, + { input : /\b(RollbackTrans|RTrim|Save|ScriptTimeout|Second|Seek|Server|ServerVariables|Session|SessionID|SetAbort|SetComplete|Sgn)\b/gi, output : '$1' }, + { input : /\b(Sin|Size|Sort|Source|Space|Split|Sqr|State|StaticObjects|Status|StayInSync|StrComp|String|StrReverse|Supports|Tan|Time)\b/gi, output : '$1' }, + { input : /\b(Timeout|Timer|TimeSerial|TimeValue|TotalBytes|Transfer|Trim|Type|Type|UBound|UCase|UnderlyingValue|UnLock|Update|UpdateBatch)\b/gi, output : '$1' }, + { input : /\b(URLEncode|Value|Value|Version|Weekday|WeekdayName|Write|Year)\b/gi, output : '$1' }, +// Reserved Words 3 (Turquis) + { input : /\b(vbBlack|vbRed|vbGreen|vbYellow|vbBlue|vbMagenta|vbCyan|vbWhite|vbBinaryCompare|vbTextCompare)\b/gi, output : '$1' }, + { input : /\b(vbSunday|vbMonday|vbTuesday|vbWednesday|vbThursday|vbFriday|vbSaturday|vbUseSystemDayOfWeek)\b/gi, output : '$1' }, + { input : /\b(vbFirstJan1|vbFirstFourDays|vbFirstFullWeek|vbGeneralDate|vbLongDate|vbShortDate|vbLongTime|vbShortTime)\b/gi, output : '$1' }, + { input : /\b(vbObjectError|vbCr|VbCrLf|vbFormFeed|vbLf|vbNewLine|vbNullChar|vbNullString|vbTab|vbVerticalTab|vbUseDefault|vbTrue)\b/gi, output : '$1' }, + { input : /\b(vbFalse|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant)\b/gi, output : '$1' }, + { input : /\b(vbDataObject|vbDecimal|vbByte|vbArray)\b/gi, output : '$1' }, +// html comments + { input : /(<!--.*?-->.)/g, output : '$1' } +] + +Language.Functions = [ + // Output at index 0, must be the desired tagname surrounding a $1 + // Name is the index from the regex that marks the functionname + {input : /(function|sub)([ ]*?)(\w+)([ ]*?\()/gi , output : '$1', name : '$3'} +] + +Language.snippets = [ +//Conditional + { input : 'if', output : 'If $0 Then\n\t\nEnd If' }, + { input : 'ifelse', output : 'If $0 Then\n\t\n\nElse\n\t\nEnd If' }, + { input : 'case', output : 'Select Case $0\n\tCase ?\n\tCase Else\nEnd Select'}, +//Response + { input : 'rw', output : 'Response.Write( $0 )' }, + { input : 'resc', output : 'Response.Cookies( $0 )' }, + { input : 'resb', output : 'Response.Buffer'}, + { input : 'resflu', output : 'Response.Flush()'}, + { input : 'resend', output : 'Response.End'}, +//Request + { input : 'reqc', output : 'Request.Cookies( $0 )' }, + { input : 'rq', output : 'Request.Querystring("$0")' }, + { input : 'rf', output : 'Request.Form("$0")' }, +//FSO + { input : 'fso', output : 'Set fso = Server.CreateObject("Scripting.FileSystemObject")\n$0' }, + { input : 'setfo', output : 'Set fo = fso.getFolder($0)' }, + { input : 'setfi', output : 'Set fi = fso.getFile($0)' }, + { input : 'twr', output : 'Set f = fso.CreateTextFile($0,true)\'overwrite\nf.WriteLine()\nf.Close'}, + { input : 'tre', output : 'Set f = fso.OpenTextFile($0, 1)\nf.ReadAll\nf.Close'}, +//Server + { input : 'mapp', output : 'Server.Mappath($0)' }, +//Loops + { input : 'foreach', output : 'For Each $0 in ?\n\t\nNext' }, + { input : 'for', output : 'For $0 to ? step ?\n\t\nNext' }, + { input : 'do', output : 'Do While($0)\n\t\nLoop' }, + { input : 'untilrs', output : 'do until rs.eof\n\t\nrs.movenext\nloop' }, +//ADO + { input : 'adorec', output : 'Set rs = Server.CreateObject("ADODB.Recordset")' }, + { input : 'adocon', output : 'Set Conn = Server.CreateObject("ADODB.Connection")' }, + { input : 'adostr', output : 'Set oStr = Server.CreateObject("ADODB.Stream")' }, +//Http Request + { input : 'xmlhttp', output : 'Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")\nxmlHttp.open("GET", $0, false)\nxmlHttp.send()\n?=xmlHttp.responseText' }, + { input : 'xmldoc', output : 'Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")\nxmldoc.async=false\nxmldoc.load(request)'}, +//Functions + { input : 'func', output : 'Function $0()\n\t\n\nEnd Function'}, + { input : 'sub', output : 'Sub $0()\n\t\nEnd Sub'} + +] + +Language.complete = [ + //{ input : '\'', output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [ + { input : '[space]', output : ' ' }, + { input : '[enter]', output : '
      ' } , + { input : '[j]', output : 'testing' }, + { input : '[7]', output : '&' } +] \ No newline at end of file diff --git a/app/assets/javascripts/codepress/languages/autoit.css b/app/assets/javascripts/codepress/languages/autoit.css new file mode 100644 index 0000000..953ed86 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/autoit.css @@ -0,0 +1,13 @@ +/** + * CodePress color styles for AutoIt syntax highlighting + */ + +u {font-style:normal;color:#000090;font-weight:bold;font-family:Monospace;} +var {color:#AA0000;font-weight:bold;font-style:normal;} +em {color:#FF33FF;} +ins {color:#AC00A9;} +i {color:#F000FF;} +b {color:#FF0000;} +a {color:#0080FF;font-weight:bold;} +s, s u, s b {color:#9999CC;font-weight:normal;} +cite, cite *{color:#009933;font-weight:normal;} \ No newline at end of file diff --git a/app/assets/javascripts/codepress/languages/autoit.js b/app/assets/javascripts/codepress/languages/autoit.js new file mode 100644 index 0000000..c34ecc6 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/autoit.js @@ -0,0 +1,32 @@ +/** + * CodePress regular expressions for AutoIt syntax highlighting + * @author: James Brooks, Michael HURNI + */ + +// AutoIt +Language.syntax = [ + { input : /({|}|\(|\))/g, output : '$1' }, // Brackets + { input : /(\*|\+|-)/g, output : '$1' }, // Operator + { input : /\"(.*?)(\"|
      |<\/P>)/g, output : "\"$1$2" }, // strings double + { input : /\'(.*?)(\'|
      |<\/P>)/g, output : '\'$1$2' }, // strings single + { input : /\b([\d]+)\b/g, output : '$1' }, // Numbers + { input : /#(.*?)(
      |<\/P>)/g, output : '#$1$2' }, // Directives and Includes + { input : /(\$[\w\.]*)/g, output : '$1' }, // vars + { input : /(_[\w\.]*)/g, output : '$1' }, // underscored word + { input : /(\@[\w\.]*)/g, output : '$1' }, // Macros + { input : /\b(Abs|ACos|AdlibDisable|AdlibEnable|Asc|AscW|ASin|Assign|ATan|AutoItSetOption|AutoItWinGetTitle|AutoItWinSetTitle|Beep|Binary|BinaryLen|BinaryMid|BinaryToString|BitAND|BitNOT|BitOR|BitSHIFT|BitXOR|BlockInput|Break|Call|CDTray|Ceiling|Chr|ChrW|ClipGet|ClipPut|ConsoleRead|ConsoleWrite|ConsoleWriteError|ControlClick|ControlCommand|ControlDisable|ControlEnable|ControlFocus|ControlGetFocus|ControlGetHandle|ControlGetPos|ControlGetText|ControlHide|ControlListView|ControlMove|ControlSend|ControlSetText|ControlShow|Cos|Dec|DirCopy|DirCreate|DirGetSize|DirMove|DirRemove|DllCall|DllCall|DllClose|DllOpen|DllStructCreate|DllStructGetData|DllStructGetPtr|DllStructGetSize|DllStructSetData|DriveGetDrive|DriveGetFileSystem|DriveGetLabel|DriveGetSerial|DriveGetType|DriveMapAdd|DriveMapDel|DriveMapGet|DriveSetLabel|DriveSpaceFree|DriveSpaceTotal|DriveStatus|EnvGet|EnvSet|EnvUpdate|Eval|Execute|Exp|FileChangeDir|FileClose|FileCopy|FileCreateNTFS|FileCreateShortcut|FileDelete|FileExists|FileFindFirstFile|FileFindNextFile|FileGetAttrib|FileGetLongName|FileGetShortcut|FileGetShortName|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileOpen|FileOpenDialog|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileSaveDialog|FileSelectFolder|FileSetAttrib|FileSetTime|FileWrite|FileWriteLine|Floor|FtpSetProxy|GuiCreate|GuiCtrlCreateAvi|GuiCtrlCreateButton|GuiCtrlCreateCheckbox|GuiCtrlCreateCombo|GuiCtrlCreateContextMenu|GuiCtrlCreateDate|GuiCtrlCreateDummy|GuiCtrlCreateEdit|GuiCtrlCreateGraphic|GuiCtrlCreateGroup|GuiCtrlCreateIcon|GuiCtrlCreateInput|GuiCtrlCreateLabel|GuiCtrlCreateList|GuiCtrlCreateListView|GuiCtrlCreateListViewItem|GuiCtrlCreateMenu|GuiCtrlCreateMenuItem|GuiCtrlCreateMonthCal|GuiCtrlCreateObj|GuiCtrlCreatePic|GuiCtrlCreateProgress|GuiCtrlCreateRadio|GuiCtrlCreateSlider|GuiCtrlCreateTab|GuiCtrlCreateTabItem|GuiCtrlCreateUpdown|GuiCtrlDelete|GuiCtrlGetHandle|GuiCtrlGetState|GuiCtrlRead|GuiCtrlRecvMsg|GuiCtrlSentMsg|GuiCtrlSendToDummy|GuiCtrlSetBkColor|GuiCtrlSetColor|GuiCtrlSetCursor|GuiCtrlSetData|GuiCtrlSetFont|GuiCtrlSetGraphic|GuiCtrlSetImage|GuiCtrlSetLimit|GuiCtrlSetOnEvent|GuiCtrlSetPos|GuiCtrlResizing|GuiCtrlSetState|GuiCtrlSetTip|GuiDelete|GuiGetCursorInfo|GuiGetMsg|GuiGetStyle|GuiRegisterMsg|GuiSetBkColor|GuiSetCoord|GuiSetCursor|GuiSetFont|GuiSetHelp|GuiSetIcon|GuiSetOnEvent|GuiSetStat|GuiSetStyle|GuiStartGroup|GuiSwitch|Hex|HotKeySet|HttpSetProxy|HWnd|InetGet|InetGetSize|IniDelete|IniRead|IniReadSection|IniReadSectionNames|IniRenameSection|IniWrite|IniWriteSection|InputBox|Int|IsAdmin|IsArray|IsBinary|IsBool|IsDeclared|IsDllStruct|IsFloat|IsHWnd|IsInt|IsKeyword|IsNumber|IsObj|IsString|Log|MemGetStats|Mod|MouseClick|MouseClickDrag|MouseDown|MouseGetCursor|MouseGetPos|MouseMove|MouseUp|MouseWheel|MsgBox|Number|ObjCreate|ObjEvent|ObjGet|ObjName|Ping|PixelCheckSum|PixelGetColor|PixelSearch|ProcessClose|ProcessExists|ProcessList|ProcessSetPriority|ProcessWait|ProcessWaitClose|ProgressOff|ProcessOn|ProgressSet|Random|RegDelete|RegEnumKey|RegEnumVal|RegRead|RegWrite|Round|Run|RunAsSet|RunWait|Send|SetError|SetExtended|ShellExecute|ShellExecuteWait|Shutdown|Sin|Sleep|SoundPlay|SoundSetWaveVolume|SplashImageOn|SplashOff|SplashTextOn|Sqrt|SRandom|StatusbarGetText|StderrRead|StdinWrite|StdoutRead|String|StringAddCR|StringCompare|StringFormat|StringInStr|StringIsAlNum|StringIsAlpha|StringIsASCII|StringIsDigit|StringIsFloat|StringIsInt|StringIsLower|StringIsSpace|StringIsUpper|StringIsXDigit|StringLeft|StringLen|StringLower|StringMid|StringRegExp|StringRegExpReplace|StringReplace|StringRight|StringSplit|StringStripCR|StringStripWS|StringToBinary|StringTrimLeft|StringTrimRight|StringUpper|Tan|TCPAccept|TCPCloseSocket|TCPConnect|TCPListen|TCPNameToIP|TCPrecv|TCPSend|TCPShutdown|TCPStartup|TimerDiff|TimerInit|ToolTip|TrayCreateItem|TrayCreateMenu|TrayGetMenu|TrayGetMsg|TrayItemDelete|TrayItemGetHandle|TrayItemGetState|TrayItemGetText|TrayItemSetOnEvent|TrayItemSetState|TrayItemSetText|TraySetClick|TraySetIcon|TraySetOnEvent|TraySetPauseIcon|TraySetState|TraySetToolTip|TrayTip|UBound|UDPBind|UDPCloseSocket|UDPOpen|UDPRecv|UDPSend|WinActivate|WinActive|WinClose|WinExists|WinFlash|WinGetCaretPos|WinGetClassList|WinGetClientSize|WinGetHandle|WinGetPos|WinGetProcess|WinGetState|WinGetText|WinGetTitle|WinKill|WinList|WinMenuSelectItem|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinSetOnTop|WinSetState|WinSetTitle|WinSetTrans|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/g, output : '$1' } ,// reserved words + { input : /\B;(.*?)(
      |<\/P>)/g, output : ';$1$2' }, // comments + { input : /#CS(.*?)#CE/g, output : '#CS$1#CE' } // Block Comments +] + +Language.snippets = [] + +Language.complete = [ +{ input : '\'',output : '\'$0\'' }, +{ input : '"', output : '"$0"' }, +{ input : '(', output : '\($0\)' }, +{ input : '[', output : '\[$0\]' }, +{ input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/app/assets/javascripts/codepress/languages/csharp.css b/app/assets/javascripts/codepress/languages/csharp.css new file mode 100644 index 0000000..6415d65 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/csharp.css @@ -0,0 +1,9 @@ +/* + * CodePress color styles for Java syntax highlighting + * By Edwin de Jonge + */ + +b {color:#7F0055;font-weight:bold;font-style:normal;} /* reserved words */ +a {color:#2A0088;font-weight:bold;font-style:normal;} /* types */ +i, i b, i s {color:#3F7F5F;font-weight:bold;} /* comments */ +s, s b {color:#2A00FF;font-weight:normal;} /* strings */ \ No newline at end of file diff --git a/app/assets/javascripts/codepress/languages/csharp.js b/app/assets/javascripts/codepress/languages/csharp.js new file mode 100644 index 0000000..20fdd91 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/csharp.js @@ -0,0 +1,25 @@ +/* + * CodePress regular expressions for C# syntax highlighting + * By Edwin de Jonge + */ + +Language.syntax = [ // C# + { input : /\"(.*?)(\"|
      |<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.?)(\'|
      |<\/P>)/g, output : '\'$1$2' }, // strings single quote + { input : /\b(abstract|as|base|break|case|catch|checked|continue|default|delegate|do|else|event|explicit|extern|false|finally|fixed|for|foreach|get|goto|if|implicit|in|interface|internal|is|lock|namespace|new|null|object|operator|out|override|params|partial|private|protected|public|readonly|ref|return|set|sealed|sizeof|static|stackalloc|switch|this|throw|true|try|typeof|unchecked|unsafe|using|value|virtual|while)\b/g, output : '$1' }, // reserved words + { input : /\b(bool|byte|char|class|double|float|int|interface|long|string|struct|void)\b/g, output : '$1' }, // types + { input : /([^:]|^)\/\/(.*?)(//$2$3' }, // comments // + { input : /\/\*(.*?)\*\//g, output : '/*$1*/' } // comments /* */ +]; + +Language.snippets = []; + +Language.complete = [ // Auto complete only for 1 character + {input : '\'',output : '\'$0\'' }, + {input : '"', output : '"$0"' }, + {input : '(', output : '\($0\)' }, + {input : '[', output : '\[$0\]' }, + {input : '{', output : '{\n\t$0\n}' } +]; + +Language.shortcuts = []; \ No newline at end of file diff --git a/app/assets/javascripts/codepress/languages/css.css b/app/assets/javascripts/codepress/languages/css.css new file mode 100644 index 0000000..64778d2 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/css.css @@ -0,0 +1,10 @@ +/* + * CodePress color styles for CSS syntax highlighting + */ + +b, b a, b u {color:#000080;} /* tags, ids, classes */ +i, i b, i s, i a, i u {color:gray;} /* comments */ +s, s b {color:#a0a0dd;} /* parameters */ +a {color:#0000ff;} /* keys */ +u {color:red;} /* values */ + diff --git a/app/assets/javascripts/codepress/languages/css.js b/app/assets/javascripts/codepress/languages/css.js new file mode 100644 index 0000000..00dcce0 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/css.js @@ -0,0 +1,23 @@ +/* + * CodePress regular expressions for CSS syntax highlighting + */ + +// CSS +Language.syntax = [ + { input : /(.*?){(.*?)}/g,output : '$1{$2}' }, // tags, ids, classes, values + { input : /([\w-]*?):([^\/])/g,output : '$1:$2' }, // keys + { input : /\((.*?)\)/g,output : '($1)' }, // parameters + { input : /\/\*(.*?)\*\//g,output : '/*$1*/'} // comments +] + +Language.snippets = [] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/app/assets/javascripts/codepress/languages/generic.css b/app/assets/javascripts/codepress/languages/generic.css new file mode 100644 index 0000000..3d52b6b --- /dev/null +++ b/app/assets/javascripts/codepress/languages/generic.css @@ -0,0 +1,9 @@ +/* + * CodePress color styles for generic syntax highlighting + */ + +b {color:#7F0055;font-weight:bold;} /* reserved words */ +u {color:darkblue;font-weight:bold;} /* special words */ +i, i b, i s, i u, i em {color:green;font-weight:normal;} /* comments */ +s, s b, s em {color:#2A00FF;font-weight:normal;} /* strings */ +em {font-weight:bold;} /* special chars */ \ No newline at end of file diff --git a/app/assets/javascripts/codepress/languages/generic.js b/app/assets/javascripts/codepress/languages/generic.js new file mode 100644 index 0000000..8289da0 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/generic.js @@ -0,0 +1,25 @@ +/* + * CodePress regular expressions for generic syntax highlighting + */ + +// generic languages +Language.syntax = [ + { input : /\"(.*?)(\"|
      |<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.*?)(\'|
      |<\/P>)/g, output : '\'$1$2' }, // strings single quote + { input : /\b(abstract|continue|for|new|switch|default|goto|boolean|do|if|private|this|break|double|protected|throw|byte|else|import|public|throws|case|return|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|const|float|while|function|label)\b/g, output : '$1' }, // reserved words + { input : /([\(\){}])/g, output : '$1' }, // special chars; + { input : /([^:]|^)\/\/(.*?)(//$2$3' }, // comments // + { input : /\/\*(.*?)\*\//g, output : '/*$1*/' } // comments /* */ +] + +Language.snippets = [] + +Language.complete = [ + { input : '\'', output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/app/assets/javascripts/codepress/languages/html.css b/app/assets/javascripts/codepress/languages/html.css new file mode 100644 index 0000000..35617cb --- /dev/null +++ b/app/assets/javascripts/codepress/languages/html.css @@ -0,0 +1,13 @@ +/* + * CodePress color styles for HTML syntax highlighting + */ + +b {color:#000080;} /* tags */ +ins, ins b, ins s, ins em {color:gray;} /* comments */ +s, s b {color:#7777e4;} /* attribute values */ +a {color:green;} /* links */ +u {color:#E67300;} /* forms */ +big {color:#db0000;} /* images */ +em, em b {color:#800080;} /* style */ +strong {color:#800000;} /* script */ +tt i {color:darkblue;font-weight:bold;} /* script reserved words */ diff --git a/app/assets/javascripts/codepress/languages/html.js b/app/assets/javascripts/codepress/languages/html.js new file mode 100644 index 0000000..94469b4 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/html.js @@ -0,0 +1,59 @@ +/* + * CodePress regular expressions for HTML syntax highlighting + */ + +// HTML +Language.syntax = [ + { input : /(<[^!]*?>)/g, output : '$1' }, // all tags + { input : /(<a .*?>|<\/a>)/g, output : '$1' }, // links + { input : /(<img .*?>)/g, output : '$1' }, // images + { input : /(<\/?(button|textarea|form|input|select|option|label).*?>)/g, output : '$1' }, // forms + { input : /(<style.*?>)(.*?)(<\/style>)/g, output : '$1$2$3' }, // style tags + { input : /(<script.*?>)(.*?)(<\/script>)/g, output : '$1$2$3' }, // script tags + { input : /=(".*?")/g, output : '=$1' }, // atributes double quote + { input : /=('.*?')/g, output : '=$1' }, // atributes single quote + { input : /(<!--.*?-->.)/g, output : '$1' }, // comments + { input : /\b(alert|window|document|break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g, output : '$1' } // script reserved words +] + +Language.snippets = [ + { input : 'aref', output : '' }, + { input : 'h1', output : '

      $0

      ' }, + { input : 'h2', output : '

      $0

      ' }, + { input : 'h3', output : '

      $0

      ' }, + { input : 'h4', output : '

      $0

      ' }, + { input : 'h5', output : '
      $0
      ' }, + { input : 'h6', output : '
      $0
      ' }, + { input : 'html', output : '\n\t$0\n' }, + { input : 'head', output : '\n\t\n\t$0\n\t\n' }, + { input : 'img', output : '' }, + { input : 'input', output : '' }, + { input : 'label', output : '' }, + { input : 'legend', output : '\n\t$0\n' }, + { input : 'link', output : '' }, + { input : 'base', output : '' }, + { input : 'body', output : '\n\t$0\n' }, + { input : 'css', output : '' }, + { input : 'div', output : '
      \n\t$0\n
      ' }, + { input : 'divid', output : '
      \n\t\n
      ' }, + { input : 'dl', output : '
      \n\t
      \n\t\t$0\n\t
      \n\t
      \n
      ' }, + { input : 'fieldset', output : '
      \n\t$0\n
      ' }, + { input : 'form', output : '
      \n\t\n
      ' }, + { input : 'meta', output : '' }, + { input : 'p', output : '

      $0

      ' }, + { input : 'script', output : '' }, + { input : 'scriptsrc', output : '' }, + { input : 'span', output : '$0' }, + { input : 'table', output : '\n\t\n\t\n
      ' }, + { input : 'style', output : '' } +] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/app/assets/javascripts/codepress/languages/java.css b/app/assets/javascripts/codepress/languages/java.css new file mode 100644 index 0000000..2339ded --- /dev/null +++ b/app/assets/javascripts/codepress/languages/java.css @@ -0,0 +1,7 @@ +/* + * CodePress color styles for Java syntax highlighting + */ + +b {color:#7F0055;font-weight:bold;font-style:normal;} /* reserved words */ +i, i b, i s {color:#3F7F5F;font-weight:bold;} /* comments */ +s, s b {color:#2A00FF;font-weight:normal;} /* strings */ diff --git a/app/assets/javascripts/codepress/languages/java.js b/app/assets/javascripts/codepress/languages/java.js new file mode 100644 index 0000000..61e9a06 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/java.js @@ -0,0 +1,24 @@ +/* + * CodePress regular expressions for Java syntax highlighting + */ + +// Java +Language.syntax = [ + { input : /\"(.*?)(\"|
      |<\/P>)/g, output : '"$1$2'}, // strings double quote + { input : /\'(.*?)(\'|
      |<\/P>)/g, output : '\'$1$2'}, // strings single quote + { input : /\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/g, output : '$1'}, // reserved words + { input : /([^:]|^)\/\/(.*?)(//$2$3'}, // comments // + { input : /\/\*(.*?)\*\//g, output : '/*$1*/' }// comments /* */ +] + +Language.snippets = [] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/app/assets/javascripts/codepress/languages/javascript.css b/app/assets/javascripts/codepress/languages/javascript.css new file mode 100644 index 0000000..8cb9092 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/javascript.css @@ -0,0 +1,8 @@ +/* + * CodePress color styles for JavaScript syntax highlighting + */ + +b {color:#7F0055;font-weight:bold;} /* reserved words */ +u {color:darkblue;font-weight:bold;} /* special words */ +i, i b, i s, i u {color:green;font-weight:normal;} /* comments */ +s, s b, s u {color:#2A00FF;font-weight:normal;} /* strings */ diff --git a/app/assets/javascripts/codepress/languages/javascript.js b/app/assets/javascripts/codepress/languages/javascript.js new file mode 100644 index 0000000..08cdea4 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/javascript.js @@ -0,0 +1,30 @@ +/* + * CodePress regular expressions for JavaScript syntax highlighting + */ + +// JavaScript +Language.syntax = [ + { input : /\"(.*?)(\"|
      |<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.*?)(\'|
      |<\/P>)/g, output : '\'$1$2' }, // strings single quote + { input : /\b(break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g, output : '$1' }, // reserved words + { input : /\b(alert|isNaN|parent|Array|parseFloat|parseInt|blur|clearTimeout|prompt|prototype|close|confirm|length|Date|location|Math|document|element|name|self|elements|setTimeout|navigator|status|String|escape|Number|submit|eval|Object|event|onblur|focus|onerror|onfocus|onclick|top|onload|toString|onunload|unescape|open|valueOf|window|onmouseover)\b/g, output : '$1' }, // special words + { input : /([^:]|^)\/\/(.*?)(//$2$3' }, // comments // + { input : /\/\*(.*?)\*\//g, output : '/*$1*/' } // comments /* */ +] + +Language.snippets = [ + { input : 'dw', output : 'document.write(\'$0\');' }, + { input : 'getid', output : 'document.getElementById(\'$0\')' }, + { input : 'fun', output : 'function $0(){\n\t\n}' }, + { input : 'func', output : 'function $0(){\n\t\n}' } +] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/app/assets/javascripts/codepress/languages/perl.css b/app/assets/javascripts/codepress/languages/perl.css new file mode 100644 index 0000000..d9bce85 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/perl.css @@ -0,0 +1,11 @@ +/* + * CodePress color styles for Perl syntax highlighting + * By J. Nick Koston + */ + +b {color:#7F0055;font-weight:bold;} /* reserved words */ +i, i b, i s, i em, i a, i u {color:gray;font-weight:normal;} /* comments */ +s, s b, s a, s em, s u {color:#2A00FF;font-weight:normal;} /* strings */ +a {color:#006700;font-weight:bold;} /* variables */ +em {color:darkblue;font-weight:bold;} /* functions */ +u {font-weight:bold;} /* special chars */ \ No newline at end of file diff --git a/app/assets/javascripts/codepress/languages/perl.js b/app/assets/javascripts/codepress/languages/perl.js new file mode 100644 index 0000000..5026e5d --- /dev/null +++ b/app/assets/javascripts/codepress/languages/perl.js @@ -0,0 +1,27 @@ +/* + * CodePress regular expressions for Perl syntax highlighting + * By J. Nick Koston + */ + +// Perl +Language.syntax = [ + { input : /\"(.*?)(\"|
      |<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.*?)(\'|
      |<\/P>)/g, output : '\'$1$2' }, // strings single quote + { input : /([\$\@\%][\w\.]*)/g, output : '$1' }, // vars + { input : /(sub\s+)([\w\.]*)/g, output : '$1$2' }, // functions + { input : /\b(abs|accept|alarm|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|connect|continue|cos|crypt|dbmclose|dbmopen|defined|delete|die|do|dump|each|else|elsif|endgrent|endhostent|endnetent|endprotoent|endpwent|eof|eval|exec|exists|exit|fcntl|fileno|find|flock|for|foreach|fork|format|formlinegetc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyaddr|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|goto|grep|hex|hostname|if|import|index|int|ioctl|join|keys|kill|last|lc|lcfirst|length|link|listen|LoadExternals|local|localtime|log|lstat|map|mkdir|msgctl|msgget|msgrcv|msgsnd|my|next|no|oct|open|opendir|ordpack|package|pipe|pop|pos|print|printf|push|pwd|qq|quotemeta|qw|rand|read|readdir|readlink|recv|redo|ref|rename|require|reset|return|reverse|rewinddir|rindex|rmdir|scalar|seek|seekdir|select|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|stty|study|sub|substr|symlink|syscall|sysopen|sysread|system|syswritetell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unless|unlink|until|unpack|unshift|untie|use|utime|values|vec|waitpid|wantarray|warn|while|write)\b/g, output : '$1' }, // reserved words + { input : /([\(\){}])/g, output : '$1' }, // special chars + { input : /#(.*?)(
      |<\/P>)/g, output : '#$1$2' } // comments +] + +Language.snippets = [] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/app/assets/javascripts/codepress/languages/php.css b/app/assets/javascripts/codepress/languages/php.css new file mode 100644 index 0000000..b20a35c --- /dev/null +++ b/app/assets/javascripts/codepress/languages/php.css @@ -0,0 +1,12 @@ +/* + * CodePress color styles for PHP syntax highlighting + */ + +b {color:#000080;} /* tags */ +big, big b, big em, big ins, big s, strong i, strong i b, strong i s, strong i u, strong i a, strong i a u, strong i s u {color:gray;font-weight:normal;} /* comments */ +s, s b, strong s u, strong s cite {color:#5656fa;font-weight:normal;} /* attributes and strings */ +strong a, strong a u {color:#006700;font-weight:bold;} /* variables */ +em {color:#800080;font-style:normal;} /* style */ +ins {color:#800000;} /* script */ +strong u {color:#7F0055;font-weight:bold;} /* reserved words */ +cite, s cite {color:red;font-weight:bold;} /* */ diff --git a/app/assets/javascripts/codepress/languages/php.js b/app/assets/javascripts/codepress/languages/php.js new file mode 100644 index 0000000..c7640ba --- /dev/null +++ b/app/assets/javascripts/codepress/languages/php.js @@ -0,0 +1,61 @@ +/* + * CodePress regular expressions for PHP syntax highlighting + */ + +// PHP +Language.syntax = [ + { input : /(<[^!\?]*?>)/g, output : '$1' }, // all tags + { input : /(<style.*?>)(.*?)(<\/style>)/g, output : '$1$2$3' }, // style tags + { input : /(<script.*?>)(.*?)(<\/script>)/g, output : '$1$2$3' }, // script tags + { input : /\"(.*?)(\"|
      |<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.*?)(\'|
      |<\/P>)/g, output : '\'$1$2'}, // strings single quote + { input : /(<\?)/g, output : '$1' }, // ' }, // .*?> + { input : /(<\?php|<\?=|<\?|\?>)/g, output : '$1' }, // php tags + { input : /(\$[\w\.]*)/g, output : '$1' }, // vars + { input : /\b(false|true|and|or|xor|__FILE__|exception|__LINE__|array|as|break|case|class|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|for|foreach|function|global|if|include|include_once|isset|list|new|print|require|require_once|return|static|switch|unset|use|while|__FUNCTION__|__CLASS__|__METHOD__|final|php_user_filter|interface|implements|extends|public|private|protected|abstract|clone|try|catch|throw|this)\b/g, output : '$1' }, // reserved words + { input : /([^:])\/\/(.*?)(//$2$3' }, // php comments // + { input : /([^:])#(.*?)(#$2$3' }, // php comments # + { input : /\/\*(.*?)\*\//g, output : '/*$1*/' }, // php comments /* */ + { input : /(<!--.*?-->.)/g, output : '$1' } // html comments +] + +Language.snippets = [ + { input : 'if', output : 'if($0){\n\t\n}' }, + { input : 'ifelse', output : 'if($0){\n\t\n}\nelse{\n\t\n}' }, + { input : 'else', output : '}\nelse {\n\t' }, + { input : 'elseif', output : '}\nelseif($0) {\n\t' }, + { input : 'do', output : 'do{\n\t$0\n}\nwhile();' }, + { input : 'inc', output : 'include_once("$0");' }, + { input : 'fun', output : 'function $0(){\n\t\n}' }, + { input : 'func', output : 'function $0(){\n\t\n}' }, + { input : 'while', output : 'while($0){\n\t\n}' }, + { input : 'for', output : 'for($0,,){\n\t\n}' }, + { input : 'fore', output : 'foreach($0 as ){\n\t\n}' }, + { input : 'foreach', output : 'foreach($0 as ){\n\t\n}' }, + { input : 'echo', output : 'echo \'$0\';' }, + { input : 'switch', output : 'switch($0) {\n\tcase "": break;\n\tdefault: ;\n}' }, + { input : 'case', output : 'case "$0" : break;' }, + { input : 'ret0', output : 'return false;' }, + { input : 'retf', output : 'return false;' }, + { input : 'ret1', output : 'return true;' }, + { input : 'rett', output : 'return true;' }, + { input : 'ret', output : 'return $0;' }, + { input : 'def', output : 'define(\'$0\',\'\');' }, + { input : '' } +] + +Language.complete = [ + { input : '\'', output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [ + { input : '[space]', output : ' ' }, + { input : '[enter]', output : '
      ' } , + { input : '[j]', output : 'testing' }, + { input : '[7]', output : '&' } +] \ No newline at end of file diff --git a/app/assets/javascripts/codepress/languages/ruby.css b/app/assets/javascripts/codepress/languages/ruby.css new file mode 100644 index 0000000..b23166b --- /dev/null +++ b/app/assets/javascripts/codepress/languages/ruby.css @@ -0,0 +1,10 @@ +/* + * CodePress color styles for Ruby syntax highlighting + */ + +b {color:#7F0055;font-weight:bold;} /* reserved words */ +i, i b, i s, i em, i a, i u {color:gray;font-weight:normal;} /* comments */ +s, s b, s a, s em, s u {color:#2A00FF;font-weight:normal;} /* strings */ +a {color:#006700;font-weight:bold;} /* variables */ +em {color:darkblue;font-weight:bold;} /* functions */ +u {font-weight:bold;} /* special chars */ \ No newline at end of file diff --git a/app/assets/javascripts/codepress/languages/ruby.js b/app/assets/javascripts/codepress/languages/ruby.js new file mode 100644 index 0000000..860f433 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/ruby.js @@ -0,0 +1,26 @@ +/* + * CodePress regular expressions for Perl syntax highlighting + */ + +// Ruby +Language.syntax = [ + { input : /\"(.*?)(\"|
      |<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.*?)(\'|
      |<\/P>)/g, output : '\'$1$2' }, // strings single quote + { input : /([\$\@\%]+)([\w\.]*)/g, output : '$1$2' }, // vars + { input : /(def\s+)([\w\.]*)/g, output : '$1$2' }, // functions + { input : /\b(alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|false|for|if|in|module|next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\b/g, output : '$1' }, // reserved words + { input : /([\(\){}])/g, output : '$1' }, // special chars + { input : /#(.*?)(
      |<\/P>)/g, output : '#$1$2' } // comments +]; + +Language.snippets = [] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/app/assets/javascripts/codepress/languages/sql.css b/app/assets/javascripts/codepress/languages/sql.css new file mode 100644 index 0000000..17458c5 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/sql.css @@ -0,0 +1,10 @@ +/* + * CodePress color styles for SQL syntax highlighting + * By Merlin Moncure + */ + +b {color:#0000FF;font-style:normal;font-weight:bold;} /* reserved words */ +u {color:#FF0000;font-style:normal;} /* types */ +a {color:#CD6600;font-style:normal;font-weight:bold;} /* commands */ +i, i b, i u, i a, i s {color:#A9A9A9;font-weight:normal;font-style:italic;} /* comments */ +s, s b, s u, s a, s i {color:#2A00FF;font-weight:normal;} /* strings */ diff --git a/app/assets/javascripts/codepress/languages/sql.js b/app/assets/javascripts/codepress/languages/sql.js new file mode 100644 index 0000000..605c971 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/sql.js @@ -0,0 +1,30 @@ +/* + * CodePress regular expressions for SQL syntax highlighting + * By Merlin Moncure + */ + +// SQL +Language.syntax = [ + { input : /\'(.*?)(\')/g, output : '\'$1$2' }, // strings single quote + { input : /\b(add|after|aggregate|alias|all|and|as|authorization|between|by|cascade|cache|cache|called|case|check|column|comment|constraint|createdb|createuser|cycle|database|default|deferrable|deferred|diagnostics|distinct|domain|each|else|elseif|elsif|encrypted|except|exception|for|foreign|from|from|full|function|get|group|having|if|immediate|immutable|in|increment|initially|increment|index|inherits|inner|input|intersect|into|invoker|is|join|key|language|left|like|limit|local|loop|match|maxvalue|minvalue|natural|nextval|no|nocreatedb|nocreateuser|not|null|of|offset|oids|on|only|operator|or|order|outer|owner|partial|password|perform|plpgsql|primary|record|references|replace|restrict|return|returns|right|row|rule|schema|security|sequence|session|sql|stable|statistics|table|temp|temporary|then|time|to|transaction|trigger|type|unencrypted|union|unique|user|using|valid|value|values|view|volatile|when|where|with|without|zone)\b/gi, output : '$1' }, // reserved words + { input : /\b(bigint|bigserial|bit|boolean|box|bytea|char|character|cidr|circle|date|decimal|double|float4|float8|inet|int2|int4|int8|integer|interval|line|lseg|macaddr|money|numeric|oid|path|point|polygon|precision|real|refcursor|serial|serial4|serial8|smallint|text|timestamp|varbit|varchar)\b/gi, output : '$1' }, // types + { input : /\b(abort|alter|analyze|begin|checkpoint|close|cluster|comment|commit|copy|create|deallocate|declare|delete|drop|end|execute|explain|fetch|grant|insert|listen|load|lock|move|notify|prepare|reindex|reset|restart|revoke|rollback|select|set|show|start|truncate|unlisten|update)\b/gi, output : '$1' }, // commands + { input : /([^:]|^)\-\-(.*?)(--$2$3' } // comments // +] + +Language.snippets = [ + { input : 'select', output : 'select $0 from where ' } +] + +Language.complete = [ + { input : '\'', output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] + + + diff --git a/app/assets/javascripts/codepress/languages/text.css b/app/assets/javascripts/codepress/languages/text.css new file mode 100644 index 0000000..8e5ba28 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/text.css @@ -0,0 +1,5 @@ +/* + * CodePress color styles for Text syntax highlighting + */ + +/* do nothing as expected */ diff --git a/app/assets/javascripts/codepress/languages/text.js b/app/assets/javascripts/codepress/languages/text.js new file mode 100644 index 0000000..1895430 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/text.js @@ -0,0 +1,9 @@ +/* + * CodePress regular expressions for Text syntax highlighting + */ + +// plain text +Language.syntax = [] +Language.snippets = [] +Language.complete = [] +Language.shortcuts = [] diff --git a/app/assets/javascripts/codepress/languages/vbscript.css b/app/assets/javascripts/codepress/languages/vbscript.css new file mode 100644 index 0000000..d65663b --- /dev/null +++ b/app/assets/javascripts/codepress/languages/vbscript.css @@ -0,0 +1,71 @@ +/* + * CodePress color styles for ASP-VB syntax highlighting + * By Martin D. Kirk + */ + +/* tags */ +b { + color:#000080; +} +/* comments */ +big, big b, big em, big ins, big s, strong i, strong i b, strong i s, strong i u, strong i a, strong i a u, strong i s u { + color:gray; + font-weight:normal; +} +/* ASP comments */ +strong dfn, strong dfn a,strong dfn var, strong dfn a u, strong dfn u{ + color:gray; + font-weight:normal; +} + /* attributes */ +s, s b, span s u, span s cite, strong span s { + color:#5656fa ; + font-weight:normal; +} + /* strings */ +strong s,strong s b, strong s u, strong s cite { + color:#009900; + font-weight:normal; +} +strong ins{ + color:#000000; + font-weight:bold; +} + /* Syntax */ +strong a, strong a u { + color:#0000FF; + font-weight:; +} + /* Native Keywords */ +strong u { + color:#990099; + font-weight:bold; +} +/* Numbers */ +strong var{ + color:#FF0000; +} +/* ASP Language */ +span{ + color:#990000; + font-weight:bold; +} +strong i,strong a i, strong u i { + color:#009999; +} +/* style */ +em { + color:#800080; + font-style:normal; +} + /* script */ +ins { + color:#800000; + font-weight:bold; +} + +/* */ +cite, s cite { + color:red; + font-weight:bold; +} \ No newline at end of file diff --git a/app/assets/javascripts/codepress/languages/vbscript.js b/app/assets/javascripts/codepress/languages/vbscript.js new file mode 100644 index 0000000..7439539 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/vbscript.js @@ -0,0 +1,117 @@ +/* + * CodePress regular expressions for ASP-vbscript syntax highlighting + */ + +// ASP VBScript +Language.syntax = [ +// all tags + { input : /(<[^!%|!%@]*?>)/g, output : '$1' }, +// style tags + { input : /(<style.*?>)(.*?)(<\/style>)/g, output : '$1$2$3' }, +// script tags + { input : /(<script.*?>)(.*?)(<\/script>)/g, output : '$1$2$3' }, +// strings "" and attributes + { input : /\"(.*?)(\"|
      |<\/P>)/g, output : '"$1$2' }, +// ASP Comment + { input : /\'(.*?)(\'|
      |<\/P>)/g, output : '\'$1$2'}, +// <%.* + { input : /(<%)/g, output : '$1' }, +// .*%> + { input : /(%>)/g, output : '$1' }, +// <%@...%> + { input : /(<%@)(.+?)(%>)/gi, output : '$1$2$3' }, +//Numbers + { input : /\b([\d]+)\b/g, output : '$1' }, +// Reserved Words 1 (Blue) + { input : /\b(And|As|ByRef|ByVal|Call|Case|Class|Const|Dim|Do|Each|Else|ElseIf|Empty|End|Eqv|Exit|False|For|Function)\b/gi, output : '$1' }, + { input : /\b(Get|GoTo|If|Imp|In|Is|Let|Loop|Me|Mod|Enum|New|Next|Not|Nothing|Null|On|Option|Or|Private|Public|ReDim|Rem)\b/gi, output : '$1' }, + { input : /\b(Resume|Select|Set|Stop|Sub|Then|To|True|Until|Wend|While|With|Xor|Execute|Randomize|Erase|ExecuteGlobal|Explicit|step)\b/gi, output : '$1' }, +// Reserved Words 2 (Purple) + { input : /\b(Abandon|Abs|AbsolutePage|AbsolutePosition|ActiveCommand|ActiveConnection|ActualSize|AddHeader|AddNew|AppendChunk)\b/gi, output : '$1' }, + { input : /\b(AppendToLog|Application|Array|Asc|Atn|Attributes|BeginTrans|BinaryRead|BinaryWrite|BOF|Bookmark|Boolean|Buffer|Byte)\b/gi, output : '$1' }, + { input : /\b(CacheControl|CacheSize|Cancel|CancelBatch|CancelUpdate|CBool|CByte|CCur|CDate|CDbl|Charset|Chr|CInt|Clear)\b/gi, output : '$1' }, + { input : /\b(ClientCertificate|CLng|Clone|Close|CodePage|CommandText|CommandType|CommandTimeout|CommitTrans|CompareBookmarks|ConnectionString|ConnectionTimeout)\b/gi, output : '$1' }, + { input : /\b(Contents|ContentType|Cookies|Cos|CreateObject|CreateParameter|CSng|CStr|CursorLocation|CursorType|DataMember|DataSource|Date|DateAdd|DateDiff)\b/gi, output : '$1' }, + { input : /\b(DatePart|DateSerial|DateValue|Day|DefaultDatabase|DefinedSize|Delete|Description|Double|EditMode|Eof|EOF|err|Error)\b/gi, output : '$1' }, + { input : /\b(Exp|Expires|ExpiresAbsolute|Filter|Find|Fix|Flush|Form|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent)\b/gi, output : '$1' }, + { input : /\b(GetChunk|GetLastError|GetRows|GetString|Global|HelpContext|HelpFile|Hex|Hour|HTMLEncode|IgnoreCase|Index|InStr|InStrRev)\b/gi, output : '$1' }, + { input : /\b(Int|Integer|IsArray|IsClientConnected|IsDate|IsolationLevel|Join|LBound|LCase|LCID|Left|Len|Lock|LockType|Log|Long|LTrim)\b/gi, output : '$1' }, + { input : /\b(MapPath|MarshalOptions|MaxRecords|Mid|Minute|Mode|Month|MonthName|Move|MoveFirst|MoveLast|MoveNext|MovePrevious|Name|NextRecordset)\b/gi, output : '$1' }, + { input : /\b(Now|Number|NumericScale|ObjectContext|Oct|Open|OpenSchema|OriginalValue|PageCount|PageSize|Pattern|PICS|Precision|Prepared|Property)\b/gi, output : '$1' }, + { input : /\b(Provider|QueryString|RecordCount|Redirect|RegExp|Remove|RemoveAll|Replace|Requery|Request|Response|Resync|Right|Rnd)\b/gi, output : '$1' }, + { input : /\b(RollbackTrans|RTrim|Save|ScriptTimeout|Second|Seek|Server|ServerVariables|Session|SessionID|SetAbort|SetComplete|Sgn)\b/gi, output : '$1' }, + { input : /\b(Sin|Size|Sort|Source|Space|Split|Sqr|State|StaticObjects|Status|StayInSync|StrComp|String|StrReverse|Supports|Tan|Time)\b/gi, output : '$1' }, + { input : /\b(Timeout|Timer|TimeSerial|TimeValue|TotalBytes|Transfer|Trim|Type|Type|UBound|UCase|UnderlyingValue|UnLock|Update|UpdateBatch)\b/gi, output : '$1' }, + { input : /\b(URLEncode|Value|Value|Version|Weekday|WeekdayName|Write|Year)\b/gi, output : '$1' }, +// Reserved Words 3 (Turquis) + { input : /\b(vbBlack|vbRed|vbGreen|vbYellow|vbBlue|vbMagenta|vbCyan|vbWhite|vbBinaryCompare|vbTextCompare)\b/gi, output : '$1' }, + { input : /\b(vbSunday|vbMonday|vbTuesday|vbWednesday|vbThursday|vbFriday|vbSaturday|vbUseSystemDayOfWeek)\b/gi, output : '$1' }, + { input : /\b(vbFirstJan1|vbFirstFourDays|vbFirstFullWeek|vbGeneralDate|vbLongDate|vbShortDate|vbLongTime|vbShortTime)\b/gi, output : '$1' }, + { input : /\b(vbObjectError|vbCr|VbCrLf|vbFormFeed|vbLf|vbNewLine|vbNullChar|vbNullString|vbTab|vbVerticalTab|vbUseDefault|vbTrue)\b/gi, output : '$1' }, + { input : /\b(vbFalse|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant)\b/gi, output : '$1' }, + { input : /\b(vbDataObject|vbDecimal|vbByte|vbArray)\b/gi, output : '$1' }, +// html comments + { input : /(<!--.*?-->.)/g, output : '$1' } +] + +Language.Functions = [ + // Output at index 0, must be the desired tagname surrounding a $1 + // Name is the index from the regex that marks the functionname + {input : /(function|sub)([ ]*?)(\w+)([ ]*?\()/gi , output : '$1', name : '$3'} +] + +Language.snippets = [ +//Conditional + { input : 'if', output : 'If $0 Then\n\t\nEnd If' }, + { input : 'ifelse', output : 'If $0 Then\n\t\n\nElse\n\t\nEnd If' }, + { input : 'case', output : 'Select Case $0\n\tCase ?\n\tCase Else\nEnd Select'}, +//Response + { input : 'rw', output : 'Response.Write( $0 )' }, + { input : 'resc', output : 'Response.Cookies( $0 )' }, + { input : 'resb', output : 'Response.Buffer'}, + { input : 'resflu', output : 'Response.Flush()'}, + { input : 'resend', output : 'Response.End'}, +//Request + { input : 'reqc', output : 'Request.Cookies( $0 )' }, + { input : 'rq', output : 'Request.Querystring("$0")' }, + { input : 'rf', output : 'Request.Form("$0")' }, +//FSO + { input : 'fso', output : 'Set fso = Server.CreateObject("Scripting.FileSystemObject")\n$0' }, + { input : 'setfo', output : 'Set fo = fso.getFolder($0)' }, + { input : 'setfi', output : 'Set fi = fso.getFile($0)' }, + { input : 'twr', output : 'Set f = fso.CreateTextFile($0,true)\'overwrite\nf.WriteLine()\nf.Close'}, + { input : 'tre', output : 'Set f = fso.OpenTextFile($0, 1)\nf.ReadAll\nf.Close'}, +//Server + { input : 'mapp', output : 'Server.Mappath($0)' }, +//Loops + { input : 'foreach', output : 'For Each $0 in ?\n\t\nNext' }, + { input : 'for', output : 'For $0 to ? step ?\n\t\nNext' }, + { input : 'do', output : 'Do While($0)\n\t\nLoop' }, + { input : 'untilrs', output : 'do until rs.eof\n\t\nrs.movenext\nloop' }, +//ADO + { input : 'adorec', output : 'Set rs = Server.CreateObject("ADODB.Recordset")' }, + { input : 'adocon', output : 'Set Conn = Server.CreateObject("ADODB.Connection")' }, + { input : 'adostr', output : 'Set oStr = Server.CreateObject("ADODB.Stream")' }, +//Http Request + { input : 'xmlhttp', output : 'Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")\nxmlHttp.open("GET", $0, false)\nxmlHttp.send()\n?=xmlHttp.responseText' }, + { input : 'xmldoc', output : 'Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")\nxmldoc.async=false\nxmldoc.load(request)'}, +//Functions + { input : 'func', output : 'Function $0()\n\t\n\nEnd Function'}, + { input : 'sub', output : 'Sub $0()\n\t\nEnd Sub'} + +] + +Language.complete = [ + //{ input : '\'', output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [ + { input : '[space]', output : ' ' }, + { input : '[enter]', output : '
      ' } , + { input : '[j]', output : 'testing' }, + { input : '[7]', output : '&' } +] \ No newline at end of file diff --git a/app/assets/javascripts/codepress/languages/xsl.css b/app/assets/javascripts/codepress/languages/xsl.css new file mode 100644 index 0000000..32634b6 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/xsl.css @@ -0,0 +1,15 @@ +/* + * CodePress color styles for HTML syntax highlighting + * By RJ Bruneel + */ + +b {color:#000080;} /* tags */ +ins, ins b, ins s, ins em {color:gray;} /* comments */ +s, s b {color:#7777e4;} /* attribute values */ +a {color:#E67300;} /* links */ +u {color:#CC66CC;} /* forms */ +big {color:#db0000;} /* images */ +em, em b {color:#800080;} /* style */ +strong {color:#800000;} /* script */ +tt i {color:darkblue;font-weight:bold;} /* script reserved words */ +xsl {color:green;} /* xsl */ diff --git a/app/assets/javascripts/codepress/languages/xsl.js b/app/assets/javascripts/codepress/languages/xsl.js new file mode 100644 index 0000000..b23d359 --- /dev/null +++ b/app/assets/javascripts/codepress/languages/xsl.js @@ -0,0 +1,103 @@ +/* + * CodePress regular expressions for XSL syntax highlighting + * By RJ Bruneel + */ + +Language.syntax = [ // XSL + { + input : /(<[^!]*?>)/g, + output : '$1' // all tags + },{ + input : /(<a.*?>|<\/a>)/g, + output : '$1' // links + },{ + input : /(<img .*?>)/g, + output : '$1' // images + },{ + input : /(<\/?(button|textarea|form|input|select|option|label).*?>)/g, + output : '$1' // forms + },{ + input : /(<style.*?>)(.*?)(<\/style>)/g, + output : '$1$2$3' // style tags + },{ + input : /(<script.*?>)(.*?)(<\/script>)/g, + output : '$1$2$3' // script tags + },{ + input : /(<xsl.*?>|<\/xsl.*?>)/g, + output : '$1' // xsl + },{ + input : /=(".*?")/g, + output : '=$1' // atributes double quote + },{ + input : /=('.*?')/g, + output : '=$1' // atributes single quote + },{ + input : /(<!--.*?-->.)/g, + output : '$1' // comments + },{ + input : /\b(alert|window|document|break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g, + output : '$1' // script reserved words + } +]; + +Language.snippets = [ + {input : 'aref', output : '' }, + {input : 'h1', output : '

      $0

      ' }, + {input : 'h2', output : '

      $0

      ' }, + {input : 'h3', output : '

      $0

      ' }, + {input : 'h4', output : '

      $0

      ' }, + {input : 'h5', output : '
      $0
      ' }, + {input : 'h6', output : '
      $0
      ' }, + {input : 'html', output : '\n\t$0\n' }, + {input : 'head', output : '\n\t\n\t$0\n\t\n' }, + {input : 'img', output : '' }, + {input : 'input', output : '' }, + {input : 'label', output : '' }, + {input : 'legend', output : '\n\t$0\n' }, + {input : 'link', output : '' }, + {input : 'base', output : '' }, + {input : 'body', output : '\n\t$0\n' }, + {input : 'css', output : '' }, + {input : 'div', output : '
      \n\t$0\n
      ' }, + {input : 'divid', output : '
      \n\t\n
      ' }, + {input : 'dl', output : '
      \n\t
      \n\t\t$0\n\t
      \n\t
      \n
      ' }, + {input : 'fieldset', output : '
      \n\t$0\n
      ' }, + {input : 'form', output : '
      \n\t\n
      ' }, + {input : 'meta', output : '' }, + {input : 'p', output : '

      $0

      ' }, + {input : 'b', output : '$0' }, + {input : 'li', output : '
    • $0
    • ' }, + {input : 'ul', output : '
        $0
      ' }, + {input : 'ol', output : '
        $0
      ' }, + {input : 'strong', output : '$0' }, + {input : 'br', output : '
      ' }, + {input : 'script', output : '' }, + {input : 'scriptsrc', output : '' }, + {input : 'span', output : '$0' }, + {input : 'table', output : '\n\t\n\t\n
      ' }, + {input : 'style', output : '' }, + {input : 'xsl:stylesheet', output : '' }, + {input : 'xsl:template', output : '$0' }, + {input : 'xsl:for-each', output : '' }, + {input : 'xsl:choose', output : '$0<\xsl:choose>' }, + {input : 'xsl:param', output : '' }, + {input : 'xsl:variable', output : '' }, + {input : 'xsl:if', output : '' }, + {input : 'xsl:when', output : '' }, + {input : 'xsl:otherwise', output : '$0' }, + {input : 'xsl:attribute', output : '' }, + {input : 'xsl:value-of', output : '' }, + {input : 'xsl:with-param', output : '' }, + {input : 'xsl:call-template', output : '' } + +]; + +Language.complete = [ // Auto complete only for 1 character + {input : '\'',output : '\'$0\'' }, + {input : '"', output : '"$0"' }, + {input : '(', output : '\($0\)' }, + {input : '[', output : '\[$0\]' }, + {input : '{', output : '{\n\t$0\n}' } +]; + +Language.shortcuts = []; \ No newline at end of file diff --git a/app/assets/javascripts/codepress/license.txt b/app/assets/javascripts/codepress/license.txt new file mode 100644 index 0000000..81b55d9 --- /dev/null +++ b/app/assets/javascripts/codepress/license.txt @@ -0,0 +1,458 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS diff --git a/app/assets/javascripts/colorbox.js b/app/assets/javascripts/colorbox.js new file mode 100644 index 0000000..51ad367 --- /dev/null +++ b/app/assets/javascripts/colorbox.js @@ -0,0 +1,814 @@ +// ColorBox v1.3.16 - a full featured, light-weight, customizable lightbox based on jQuery 1.3+ +// Copyright (c) 2011 Jack Moore - jack@colorpowered.com +// Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php +(function ($, document, window) { + var + // ColorBox Default Settings. + // See http://colorpowered.com/colorbox for details. + defaults = { + transition: "elastic", + speed: 300, + width: false, + initialWidth: "600", + innerWidth: false, + maxWidth: false, + height: false, + initialHeight: "450", + innerHeight: false, + maxHeight: false, + scalePhotos: true, + scrolling: true, + inline: false, + html: false, + iframe: false, + fastIframe: true, + photo: false, + href: false, + title: false, + rel: false, + opacity: 0.9, + preloading: true, + current: "image {current} of {total}", + previous: "previous", + next: "next", + close: "close", + open: false, + returnFocus: true, + loop: true, + slideshow: false, + slideshowAuto: true, + slideshowSpeed: 2500, + slideshowStart: "start slideshow", + slideshowStop: "stop slideshow", + onOpen: false, + onLoad: false, + onComplete: false, + onCleanup: false, + onClosed: false, + overlayClose: true, + escKey: true, + arrowKey: true + }, + + // Abstracting the HTML and event identifiers for easy rebranding + colorbox = 'colorbox', + prefix = 'cbox', + + // Events + event_open = prefix + '_open', + event_load = prefix + '_load', + event_complete = prefix + '_complete', + event_cleanup = prefix + '_cleanup', + event_closed = prefix + '_closed', + event_purge = prefix + '_purge', + + // Special Handling for IE + isIE = $.browser.msie && !$.support.opacity, // feature detection alone gave a false positive on at least one phone browser and on some development versions of Chrome. + isIE6 = isIE && $.browser.version < 7, + event_ie6 = prefix + '_IE6', + + // Cached jQuery Object Variables + $overlay, + $box, + $wrap, + $content, + $topBorder, + $leftBorder, + $rightBorder, + $bottomBorder, + $related, + $window, + $loaded, + $loadingBay, + $loadingOverlay, + $title, + $current, + $slideshow, + $next, + $prev, + $close, + $groupControls, + + // Variables for cached values or use across multiple functions + settings = {}, + interfaceHeight, + interfaceWidth, + loadedHeight, + loadedWidth, + element, + index, + photo, + open, + active, + closing = false, + + publicMethod, + boxElement = prefix + 'Element'; + + // **************** + // HELPER FUNCTIONS + // **************** + + // jQuery object generator to reduce code size + function $div(id, cssText) { + var div = document.createElement('div'); + if (id) { + div.id = prefix + id; + } + div.style.cssText = cssText || false; + return $(div); + } + + // Convert % values to pixels + function setSize(size, dimension) { + dimension = dimension === 'x' ? $window.width() : $window.height(); + return (typeof size === 'string') ? Math.round((/%/.test(size) ? (dimension / 100) * parseInt(size, 10) : parseInt(size, 10))) : size; + } + + // Checks an href to see if it is a photo. + // There is a force photo option (photo: true) for hrefs that cannot be matched by this regex. + function isImage(url) { + return settings.photo || /\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i.test(url); + } + + // Assigns function results to their respective settings. This allows functions to be used as values. + function process(settings) { + for (var i in settings) { + if ($.isFunction(settings[i]) && i.substring(0, 2) !== 'on') { // checks to make sure the function isn't one of the callbacks, they will be handled at the appropriate time. + settings[i] = settings[i].call(element); + } + } + settings.rel = settings.rel || element.rel || 'nofollow'; + settings.href = $.trim(settings.href || $(element).attr('href')); + settings.title = settings.title || element.title; + } + + function trigger(event, callback) { + if (callback) { + callback.call(element); + } + $.event.trigger(event); + } + + // Slideshow functionality + function slideshow() { + var + timeOut, + className = prefix + "Slideshow_", + click = "click." + prefix, + start, + stop, + clear; + + if (settings.slideshow && $related[1]) { + start = function () { + $slideshow + .text(settings.slideshowStop) + .unbind(click) + .bind(event_complete, function () { + if (index < $related.length - 1 || settings.loop) { + timeOut = setTimeout(publicMethod.next, settings.slideshowSpeed); + } + }) + .bind(event_load, function () { + clearTimeout(timeOut); + }) + .one(click + ' ' + event_cleanup, stop); + $box.removeClass(className + "off").addClass(className + "on"); + timeOut = setTimeout(publicMethod.next, settings.slideshowSpeed); + }; + + stop = function () { + clearTimeout(timeOut); + $slideshow + .text(settings.slideshowStart) + .unbind([event_complete, event_load, event_cleanup, click].join(' ')) + .one(click, start); + $box.removeClass(className + "on").addClass(className + "off"); + }; + + if (settings.slideshowAuto) { + start(); + } else { + stop(); + } + } + } + + function launch(elem) { + if (!closing) { + + element = elem; + + process($.extend(settings, $.data(element, colorbox))); + + $related = $(element); + + index = 0; + + if (settings.rel !== 'nofollow') { + $related = $('.' + boxElement).filter(function () { + var relRelated = $.data(this, colorbox).rel || this.rel; + return (relRelated === settings.rel); + }); + index = $related.index(element); + + // Check direct calls to ColorBox. + if (index === -1) { + $related = $related.add(element); + index = $related.length - 1; + } + } + + if (!open) { + open = active = true; // Prevents the page-change action from queuing up if the visitor holds down the left or right keys. + + $box.show(); + + if (settings.returnFocus) { + try { + element.blur(); + $(element).one(event_closed, function () { + try { + this.focus(); + } catch (e) { + // do nothing + } + }); + } catch (e) { + // do nothing + } + } + + // +settings.opacity avoids a problem in IE when using non-zero-prefixed-string-values, like '.5' + $overlay.css({"opacity": +settings.opacity, "cursor": settings.overlayClose ? "pointer" : "auto"}).show(); + + // Opens inital empty ColorBox prior to content being loaded. + settings.w = setSize(settings.initialWidth, 'x'); + settings.h = setSize(settings.initialHeight, 'y'); + publicMethod.position(0); + + if (isIE6) { + $window.bind('resize.' + event_ie6 + ' scroll.' + event_ie6, function () { + $overlay.css({width: $window.width(), height: $window.height(), top: $window.scrollTop(), left: $window.scrollLeft()}); + }).trigger('resize.' + event_ie6); + } + + trigger(event_open, settings.onOpen); + + $groupControls.add($title).hide(); + + $close.html(settings.close).show(); + } + + publicMethod.load(true); + } + } + + // **************** + // PUBLIC FUNCTIONS + // Usage format: $.fn.colorbox.close(); + // Usage from within an iframe: parent.$.fn.colorbox.close(); + // **************** + + publicMethod = $.fn[colorbox] = $[colorbox] = function (options, callback) { + var $this = this, autoOpen; + + if (!$this[0] && $this.selector) { // if a selector was given and it didn't match any elements, go ahead and exit. + return $this; + } + + options = options || {}; + + if (callback) { + options.onComplete = callback; + } + + if (!$this[0] || $this.selector === undefined) { // detects $.colorbox() and $.fn.colorbox() + $this = $(''); + options.open = true; // assume an immediate open + } + + $this.each(function () { + $.data(this, colorbox, $.extend({}, $.data(this, colorbox) || defaults, options)); + $(this).addClass(boxElement); + }); + + autoOpen = options.open; + + if ($.isFunction(autoOpen)) { + autoOpen = autoOpen.call($this); + } + + if (autoOpen) { + launch($this[0]); + } + + return $this; + }; + + // Initialize ColorBox: store common calculations, preload the interface graphics, append the html. + // This preps colorbox for a speedy open when clicked, and lightens the burdon on the browser by only + // having to run once, instead of each time colorbox is opened. + publicMethod.init = function () { + // Create & Append jQuery Objects + $window = $(window); + $box = $div().attr({id: colorbox, 'class': isIE ? prefix + (isIE6 ? 'IE6' : 'IE') : ''}); + $overlay = $div("Overlay", isIE6 ? 'position:absolute' : '').hide(); + + $wrap = $div("Wrapper"); + $content = $div("Content").append( + $loaded = $div("LoadedContent", 'width:0; height:0; overflow:hidden'), + $loadingOverlay = $div("LoadingOverlay").add($div("LoadingGraphic")), + $title = $div("Title"), + $current = $div("Current"), + $next = $div("Next"), + $prev = $div("Previous"), + $slideshow = $div("Slideshow").bind(event_open, slideshow), + $close = $div("Close") + ); + $wrap.append( // The 3x3 Grid that makes up ColorBox + $div().append( + $div("TopLeft"), + $topBorder = $div("TopCenter"), + $div("TopRight") + ), + $div(false, 'clear:left').append( + $leftBorder = $div("MiddleLeft"), + $content, + $rightBorder = $div("MiddleRight") + ), + $div(false, 'clear:left').append( + $div("BottomLeft"), + $bottomBorder = $div("BottomCenter"), + $div("BottomRight") + ) + ).children().children().css({'float': 'left'}); + + $loadingBay = $div(false, 'position:absolute; width:9999px; visibility:hidden; display:none'); + + $('body').prepend($overlay, $box.append($wrap, $loadingBay)); + + $content.children() + .hover(function () { + $(this).addClass('hover'); + }, function () { + $(this).removeClass('hover'); + }).addClass('hover'); + + // Cache values needed for size calculations + interfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height();//Subtraction needed for IE6 + interfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width(); + loadedHeight = $loaded.outerHeight(true); + loadedWidth = $loaded.outerWidth(true); + + // Setting padding to remove the need to do size conversions during the animation step. + $box.css({"padding-bottom": interfaceHeight, "padding-right": interfaceWidth}).hide(); + + // Setup button events. + $next.click(function () { + publicMethod.next(); + }); + $prev.click(function () { + publicMethod.prev(); + }); + $close.click(function () { + publicMethod.close(); + }); + + $groupControls = $next.add($prev).add($current).add($slideshow); + + // Adding the 'hover' class allowed the browser to load the hover-state + // background graphics. The class can now can be removed. + $content.children().removeClass('hover'); + + $('.' + boxElement).live('click', function (e) { + // checks to see if it was a non-left mouse-click and for clicks modified with ctrl, shift, or alt. + if (!((e.button !== 0 && typeof e.button !== 'undefined') || e.ctrlKey || e.shiftKey || e.altKey)) { + e.preventDefault(); + launch(this); + } + }); + + $overlay.click(function () { + if (settings.overlayClose) { + publicMethod.close(); + } + }); + + // Set Navigation Key Bindings + $(document).bind('keydown.' + prefix, function (e) { + var key = e.keyCode; + if (open && settings.escKey && key === 27) { + e.preventDefault(); + publicMethod.close(); + } + if (open && settings.arrowKey && $related[1]) { + if (key === 37) { + e.preventDefault(); + $prev.click(); + } else if (key === 39) { + e.preventDefault(); + $next.click(); + } + } + }); + }; + + publicMethod.remove = function () { + $box.add($overlay).remove(); + $('.' + boxElement).die('click').removeData(colorbox).removeClass(boxElement); + }; + + publicMethod.position = function (speed, loadedCallback) { + var + animate_speed, + // keeps the top and left positions within the browser's viewport. + posTop = Math.max(document.documentElement.clientHeight - settings.h - loadedHeight - interfaceHeight, 0) / 2 + $window.scrollTop(), + posLeft = Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0) / 2 + $window.scrollLeft(); + + // setting the speed to 0 to reduce the delay between same-sized content. + animate_speed = ($box.width() === settings.w + loadedWidth && $box.height() === settings.h + loadedHeight) ? 0 : speed; + + // this gives the wrapper plenty of breathing room so it's floated contents can move around smoothly, + // but it has to be shrank down around the size of div#colorbox when it's done. If not, + // it can invoke an obscure IE bug when using iframes. + $wrap[0].style.width = $wrap[0].style.height = "9999px"; + + function modalDimensions(that) { + // loading overlay height has to be explicitly set for IE6. + $topBorder[0].style.width = $bottomBorder[0].style.width = $content[0].style.width = that.style.width; + $loadingOverlay[0].style.height = $loadingOverlay[1].style.height = $content[0].style.height = $leftBorder[0].style.height = $rightBorder[0].style.height = that.style.height; + } + + $box.dequeue().animate({width: settings.w + loadedWidth, height: settings.h + loadedHeight, top: posTop, left: posLeft}, { + duration: animate_speed, + complete: function () { + modalDimensions(this); + + active = false; + + // shrink the wrapper down to exactly the size of colorbox to avoid a bug in IE's iframe implementation. + $wrap[0].style.width = (settings.w + loadedWidth + interfaceWidth) + "px"; + $wrap[0].style.height = (settings.h + loadedHeight + interfaceHeight) + "px"; + + if (loadedCallback) { + loadedCallback(); + } + }, + step: function () { + modalDimensions(this); + } + }); + }; + + publicMethod.resize = function (options) { + if (open) { + options = options || {}; + + if (options.width) { + settings.w = setSize(options.width, 'x') - loadedWidth - interfaceWidth; + } + if (options.innerWidth) { + settings.w = setSize(options.innerWidth, 'x'); + } + $loaded.css({width: settings.w}); + + if (options.height) { + settings.h = setSize(options.height, 'y') - loadedHeight - interfaceHeight; + } + if (options.innerHeight) { + settings.h = setSize(options.innerHeight, 'y'); + } + if (!options.innerHeight && !options.height) { + var $child = $loaded.wrapInner("
      ").children(); // temporary wrapper to get an accurate estimate of just how high the total content should be. + settings.h = $child.height(); + $child.replaceWith($child.children()); // ditch the temporary wrapper div used in height calculation + } + $loaded.css({height: settings.h}); + + publicMethod.position(settings.transition === "none" ? 0 : settings.speed); + } + }; + + publicMethod.prep = function (object) { + if (!open) { + return; + } + + var speed = settings.transition === "none" ? 0 : settings.speed; + + $window.unbind('resize.' + prefix); + $loaded.remove(); + $loaded = $div('LoadedContent').html(object); + + function getWidth() { + settings.w = settings.w || $loaded.width(); + settings.w = settings.mw && settings.mw < settings.w ? settings.mw : settings.w; + return settings.w; + } + function getHeight() { + settings.h = settings.h || $loaded.height(); + settings.h = settings.mh && settings.mh < settings.h ? settings.mh : settings.h; + return settings.h; + } + + $loaded.hide() + .appendTo($loadingBay.show())// content has to be appended to the DOM for accurate size calculations. + .css({width: getWidth(), overflow: settings.scrolling ? 'auto' : 'hidden'}) + .css({height: getHeight()})// sets the height independently from the width in case the new width influences the value of height. + .prependTo($content); + + $loadingBay.hide(); + + // floating the IMG removes the bottom line-height and fixed a problem where IE miscalculates the width of the parent element as 100% of the document width. + //$(photo).css({'float': 'none', marginLeft: 'auto', marginRight: 'auto'}); + + $(photo).css({'float': 'none'}); + + // Hides SELECT elements in IE6 because they would otherwise sit on top of the overlay. + if (isIE6) { + $('select').not($box.find('select')).filter(function () { + return this.style.visibility !== 'hidden'; + }).css({'visibility': 'hidden'}).one(event_cleanup, function () { + this.style.visibility = 'inherit'; + }); + } + + function setPosition(s) { + publicMethod.position(s, function () { + var prev, prevSrc, next, nextSrc, total = $related.length, iframe, complete; + + if (!open) { + return; + } + + complete = function () { + $loadingOverlay.hide(); + trigger(event_complete, settings.onComplete); + }; + + if (isIE) { + //This fadeIn helps the bicubic resampling to kick-in. + if (photo) { + $loaded.fadeIn(100); + } + } + + $title.html(settings.title).add($loaded).show(); + + if (total > 1) { // handle grouping + if (typeof settings.current === "string") { + $current.html(settings.current.replace(/\{current\}/, index + 1).replace(/\{total\}/, total)).show(); + } + + $next[(settings.loop || index < total - 1) ? "show" : "hide"]().html(settings.next); + $prev[(settings.loop || index) ? "show" : "hide"]().html(settings.previous); + + prev = index ? $related[index - 1] : $related[total - 1]; + next = index < total - 1 ? $related[index + 1] : $related[0]; + + if (settings.slideshow) { + $slideshow.show(); + } + + // Preloads images within a rel group + if (settings.preloading) { + nextSrc = $.data(next, colorbox).href || next.href; + prevSrc = $.data(prev, colorbox).href || prev.href; + + nextSrc = $.isFunction(nextSrc) ? nextSrc.call(next) : nextSrc; + prevSrc = $.isFunction(prevSrc) ? prevSrc.call(prev) : prevSrc; + + if (isImage(nextSrc)) { + $('')[0].src = nextSrc; + } + + if (isImage(prevSrc)) { + $('')[0].src = prevSrc; + } + } + } else { + $groupControls.hide(); + } + + if (settings.iframe) { + iframe = $(''); + this.iefix = $(this.update.id+'_iefix'); + } + if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50); + }, + + fixIEOverlapping: function() { + Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)}); + this.iefix.style.zIndex = 1; + this.update.style.zIndex = 2; + Element.show(this.iefix); + }, + + hide: function() { + this.stopIndicator(); + if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update); + if(this.iefix) Element.hide(this.iefix); + }, + + startIndicator: function() { + if(this.options.indicator) Element.show(this.options.indicator); + }, + + stopIndicator: function() { + if(this.options.indicator) Element.hide(this.options.indicator); + }, + + onKeyPress: function(event) { + if(this.active) + switch(event.keyCode) { + case Event.KEY_TAB: + case Event.KEY_RETURN: + this.selectEntry(); + Event.stop(event); + case Event.KEY_ESC: + this.hide(); + this.active = false; + Event.stop(event); + return; + case Event.KEY_LEFT: + case Event.KEY_RIGHT: + return; + case Event.KEY_UP: + this.markPrevious(); + this.render(); + Event.stop(event); + return; + case Event.KEY_DOWN: + this.markNext(); + this.render(); + Event.stop(event); + return; + } + else + if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || + (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return; + + this.changed = true; + this.hasFocus = true; + + if(this.observer) clearTimeout(this.observer); + this.observer = + setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000); + }, + + activate: function() { + this.changed = false; + this.hasFocus = true; + this.getUpdatedChoices(); + }, + + onHover: function(event) { + var element = Event.findElement(event, 'LI'); + if(this.index != element.autocompleteIndex) + { + this.index = element.autocompleteIndex; + this.render(); + } + Event.stop(event); + }, + + onClick: function(event) { + var element = Event.findElement(event, 'LI'); + this.index = element.autocompleteIndex; + this.selectEntry(); + this.hide(); + }, + + onBlur: function(event) { + // needed to make click events working + setTimeout(this.hide.bind(this), 250); + this.hasFocus = false; + this.active = false; + }, + + render: function() { + if(this.entryCount > 0) { + for (var i = 0; i < this.entryCount; i++) + this.index==i ? + Element.addClassName(this.getEntry(i),"selected") : + Element.removeClassName(this.getEntry(i),"selected"); + if(this.hasFocus) { + this.show(); + this.active = true; + } + } else { + this.active = false; + this.hide(); + } + }, + + markPrevious: function() { + if(this.index > 0) this.index-- + else this.index = this.entryCount-1; + this.getEntry(this.index).scrollIntoView(true); + }, + + markNext: function() { + if(this.index < this.entryCount-1) this.index++ + else this.index = 0; + this.getEntry(this.index).scrollIntoView(false); + }, + + getEntry: function(index) { + return this.update.firstChild.childNodes[index]; + }, + + getCurrentEntry: function() { + return this.getEntry(this.index); + }, + + selectEntry: function() { + this.active = false; + this.updateElement(this.getCurrentEntry()); + }, + + updateElement: function(selectedElement) { + if (this.options.updateElement) { + this.options.updateElement(selectedElement); + return; + } + var value = ''; + if (this.options.select) { + var nodes = $(selectedElement).select('.' + this.options.select) || []; + if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select); + } else + value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal'); + + var bounds = this.getTokenBounds(); + if (bounds[0] != -1) { + var newValue = this.element.value.substr(0, bounds[0]); + var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/); + if (whitespace) + newValue += whitespace[0]; + this.element.value = newValue + value + this.element.value.substr(bounds[1]); + } else { + this.element.value = value; + } + this.oldElementValue = this.element.value; + this.element.focus(); + + if (this.options.afterUpdateElement) + this.options.afterUpdateElement(this.element, selectedElement); + }, + + updateChoices: function(choices) { + if(!this.changed && this.hasFocus) { + this.update.innerHTML = choices; + Element.cleanWhitespace(this.update); + Element.cleanWhitespace(this.update.down()); + + if(this.update.firstChild && this.update.down().childNodes) { + this.entryCount = + this.update.down().childNodes.length; + for (var i = 0; i < this.entryCount; i++) { + var entry = this.getEntry(i); + entry.autocompleteIndex = i; + this.addObservers(entry); + } + } else { + this.entryCount = 0; + } + + this.stopIndicator(); + this.index = 0; + + if(this.entryCount==1 && this.options.autoSelect) { + this.selectEntry(); + this.hide(); + } else { + this.render(); + } + } + }, + + addObservers: function(element) { + Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this)); + Event.observe(element, "click", this.onClick.bindAsEventListener(this)); + }, + + onObserverEvent: function() { + this.changed = false; + this.tokenBounds = null; + if(this.getToken().length>=this.options.minChars) { + this.getUpdatedChoices(); + } else { + this.active = false; + this.hide(); + } + this.oldElementValue = this.element.value; + }, + + getToken: function() { + var bounds = this.getTokenBounds(); + return this.element.value.substring(bounds[0], bounds[1]).strip(); + }, + + getTokenBounds: function() { + if (null != this.tokenBounds) return this.tokenBounds; + var value = this.element.value; + if (value.strip().empty()) return [-1, 0]; + var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue); + var offset = (diff == this.oldElementValue.length ? 1 : 0); + var prevTokenPos = -1, nextTokenPos = value.length; + var tp; + for (var index = 0, l = this.options.tokens.length; index < l; ++index) { + tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1); + if (tp > prevTokenPos) prevTokenPos = tp; + tp = value.indexOf(this.options.tokens[index], diff + offset); + if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp; + } + return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]); + } +}); + +Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) { + var boundary = Math.min(newS.length, oldS.length); + for (var index = 0; index < boundary; ++index) + if (newS[index] != oldS[index]) + return index; + return boundary; +}; + +Ajax.Autocompleter = Class.create(Autocompleter.Base, { + initialize: function(element, update, url, options) { + this.baseInitialize(element, update, options); + this.options.asynchronous = true; + this.options.onComplete = this.onComplete.bind(this); + this.options.defaultParams = this.options.parameters || null; + this.url = url; + }, + + getUpdatedChoices: function() { + this.startIndicator(); + + var entry = encodeURIComponent(this.options.paramName) + '=' + + encodeURIComponent(this.getToken()); + + this.options.parameters = this.options.callback ? + this.options.callback(this.element, entry) : entry; + + if(this.options.defaultParams) + this.options.parameters += '&' + this.options.defaultParams; + + new Ajax.Request(this.url, this.options); + }, + + onComplete: function(request) { + this.updateChoices(request.responseText); + } +}); + +// The local array autocompleter. Used when you'd prefer to +// inject an array of autocompletion options into the page, rather +// than sending out Ajax queries, which can be quite slow sometimes. +// +// The constructor takes four parameters. The first two are, as usual, +// the id of the monitored textbox, and id of the autocompletion menu. +// The third is the array you want to autocomplete from, and the fourth +// is the options block. +// +// Extra local autocompletion options: +// - choices - How many autocompletion choices to offer +// +// - partialSearch - If false, the autocompleter will match entered +// text only at the beginning of strings in the +// autocomplete array. Defaults to true, which will +// match text at the beginning of any *word* in the +// strings in the autocomplete array. If you want to +// search anywhere in the string, additionally set +// the option fullSearch to true (default: off). +// +// - fullSsearch - Search anywhere in autocomplete array strings. +// +// - partialChars - How many characters to enter before triggering +// a partial match (unlike minChars, which defines +// how many characters are required to do any match +// at all). Defaults to 2. +// +// - ignoreCase - Whether to ignore case when autocompleting. +// Defaults to true. +// +// It's possible to pass in a custom function as the 'selector' +// option, if you prefer to write your own autocompletion logic. +// In that case, the other options above will not apply unless +// you support them. + +Autocompleter.Local = Class.create(Autocompleter.Base, { + initialize: function(element, update, array, options) { + this.baseInitialize(element, update, options); + this.options.array = array; + }, + + getUpdatedChoices: function() { + this.updateChoices(this.options.selector(this)); + }, + + setOptions: function(options) { + this.options = Object.extend({ + choices: 10, + partialSearch: true, + partialChars: 2, + ignoreCase: true, + fullSearch: false, + selector: function(instance) { + var ret = []; // Beginning matches + var partial = []; // Inside matches + var entry = instance.getToken(); + var count = 0; + + for (var i = 0; i < instance.options.array.length && + ret.length < instance.options.choices ; i++) { + + var elem = instance.options.array[i]; + var foundPos = instance.options.ignoreCase ? + elem.toLowerCase().indexOf(entry.toLowerCase()) : + elem.indexOf(entry); + + while (foundPos != -1) { + if (foundPos == 0 && elem.length != entry.length) { + ret.push("
    • " + elem.substr(0, entry.length) + "" + + elem.substr(entry.length) + "
    • "); + break; + } else if (entry.length >= instance.options.partialChars && + instance.options.partialSearch && foundPos != -1) { + if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) { + partial.push("
    • " + elem.substr(0, foundPos) + "" + + elem.substr(foundPos, entry.length) + "" + elem.substr( + foundPos + entry.length) + "
    • "); + break; + } + } + + foundPos = instance.options.ignoreCase ? + elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : + elem.indexOf(entry, foundPos + 1); + + } + } + if (partial.length) + ret = ret.concat(partial.slice(0, instance.options.choices - ret.length)) + return "
        " + ret.join('') + "
      "; + } + }, options || { }); + } +}); + +// AJAX in-place editor and collection editor +// Full rewrite by Christophe Porteneuve (April 2007). + +// Use this if you notice weird scrolling problems on some browsers, +// the DOM might be a bit confused when this gets called so do this +// waits 1 ms (with setTimeout) until it does the activation +Field.scrollFreeActivate = function(field) { + setTimeout(function() { + Field.activate(field); + }, 1); +} + +Ajax.InPlaceEditor = Class.create({ + initialize: function(element, url, options) { + this.url = url; + this.element = element = $(element); + this.prepareOptions(); + this._controls = { }; + arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!! + Object.extend(this.options, options || { }); + if (!this.options.formId && this.element.id) { + this.options.formId = this.element.id + '-inplaceeditor'; + if ($(this.options.formId)) + this.options.formId = ''; + } + if (this.options.externalControl) + this.options.externalControl = $(this.options.externalControl); + if (!this.options.externalControl) + this.options.externalControlOnly = false; + this._originalBackground = this.element.getStyle('background-color') || 'transparent'; + this.element.title = this.options.clickToEditText; + this._boundCancelHandler = this.handleFormCancellation.bind(this); + this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this); + this._boundFailureHandler = this.handleAJAXFailure.bind(this); + this._boundSubmitHandler = this.handleFormSubmission.bind(this); + this._boundWrapperHandler = this.wrapUp.bind(this); + this.registerListeners(); + }, + checkForEscapeOrReturn: function(e) { + if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return; + if (Event.KEY_ESC == e.keyCode) + this.handleFormCancellation(e); + else if (Event.KEY_RETURN == e.keyCode) + this.handleFormSubmission(e); + }, + createControl: function(mode, handler, extraClasses) { + var control = this.options[mode + 'Control']; + var text = this.options[mode + 'Text']; + if ('button' == control) { + var btn = document.createElement('input'); + btn.type = 'submit'; + btn.value = text; + btn.className = 'editor_' + mode + '_button'; + if ('cancel' == mode) + btn.onclick = this._boundCancelHandler; + this._form.appendChild(btn); + this._controls[mode] = btn; + } else if ('link' == control) { + var link = document.createElement('a'); + link.href = '#'; + link.appendChild(document.createTextNode(text)); + link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler; + link.className = 'editor_' + mode + '_link'; + if (extraClasses) + link.className += ' ' + extraClasses; + this._form.appendChild(link); + this._controls[mode] = link; + } + }, + createEditField: function() { + var text = (this.options.loadTextURL ? this.options.loadingText : this.getText()); + var fld; + if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) { + fld = document.createElement('input'); + fld.type = 'text'; + var size = this.options.size || this.options.cols || 0; + if (0 < size) fld.size = size; + } else { + fld = document.createElement('textarea'); + fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows); + fld.cols = this.options.cols || 40; + } + fld.name = this.options.paramName; + fld.value = text; // No HTML breaks conversion anymore + fld.className = 'editor_field'; + if (this.options.submitOnBlur) + fld.onblur = this._boundSubmitHandler; + this._controls.editor = fld; + if (this.options.loadTextURL) + this.loadExternalText(); + this._form.appendChild(this._controls.editor); + }, + createForm: function() { + var ipe = this; + function addText(mode, condition) { + var text = ipe.options['text' + mode + 'Controls']; + if (!text || condition === false) return; + ipe._form.appendChild(document.createTextNode(text)); + }; + this._form = $(document.createElement('form')); + this._form.id = this.options.formId; + this._form.addClassName(this.options.formClassName); + this._form.onsubmit = this._boundSubmitHandler; + this.createEditField(); + if ('textarea' == this._controls.editor.tagName.toLowerCase()) + this._form.appendChild(document.createElement('br')); + if (this.options.onFormCustomization) + this.options.onFormCustomization(this, this._form); + addText('Before', this.options.okControl || this.options.cancelControl); + this.createControl('ok', this._boundSubmitHandler); + addText('Between', this.options.okControl && this.options.cancelControl); + this.createControl('cancel', this._boundCancelHandler, 'editor_cancel'); + addText('After', this.options.okControl || this.options.cancelControl); + }, + destroy: function() { + if (this._oldInnerHTML) + this.element.innerHTML = this._oldInnerHTML; + this.leaveEditMode(); + this.unregisterListeners(); + }, + enterEditMode: function(e) { + if (this._saving || this._editing) return; + this._editing = true; + this.triggerCallback('onEnterEditMode'); + if (this.options.externalControl) + this.options.externalControl.hide(); + this.element.hide(); + this.createForm(); + this.element.parentNode.insertBefore(this._form, this.element); + if (!this.options.loadTextURL) + this.postProcessEditField(); + if (e) Event.stop(e); + }, + enterHover: function(e) { + if (this.options.hoverClassName) + this.element.addClassName(this.options.hoverClassName); + if (this._saving) return; + this.triggerCallback('onEnterHover'); + }, + getText: function() { + return this.element.innerHTML; + }, + handleAJAXFailure: function(transport) { + this.triggerCallback('onFailure', transport); + if (this._oldInnerHTML) { + this.element.innerHTML = this._oldInnerHTML; + this._oldInnerHTML = null; + } + }, + handleFormCancellation: function(e) { + this.wrapUp(); + if (e) Event.stop(e); + }, + handleFormSubmission: function(e) { + var form = this._form; + var value = $F(this._controls.editor); + this.prepareSubmission(); + var params = this.options.callback(form, value) || ''; + if (Object.isString(params)) + params = params.toQueryParams(); + params.editorId = this.element.id; + if (this.options.htmlResponse) { + var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions); + Object.extend(options, { + parameters: params, + onComplete: this._boundWrapperHandler, + onFailure: this._boundFailureHandler + }); + new Ajax.Updater({ success: this.element }, this.url, options); + } else { + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: params, + onComplete: this._boundWrapperHandler, + onFailure: this._boundFailureHandler + }); + new Ajax.Request(this.url, options); + } + if (e) Event.stop(e); + }, + leaveEditMode: function() { + this.element.removeClassName(this.options.savingClassName); + this.removeForm(); + this.leaveHover(); + this.element.style.backgroundColor = this._originalBackground; + this.element.show(); + if (this.options.externalControl) + this.options.externalControl.show(); + this._saving = false; + this._editing = false; + this._oldInnerHTML = null; + this.triggerCallback('onLeaveEditMode'); + }, + leaveHover: function(e) { + if (this.options.hoverClassName) + this.element.removeClassName(this.options.hoverClassName); + if (this._saving) return; + this.triggerCallback('onLeaveHover'); + }, + loadExternalText: function() { + this._form.addClassName(this.options.loadingClassName); + this._controls.editor.disabled = true; + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + this._form.removeClassName(this.options.loadingClassName); + var text = transport.responseText; + if (this.options.stripLoadedTextTags) + text = text.stripTags(); + this._controls.editor.value = text; + this._controls.editor.disabled = false; + this.postProcessEditField(); + }.bind(this), + onFailure: this._boundFailureHandler + }); + new Ajax.Request(this.options.loadTextURL, options); + }, + postProcessEditField: function() { + var fpc = this.options.fieldPostCreation; + if (fpc) + $(this._controls.editor)['focus' == fpc ? 'focus' : 'activate'](); + }, + prepareOptions: function() { + this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions); + Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks); + [this._extraDefaultOptions].flatten().compact().each(function(defs) { + Object.extend(this.options, defs); + }.bind(this)); + }, + prepareSubmission: function() { + this._saving = true; + this.removeForm(); + this.leaveHover(); + this.showSaving(); + }, + registerListeners: function() { + this._listeners = { }; + var listener; + $H(Ajax.InPlaceEditor.Listeners).each(function(pair) { + listener = this[pair.value].bind(this); + this._listeners[pair.key] = listener; + if (!this.options.externalControlOnly) + this.element.observe(pair.key, listener); + if (this.options.externalControl) + this.options.externalControl.observe(pair.key, listener); + }.bind(this)); + }, + removeForm: function() { + if (!this._form) return; + this._form.remove(); + this._form = null; + this._controls = { }; + }, + showSaving: function() { + this._oldInnerHTML = this.element.innerHTML; + this.element.innerHTML = this.options.savingText; + this.element.addClassName(this.options.savingClassName); + this.element.style.backgroundColor = this._originalBackground; + this.element.show(); + }, + triggerCallback: function(cbName, arg) { + if ('function' == typeof this.options[cbName]) { + this.options[cbName](this, arg); + } + }, + unregisterListeners: function() { + $H(this._listeners).each(function(pair) { + if (!this.options.externalControlOnly) + this.element.stopObserving(pair.key, pair.value); + if (this.options.externalControl) + this.options.externalControl.stopObserving(pair.key, pair.value); + }.bind(this)); + }, + wrapUp: function(transport) { + this.leaveEditMode(); + // Can't use triggerCallback due to backward compatibility: requires + // binding + direct element + this._boundComplete(transport, this.element); + } +}); + +Object.extend(Ajax.InPlaceEditor.prototype, { + dispose: Ajax.InPlaceEditor.prototype.destroy +}); + +Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, { + initialize: function($super, element, url, options) { + this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions; + $super(element, url, options); + }, + + createEditField: function() { + var list = document.createElement('select'); + list.name = this.options.paramName; + list.size = 1; + this._controls.editor = list; + this._collection = this.options.collection || []; + if (this.options.loadCollectionURL) + this.loadCollection(); + else + this.checkForExternalText(); + this._form.appendChild(this._controls.editor); + }, + + loadCollection: function() { + this._form.addClassName(this.options.loadingClassName); + this.showLoadingText(this.options.loadingCollectionText); + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + var js = transport.responseText.strip(); + if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check + throw 'Server returned an invalid collection representation.'; + this._collection = eval(js); + this.checkForExternalText(); + }.bind(this), + onFailure: this.onFailure + }); + new Ajax.Request(this.options.loadCollectionURL, options); + }, + + showLoadingText: function(text) { + this._controls.editor.disabled = true; + var tempOption = this._controls.editor.firstChild; + if (!tempOption) { + tempOption = document.createElement('option'); + tempOption.value = ''; + this._controls.editor.appendChild(tempOption); + tempOption.selected = true; + } + tempOption.update((text || '').stripScripts().stripTags()); + }, + + checkForExternalText: function() { + this._text = this.getText(); + if (this.options.loadTextURL) + this.loadExternalText(); + else + this.buildOptionList(); + }, + + loadExternalText: function() { + this.showLoadingText(this.options.loadingText); + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + this._text = transport.responseText.strip(); + this.buildOptionList(); + }.bind(this), + onFailure: this.onFailure + }); + new Ajax.Request(this.options.loadTextURL, options); + }, + + buildOptionList: function() { + this._form.removeClassName(this.options.loadingClassName); + this._collection = this._collection.map(function(entry) { + return 2 === entry.length ? entry : [entry, entry].flatten(); + }); + var marker = ('value' in this.options) ? this.options.value : this._text; + var textFound = this._collection.any(function(entry) { + return entry[0] == marker; + }.bind(this)); + this._controls.editor.update(''); + var option; + this._collection.each(function(entry, index) { + option = document.createElement('option'); + option.value = entry[0]; + option.selected = textFound ? entry[0] == marker : 0 == index; + option.appendChild(document.createTextNode(entry[1])); + this._controls.editor.appendChild(option); + }.bind(this)); + this._controls.editor.disabled = false; + Field.scrollFreeActivate(this._controls.editor); + } +}); + +//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! **** +//**** This only exists for a while, in order to let **** +//**** users adapt to the new API. Read up on the new **** +//**** API and convert your code to it ASAP! **** + +Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) { + if (!options) return; + function fallback(name, expr) { + if (name in options || expr === undefined) return; + options[name] = expr; + }; + fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' : + options.cancelLink == options.cancelButton == false ? false : undefined))); + fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' : + options.okLink == options.okButton == false ? false : undefined))); + fallback('highlightColor', options.highlightcolor); + fallback('highlightEndColor', options.highlightendcolor); +}; + +Object.extend(Ajax.InPlaceEditor, { + DefaultOptions: { + ajaxOptions: { }, + autoRows: 3, // Use when multi-line w/ rows == 1 + cancelControl: 'link', // 'link'|'button'|false + cancelText: 'cancel', + clickToEditText: 'Click to edit', + externalControl: null, // id|elt + externalControlOnly: false, + fieldPostCreation: 'activate', // 'activate'|'focus'|false + formClassName: 'inplaceeditor-form', + formId: null, // id|elt + highlightColor: '#ffff99', + highlightEndColor: '#ffffff', + hoverClassName: '', + htmlResponse: true, + loadingClassName: 'inplaceeditor-loading', + loadingText: 'Loading...', + okControl: 'button', // 'link'|'button'|false + okText: 'ok', + paramName: 'value', + rows: 1, // If 1 and multi-line, uses autoRows + savingClassName: 'inplaceeditor-saving', + savingText: 'Saving...', + size: 0, + stripLoadedTextTags: false, + submitOnBlur: false, + textAfterControls: '', + textBeforeControls: '', + textBetweenControls: '' + }, + DefaultCallbacks: { + callback: function(form) { + return Form.serialize(form); + }, + onComplete: function(transport, element) { + // For backward compatibility, this one is bound to the IPE, and passes + // the element directly. It was too often customized, so we don't break it. + new Effect.Highlight(element, { + startcolor: this.options.highlightColor, keepBackgroundImage: true }); + }, + onEnterEditMode: null, + onEnterHover: function(ipe) { + ipe.element.style.backgroundColor = ipe.options.highlightColor; + if (ipe._effect) + ipe._effect.cancel(); + }, + onFailure: function(transport, ipe) { + alert('Error communication with the server: ' + transport.responseText.stripTags()); + }, + onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls. + onLeaveEditMode: null, + onLeaveHover: function(ipe) { + ipe._effect = new Effect.Highlight(ipe.element, { + startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor, + restorecolor: ipe._originalBackground, keepBackgroundImage: true + }); + } + }, + Listeners: { + click: 'enterEditMode', + keydown: 'checkForEscapeOrReturn', + mouseover: 'enterHover', + mouseout: 'leaveHover' + } +}); + +Ajax.InPlaceCollectionEditor.DefaultOptions = { + loadingCollectionText: 'Loading options...' +}; + +// Delayed observer, like Form.Element.Observer, +// but waits for delay after last key input +// Ideal for live-search fields + +Form.Element.DelayedObserver = Class.create({ + initialize: function(element, delay, callback) { + this.delay = delay || 0.5; + this.element = $(element); + this.callback = callback; + this.timer = null; + this.lastValue = $F(this.element); + Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this)); + }, + delayedListener: function(event) { + if(this.lastValue == $F(this.element)) return; + if(this.timer) clearTimeout(this.timer); + this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000); + this.lastValue = $F(this.element); + }, + onTimerEvent: function() { + this.timer = null; + this.callback(this.element, $F(this.element)); + } +}); diff --git a/app/assets/javascripts/dragdrop.js b/app/assets/javascripts/dragdrop.js new file mode 100644 index 0000000..bf5cfea --- /dev/null +++ b/app/assets/javascripts/dragdrop.js @@ -0,0 +1,972 @@ +// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// (c) 2005-2007 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz) +// +// script.aculo.us is freely distributable under the terms of an MIT-style license. +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +if(Object.isUndefined(Effect)) + throw("dragdrop.js requires including script.aculo.us' effects.js library"); + +var Droppables = { + drops: [], + + remove: function(element) { + this.drops = this.drops.reject(function(d) { return d.element==$(element) }); + }, + + add: function(element) { + element = $(element); + var options = Object.extend({ + greedy: true, + hoverclass: null, + tree: false + }, arguments[1] || { }); + + // cache containers + if(options.containment) { + options._containers = []; + var containment = options.containment; + if(Object.isArray(containment)) { + containment.each( function(c) { options._containers.push($(c)) }); + } else { + options._containers.push($(containment)); + } + } + + if(options.accept) options.accept = [options.accept].flatten(); + + Element.makePositioned(element); // fix IE + options.element = element; + + this.drops.push(options); + }, + + findDeepestChild: function(drops) { + deepest = drops[0]; + + for (i = 1; i < drops.length; ++i) + if (Element.isParent(drops[i].element, deepest.element)) + deepest = drops[i]; + + return deepest; + }, + + isContained: function(element, drop) { + var containmentNode; + if(drop.tree) { + containmentNode = element.treeNode; + } else { + containmentNode = element.parentNode; + } + return drop._containers.detect(function(c) { return containmentNode == c }); + }, + + isAffected: function(point, element, drop) { + return ( + (drop.element!=element) && + ((!drop._containers) || + this.isContained(element, drop)) && + ((!drop.accept) || + (Element.classNames(element).detect( + function(v) { return drop.accept.include(v) } ) )) && + Position.within(drop.element, point[0], point[1]) ); + }, + + deactivate: function(drop) { + if(drop.hoverclass) + Element.removeClassName(drop.element, drop.hoverclass); + this.last_active = null; + }, + + activate: function(drop) { + if(drop.hoverclass) + Element.addClassName(drop.element, drop.hoverclass); + this.last_active = drop; + }, + + show: function(point, element) { + if(!this.drops.length) return; + var drop, affected = []; + + this.drops.each( function(drop) { + if(Droppables.isAffected(point, element, drop)) + affected.push(drop); + }); + + if(affected.length>0) + drop = Droppables.findDeepestChild(affected); + + if(this.last_active && this.last_active != drop) this.deactivate(this.last_active); + if (drop) { + Position.within(drop.element, point[0], point[1]); + if(drop.onHover) + drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element)); + + if (drop != this.last_active) Droppables.activate(drop); + } + }, + + fire: function(event, element) { + if(!this.last_active) return; + Position.prepare(); + + if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active)) + if (this.last_active.onDrop) { + this.last_active.onDrop(element, this.last_active.element, event); + return true; + } + }, + + reset: function() { + if(this.last_active) + this.deactivate(this.last_active); + } +} + +var Draggables = { + drags: [], + observers: [], + + register: function(draggable) { + if(this.drags.length == 0) { + this.eventMouseUp = this.endDrag.bindAsEventListener(this); + this.eventMouseMove = this.updateDrag.bindAsEventListener(this); + this.eventKeypress = this.keyPress.bindAsEventListener(this); + + Event.observe(document, "mouseup", this.eventMouseUp); + Event.observe(document, "mousemove", this.eventMouseMove); + Event.observe(document, "keypress", this.eventKeypress); + } + this.drags.push(draggable); + }, + + unregister: function(draggable) { + this.drags = this.drags.reject(function(d) { return d==draggable }); + if(this.drags.length == 0) { + Event.stopObserving(document, "mouseup", this.eventMouseUp); + Event.stopObserving(document, "mousemove", this.eventMouseMove); + Event.stopObserving(document, "keypress", this.eventKeypress); + } + }, + + activate: function(draggable) { + if(draggable.options.delay) { + this._timeout = setTimeout(function() { + Draggables._timeout = null; + window.focus(); + Draggables.activeDraggable = draggable; + }.bind(this), draggable.options.delay); + } else { + window.focus(); // allows keypress events if window isn't currently focused, fails for Safari + this.activeDraggable = draggable; + } + }, + + deactivate: function() { + this.activeDraggable = null; + }, + + updateDrag: function(event) { + if(!this.activeDraggable) return; + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + // Mozilla-based browsers fire successive mousemove events with + // the same coordinates, prevent needless redrawing (moz bug?) + if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return; + this._lastPointer = pointer; + + this.activeDraggable.updateDrag(event, pointer); + }, + + endDrag: function(event) { + if(this._timeout) { + clearTimeout(this._timeout); + this._timeout = null; + } + if(!this.activeDraggable) return; + this._lastPointer = null; + this.activeDraggable.endDrag(event); + this.activeDraggable = null; + }, + + keyPress: function(event) { + if(this.activeDraggable) + this.activeDraggable.keyPress(event); + }, + + addObserver: function(observer) { + this.observers.push(observer); + this._cacheObserverCallbacks(); + }, + + removeObserver: function(element) { // element instead of observer fixes mem leaks + this.observers = this.observers.reject( function(o) { return o.element==element }); + this._cacheObserverCallbacks(); + }, + + notify: function(eventName, draggable, event) { // 'onStart', 'onEnd', 'onDrag' + if(this[eventName+'Count'] > 0) + this.observers.each( function(o) { + if(o[eventName]) o[eventName](eventName, draggable, event); + }); + if(draggable.options[eventName]) draggable.options[eventName](draggable, event); + }, + + _cacheObserverCallbacks: function() { + ['onStart','onEnd','onDrag'].each( function(eventName) { + Draggables[eventName+'Count'] = Draggables.observers.select( + function(o) { return o[eventName]; } + ).length; + }); + } +} + +/*--------------------------------------------------------------------------*/ + +var Draggable = Class.create({ + initialize: function(element) { + var defaults = { + handle: false, + reverteffect: function(element, top_offset, left_offset) { + var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02; + new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur, + queue: {scope:'_draggable', position:'end'} + }); + }, + endeffect: function(element) { + var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0; + new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, + queue: {scope:'_draggable', position:'end'}, + afterFinish: function(){ + Draggable._dragging[element] = false + } + }); + }, + zindex: 1000, + revert: false, + quiet: false, + scroll: false, + scrollSensitivity: 20, + scrollSpeed: 15, + snap: false, // false, or xy or [x,y] or function(x,y){ return [x,y] } + delay: 0 + }; + + if(!arguments[1] || Object.isUndefined(arguments[1].endeffect)) + Object.extend(defaults, { + starteffect: function(element) { + element._opacity = Element.getOpacity(element); + Draggable._dragging[element] = true; + new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); + } + }); + + var options = Object.extend(defaults, arguments[1] || { }); + + this.element = $(element); + + if(options.handle && Object.isString(options.handle)) + this.handle = this.element.down('.'+options.handle, 0); + + if(!this.handle) this.handle = $(options.handle); + if(!this.handle) this.handle = this.element; + + if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) { + options.scroll = $(options.scroll); + this._isScrollChild = Element.childOf(this.element, options.scroll); + } + + Element.makePositioned(this.element); // fix IE + + this.options = options; + this.dragging = false; + + this.eventMouseDown = this.initDrag.bindAsEventListener(this); + Event.observe(this.handle, "mousedown", this.eventMouseDown); + + Draggables.register(this); + }, + + destroy: function() { + Event.stopObserving(this.handle, "mousedown", this.eventMouseDown); + Draggables.unregister(this); + }, + + currentDelta: function() { + return([ + parseInt(Element.getStyle(this.element,'left') || '0'), + parseInt(Element.getStyle(this.element,'top') || '0')]); + }, + + initDrag: function(event) { + if(!Object.isUndefined(Draggable._dragging[this.element]) && + Draggable._dragging[this.element]) return; + if(Event.isLeftClick(event)) { + // abort on form elements, fixes a Firefox issue + var src = Event.element(event); + if((tag_name = src.tagName.toUpperCase()) && ( + tag_name=='INPUT' || + tag_name=='SELECT' || + tag_name=='OPTION' || + tag_name=='BUTTON' || + tag_name=='TEXTAREA')) return; + + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + var pos = Position.cumulativeOffset(this.element); + this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) }); + + Draggables.activate(this); + Event.stop(event); + } + }, + + startDrag: function(event) { + this.dragging = true; + if(!this.delta) + this.delta = this.currentDelta(); + + if(this.options.zindex) { + this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0); + this.element.style.zIndex = this.options.zindex; + } + + if(this.options.ghosting) { + this._clone = this.element.cloneNode(true); + this.element._originallyAbsolute = (this.element.getStyle('position') == 'absolute'); + if (!this.element._originallyAbsolute) + Position.absolutize(this.element); + this.element.parentNode.insertBefore(this._clone, this.element); + } + + if(this.options.scroll) { + if (this.options.scroll == window) { + var where = this._getWindowScroll(this.options.scroll); + this.originalScrollLeft = where.left; + this.originalScrollTop = where.top; + } else { + this.originalScrollLeft = this.options.scroll.scrollLeft; + this.originalScrollTop = this.options.scroll.scrollTop; + } + } + + Draggables.notify('onStart', this, event); + + if(this.options.starteffect) this.options.starteffect(this.element); + }, + + updateDrag: function(event, pointer) { + if(!this.dragging) this.startDrag(event); + + if(!this.options.quiet){ + Position.prepare(); + Droppables.show(pointer, this.element); + } + + Draggables.notify('onDrag', this, event); + + this.draw(pointer); + if(this.options.change) this.options.change(this); + + if(this.options.scroll) { + this.stopScrolling(); + + var p; + if (this.options.scroll == window) { + with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; } + } else { + p = Position.page(this.options.scroll); + p[0] += this.options.scroll.scrollLeft + Position.deltaX; + p[1] += this.options.scroll.scrollTop + Position.deltaY; + p.push(p[0]+this.options.scroll.offsetWidth); + p.push(p[1]+this.options.scroll.offsetHeight); + } + var speed = [0,0]; + if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity); + if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity); + if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity); + if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity); + this.startScrolling(speed); + } + + // fix AppleWebKit rendering + if(Prototype.Browser.WebKit) window.scrollBy(0,0); + + Event.stop(event); + }, + + finishDrag: function(event, success) { + this.dragging = false; + + if(this.options.quiet){ + Position.prepare(); + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + Droppables.show(pointer, this.element); + } + + if(this.options.ghosting) { + if (!this.element._originallyAbsolute) + Position.relativize(this.element); + delete this.element._originallyAbsolute; + Element.remove(this._clone); + this._clone = null; + } + + var dropped = false; + if(success) { + dropped = Droppables.fire(event, this.element); + if (!dropped) dropped = false; + } + if(dropped && this.options.onDropped) this.options.onDropped(this.element); + Draggables.notify('onEnd', this, event); + + var revert = this.options.revert; + if(revert && Object.isFunction(revert)) revert = revert(this.element); + + var d = this.currentDelta(); + if(revert && this.options.reverteffect) { + if (dropped == 0 || revert != 'failure') + this.options.reverteffect(this.element, + d[1]-this.delta[1], d[0]-this.delta[0]); + } else { + this.delta = d; + } + + if(this.options.zindex) + this.element.style.zIndex = this.originalZ; + + if(this.options.endeffect) + this.options.endeffect(this.element); + + Draggables.deactivate(this); + Droppables.reset(); + }, + + keyPress: function(event) { + if(event.keyCode!=Event.KEY_ESC) return; + this.finishDrag(event, false); + Event.stop(event); + }, + + endDrag: function(event) { + if(!this.dragging) return; + this.stopScrolling(); + this.finishDrag(event, true); + Event.stop(event); + }, + + draw: function(point) { + var pos = Position.cumulativeOffset(this.element); + if(this.options.ghosting) { + var r = Position.realOffset(this.element); + pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY; + } + + var d = this.currentDelta(); + pos[0] -= d[0]; pos[1] -= d[1]; + + if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) { + pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft; + pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop; + } + + var p = [0,1].map(function(i){ + return (point[i]-pos[i]-this.offset[i]) + }.bind(this)); + + if(this.options.snap) { + if(Object.isFunction(this.options.snap)) { + p = this.options.snap(p[0],p[1],this); + } else { + if(Object.isArray(this.options.snap)) { + p = p.map( function(v, i) { + return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this)) + } else { + p = p.map( function(v) { + return (v/this.options.snap).round()*this.options.snap }.bind(this)) + } + }} + + var style = this.element.style; + if((!this.options.constraint) || (this.options.constraint=='horizontal')) + style.left = p[0] + "px"; + if((!this.options.constraint) || (this.options.constraint=='vertical')) + style.top = p[1] + "px"; + + if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering + }, + + stopScrolling: function() { + if(this.scrollInterval) { + clearInterval(this.scrollInterval); + this.scrollInterval = null; + Draggables._lastScrollPointer = null; + } + }, + + startScrolling: function(speed) { + if(!(speed[0] || speed[1])) return; + this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed]; + this.lastScrolled = new Date(); + this.scrollInterval = setInterval(this.scroll.bind(this), 10); + }, + + scroll: function() { + var current = new Date(); + var delta = current - this.lastScrolled; + this.lastScrolled = current; + if(this.options.scroll == window) { + with (this._getWindowScroll(this.options.scroll)) { + if (this.scrollSpeed[0] || this.scrollSpeed[1]) { + var d = delta / 1000; + this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] ); + } + } + } else { + this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000; + this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000; + } + + Position.prepare(); + Droppables.show(Draggables._lastPointer, this.element); + Draggables.notify('onDrag', this); + if (this._isScrollChild) { + Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer); + Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000; + Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000; + if (Draggables._lastScrollPointer[0] < 0) + Draggables._lastScrollPointer[0] = 0; + if (Draggables._lastScrollPointer[1] < 0) + Draggables._lastScrollPointer[1] = 0; + this.draw(Draggables._lastScrollPointer); + } + + if(this.options.change) this.options.change(this); + }, + + _getWindowScroll: function(w) { + var T, L, W, H; + with (w.document) { + if (w.document.documentElement && documentElement.scrollTop) { + T = documentElement.scrollTop; + L = documentElement.scrollLeft; + } else if (w.document.body) { + T = body.scrollTop; + L = body.scrollLeft; + } + if (w.innerWidth) { + W = w.innerWidth; + H = w.innerHeight; + } else if (w.document.documentElement && documentElement.clientWidth) { + W = documentElement.clientWidth; + H = documentElement.clientHeight; + } else { + W = body.offsetWidth; + H = body.offsetHeight + } + } + return { top: T, left: L, width: W, height: H }; + } +}); + +Draggable._dragging = { }; + +/*--------------------------------------------------------------------------*/ + +var SortableObserver = Class.create({ + initialize: function(element, observer) { + this.element = $(element); + this.observer = observer; + this.lastValue = Sortable.serialize(this.element); + }, + + onStart: function() { + this.lastValue = Sortable.serialize(this.element); + }, + + onEnd: function() { + Sortable.unmark(); + if(this.lastValue != Sortable.serialize(this.element)) + this.observer(this.element) + } +}); + +var Sortable = { + SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/, + + sortables: { }, + + _findRootElement: function(element) { + while (element.tagName.toUpperCase() != "BODY") { + if(element.id && Sortable.sortables[element.id]) return element; + element = element.parentNode; + } + }, + + options: function(element) { + element = Sortable._findRootElement($(element)); + if(!element) return; + return Sortable.sortables[element.id]; + }, + + destroy: function(element){ + var s = Sortable.options(element); + + if(s) { + Draggables.removeObserver(s.element); + s.droppables.each(function(d){ Droppables.remove(d) }); + s.draggables.invoke('destroy'); + + delete Sortable.sortables[s.element.id]; + } + }, + + create: function(element) { + element = $(element); + var options = Object.extend({ + element: element, + tag: 'li', // assumes li children, override with tag: 'tagname' + dropOnEmpty: false, + tree: false, + treeTag: 'ul', + overlap: 'vertical', // one of 'vertical', 'horizontal' + constraint: 'vertical', // one of 'vertical', 'horizontal', false + containment: element, // also takes array of elements (or id's); or false + handle: false, // or a CSS class + only: false, + delay: 0, + hoverclass: null, + ghosting: false, + quiet: false, + scroll: false, + scrollSensitivity: 20, + scrollSpeed: 15, + format: this.SERIALIZE_RULE, + + // these take arrays of elements or ids and can be + // used for better initialization performance + elements: false, + handles: false, + + onChange: Prototype.emptyFunction, + onUpdate: Prototype.emptyFunction + }, arguments[1] || { }); + + // clear any old sortable with same element + this.destroy(element); + + // build options for the draggables + var options_for_draggable = { + revert: true, + quiet: options.quiet, + scroll: options.scroll, + scrollSpeed: options.scrollSpeed, + scrollSensitivity: options.scrollSensitivity, + delay: options.delay, + ghosting: options.ghosting, + constraint: options.constraint, + handle: options.handle }; + + if(options.starteffect) + options_for_draggable.starteffect = options.starteffect; + + if(options.reverteffect) + options_for_draggable.reverteffect = options.reverteffect; + else + if(options.ghosting) options_for_draggable.reverteffect = function(element) { + element.style.top = 0; + element.style.left = 0; + }; + + if(options.endeffect) + options_for_draggable.endeffect = options.endeffect; + + if(options.zindex) + options_for_draggable.zindex = options.zindex; + + // build options for the droppables + var options_for_droppable = { + overlap: options.overlap, + containment: options.containment, + tree: options.tree, + hoverclass: options.hoverclass, + onHover: Sortable.onHover + } + + var options_for_tree = { + onHover: Sortable.onEmptyHover, + overlap: options.overlap, + containment: options.containment, + hoverclass: options.hoverclass + } + + // fix for gecko engine + Element.cleanWhitespace(element); + + options.draggables = []; + options.droppables = []; + + // drop on empty handling + if(options.dropOnEmpty || options.tree) { + Droppables.add(element, options_for_tree); + options.droppables.push(element); + } + + (options.elements || this.findElements(element, options) || []).each( function(e,i) { + var handle = options.handles ? $(options.handles[i]) : + (options.handle ? $(e).select('.' + options.handle)[0] : e); + options.draggables.push( + new Draggable(e, Object.extend(options_for_draggable, { handle: handle }))); + Droppables.add(e, options_for_droppable); + if(options.tree) e.treeNode = element; + options.droppables.push(e); + }); + + if(options.tree) { + (Sortable.findTreeElements(element, options) || []).each( function(e) { + Droppables.add(e, options_for_tree); + e.treeNode = element; + options.droppables.push(e); + }); + } + + // keep reference + this.sortables[element.id] = options; + + // for onupdate + Draggables.addObserver(new SortableObserver(element, options.onUpdate)); + + }, + + // return all suitable-for-sortable elements in a guaranteed order + findElements: function(element, options) { + return Element.findChildren( + element, options.only, options.tree ? true : false, options.tag); + }, + + findTreeElements: function(element, options) { + return Element.findChildren( + element, options.only, options.tree ? true : false, options.treeTag); + }, + + onHover: function(element, dropon, overlap) { + if(Element.isParent(dropon, element)) return; + + if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) { + return; + } else if(overlap>0.5) { + Sortable.mark(dropon, 'before'); + if(dropon.previousSibling != element) { + var oldParentNode = element.parentNode; + element.style.visibility = "hidden"; // fix gecko rendering + dropon.parentNode.insertBefore(element, dropon); + if(dropon.parentNode!=oldParentNode) + Sortable.options(oldParentNode).onChange(element); + Sortable.options(dropon.parentNode).onChange(element); + } + } else { + Sortable.mark(dropon, 'after'); + var nextElement = dropon.nextSibling || null; + if(nextElement != element) { + var oldParentNode = element.parentNode; + element.style.visibility = "hidden"; // fix gecko rendering + dropon.parentNode.insertBefore(element, nextElement); + if(dropon.parentNode!=oldParentNode) + Sortable.options(oldParentNode).onChange(element); + Sortable.options(dropon.parentNode).onChange(element); + } + } + }, + + onEmptyHover: function(element, dropon, overlap) { + var oldParentNode = element.parentNode; + var droponOptions = Sortable.options(dropon); + + if(!Element.isParent(dropon, element)) { + var index; + + var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only}); + var child = null; + + if(children) { + var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap); + + for (index = 0; index < children.length; index += 1) { + if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) { + offset -= Element.offsetSize (children[index], droponOptions.overlap); + } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) { + child = index + 1 < children.length ? children[index + 1] : null; + break; + } else { + child = children[index]; + break; + } + } + } + + dropon.insertBefore(element, child); + + Sortable.options(oldParentNode).onChange(element); + droponOptions.onChange(element); + } + }, + + unmark: function() { + if(Sortable._marker) Sortable._marker.hide(); + }, + + mark: function(dropon, position) { + // mark on ghosting only + var sortable = Sortable.options(dropon.parentNode); + if(sortable && !sortable.ghosting) return; + + if(!Sortable._marker) { + Sortable._marker = + ($('dropmarker') || Element.extend(document.createElement('DIV'))). + hide().addClassName('dropmarker').setStyle({position:'absolute'}); + document.getElementsByTagName("body").item(0).appendChild(Sortable._marker); + } + var offsets = Position.cumulativeOffset(dropon); + Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'}); + + if(position=='after') + if(sortable.overlap == 'horizontal') + Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'}); + else + Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'}); + + Sortable._marker.show(); + }, + + _tree: function(element, options, parent) { + var children = Sortable.findElements(element, options) || []; + + for (var i = 0; i < children.length; ++i) { + var match = children[i].id.match(options.format); + + if (!match) continue; + + var child = { + id: encodeURIComponent(match ? match[1] : null), + element: element, + parent: parent, + children: [], + position: parent.children.length, + container: $(children[i]).down(options.treeTag) + } + + /* Get the element containing the children and recurse over it */ + if (child.container) + this._tree(child.container, options, child) + + parent.children.push (child); + } + + return parent; + }, + + tree: function(element) { + element = $(element); + var sortableOptions = this.options(element); + var options = Object.extend({ + tag: sortableOptions.tag, + treeTag: sortableOptions.treeTag, + only: sortableOptions.only, + name: element.id, + format: sortableOptions.format + }, arguments[1] || { }); + + var root = { + id: null, + parent: null, + children: [], + container: element, + position: 0 + } + + return Sortable._tree(element, options, root); + }, + + /* Construct a [i] index for a particular node */ + _constructIndex: function(node) { + var index = ''; + do { + if (node.id) index = '[' + node.position + ']' + index; + } while ((node = node.parent) != null); + return index; + }, + + sequence: function(element) { + element = $(element); + var options = Object.extend(this.options(element), arguments[1] || { }); + + return $(this.findElements(element, options) || []).map( function(item) { + return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; + }); + }, + + setSequence: function(element, new_sequence) { + element = $(element); + var options = Object.extend(this.options(element), arguments[2] || { }); + + var nodeMap = { }; + this.findElements(element, options).each( function(n) { + if (n.id.match(options.format)) + nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode]; + n.parentNode.removeChild(n); + }); + + new_sequence.each(function(ident) { + var n = nodeMap[ident]; + if (n) { + n[1].appendChild(n[0]); + delete nodeMap[ident]; + } + }); + }, + + serialize: function(element) { + element = $(element); + var options = Object.extend(Sortable.options(element), arguments[1] || { }); + var name = encodeURIComponent( + (arguments[1] && arguments[1].name) ? arguments[1].name : element.id); + + if (options.tree) { + return Sortable.tree(element, arguments[1]).children.map( function (item) { + return [name + Sortable._constructIndex(item) + "[id]=" + + encodeURIComponent(item.id)].concat(item.children.map(arguments.callee)); + }).flatten().join('&'); + } else { + return Sortable.sequence(element, arguments[1]).map( function(item) { + return name + "[]=" + encodeURIComponent(item); + }).join('&'); + } + } +} + +// Returns true if child is contained within element +Element.isParent = function(child, element) { + if (!child.parentNode || child == element) return false; + if (child.parentNode == element) return true; + return Element.isParent(child.parentNode, element); +} + +Element.findChildren = function(element, only, recursive, tagName) { + if(!element.hasChildNodes()) return null; + tagName = tagName.toUpperCase(); + if(only) only = [only].flatten(); + var elements = []; + $A(element.childNodes).each( function(e) { + if(e.tagName && e.tagName.toUpperCase()==tagName && + (!only || (Element.classNames(e).detect(function(v) { return only.include(v) })))) + elements.push(e); + if(recursive) { + var grandchildren = Element.findChildren(e, only, recursive, tagName); + if(grandchildren) elements.push(grandchildren); + } + }); + + return (elements.length>0 ? elements.flatten() : []); +} + +Element.offsetSize = function (element, type) { + return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')]; +} diff --git a/app/assets/javascripts/effects.js b/app/assets/javascripts/effects.js new file mode 100644 index 0000000..f030b5d --- /dev/null +++ b/app/assets/javascripts/effects.js @@ -0,0 +1,1120 @@ +// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// Contributors: +// Justin Palmer (http://encytemedia.com/) +// Mark Pilgrim (http://diveintomark.org/) +// Martin Bialasinki +// +// script.aculo.us is freely distributable under the terms of an MIT-style license. +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +// converts rgb() and #xxx to #xxxxxx format, +// returns self (or first argument) if not convertable +String.prototype.parseColor = function() { + var color = '#'; + if (this.slice(0,4) == 'rgb(') { + var cols = this.slice(4,this.length-1).split(','); + var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); + } else { + if (this.slice(0,1) == '#') { + if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); + if (this.length==7) color = this.toLowerCase(); + } + } + return (color.length==7 ? color : (arguments[0] || this)); +}; + +/*--------------------------------------------------------------------------*/ + +Element.collectTextNodes = function(element) { + return $A($(element).childNodes).collect( function(node) { + return (node.nodeType==3 ? node.nodeValue : + (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); + }).flatten().join(''); +}; + +Element.collectTextNodesIgnoreClass = function(element, className) { + return $A($(element).childNodes).collect( function(node) { + return (node.nodeType==3 ? node.nodeValue : + ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? + Element.collectTextNodesIgnoreClass(node, className) : '')); + }).flatten().join(''); +}; + +Element.setContentZoom = function(element, percent) { + element = $(element); + element.setStyle({fontSize: (percent/100) + 'em'}); + if (Prototype.Browser.WebKit) window.scrollBy(0,0); + return element; +}; + +Element.getInlineOpacity = function(element){ + return $(element).style.opacity || ''; +}; + +Element.forceRerendering = function(element) { + try { + element = $(element); + var n = document.createTextNode(' '); + element.appendChild(n); + element.removeChild(n); + } catch(e) { } +}; + +/*--------------------------------------------------------------------------*/ + +var Effect = { + _elementDoesNotExistError: { + name: 'ElementDoesNotExistError', + message: 'The specified DOM element does not exist, but is required for this effect to operate' + }, + Transitions: { + linear: Prototype.K, + sinoidal: function(pos) { + return (-Math.cos(pos*Math.PI)/2) + 0.5; + }, + reverse: function(pos) { + return 1-pos; + }, + flicker: function(pos) { + var pos = ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; + return pos > 1 ? 1 : pos; + }, + wobble: function(pos) { + return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; + }, + pulse: function(pos, pulses) { + pulses = pulses || 5; + return ( + ((pos % (1/pulses)) * pulses).round() == 0 ? + ((pos * pulses * 2) - (pos * pulses * 2).floor()) : + 1 - ((pos * pulses * 2) - (pos * pulses * 2).floor()) + ); + }, + spring: function(pos) { + return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6)); + }, + none: function(pos) { + return 0; + }, + full: function(pos) { + return 1; + } + }, + DefaultOptions: { + duration: 1.0, // seconds + fps: 100, // 100= assume 66fps max. + sync: false, // true for combining + from: 0.0, + to: 1.0, + delay: 0.0, + queue: 'parallel' + }, + tagifyText: function(element) { + var tagifyStyle = 'position:relative'; + if (Prototype.Browser.IE) tagifyStyle += ';zoom:1'; + + element = $(element); + $A(element.childNodes).each( function(child) { + if (child.nodeType==3) { + child.nodeValue.toArray().each( function(character) { + element.insertBefore( + new Element('span', {style: tagifyStyle}).update( + character == ' ' ? String.fromCharCode(160) : character), + child); + }); + Element.remove(child); + } + }); + }, + multiple: function(element, effect) { + var elements; + if (((typeof element == 'object') || + Object.isFunction(element)) && + (element.length)) + elements = element; + else + elements = $(element).childNodes; + + var options = Object.extend({ + speed: 0.1, + delay: 0.0 + }, arguments[2] || { }); + var masterDelay = options.delay; + + $A(elements).each( function(element, index) { + new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); + }); + }, + PAIRS: { + 'slide': ['SlideDown','SlideUp'], + 'blind': ['BlindDown','BlindUp'], + 'appear': ['Appear','Fade'] + }, + toggle: function(element, effect) { + element = $(element); + effect = (effect || 'appear').toLowerCase(); + var options = Object.extend({ + queue: { position:'end', scope:(element.id || 'global'), limit: 1 } + }, arguments[2] || { }); + Effect[element.visible() ? + Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); + } +}; + +Effect.DefaultOptions.transition = Effect.Transitions.sinoidal; + +/* ------------- core effects ------------- */ + +Effect.ScopedQueue = Class.create(Enumerable, { + initialize: function() { + this.effects = []; + this.interval = null; + }, + _each: function(iterator) { + this.effects._each(iterator); + }, + add: function(effect) { + var timestamp = new Date().getTime(); + + var position = Object.isString(effect.options.queue) ? + effect.options.queue : effect.options.queue.position; + + switch(position) { + case 'front': + // move unstarted effects after this effect + this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { + e.startOn += effect.finishOn; + e.finishOn += effect.finishOn; + }); + break; + case 'with-last': + timestamp = this.effects.pluck('startOn').max() || timestamp; + break; + case 'end': + // start effect after last queued effect has finished + timestamp = this.effects.pluck('finishOn').max() || timestamp; + break; + } + + effect.startOn += timestamp; + effect.finishOn += timestamp; + + if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit)) + this.effects.push(effect); + + if (!this.interval) + this.interval = setInterval(this.loop.bind(this), 15); + }, + remove: function(effect) { + this.effects = this.effects.reject(function(e) { return e==effect }); + if (this.effects.length == 0) { + clearInterval(this.interval); + this.interval = null; + } + }, + loop: function() { + var timePos = new Date().getTime(); + for(var i=0, len=this.effects.length;i= this.startOn) { + if (timePos >= this.finishOn) { + this.render(1.0); + this.cancel(); + this.event('beforeFinish'); + if (this.finish) this.finish(); + this.event('afterFinish'); + return; + } + var pos = (timePos - this.startOn) / this.totalTime, + frame = (pos * this.totalFrames).round(); + if (frame > this.currentFrame) { + this.render(pos); + this.currentFrame = frame; + } + } + }, + cancel: function() { + if (!this.options.sync) + Effect.Queues.get(Object.isString(this.options.queue) ? + 'global' : this.options.queue.scope).remove(this); + this.state = 'finished'; + }, + event: function(eventName) { + if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); + if (this.options[eventName]) this.options[eventName](this); + }, + inspect: function() { + var data = $H(); + for(property in this) + if (!Object.isFunction(this[property])) data.set(property, this[property]); + return '#'; + } +}); + +Effect.Parallel = Class.create(Effect.Base, { + initialize: function(effects) { + this.effects = effects || []; + this.start(arguments[1]); + }, + update: function(position) { + this.effects.invoke('render', position); + }, + finish: function(position) { + this.effects.each( function(effect) { + effect.render(1.0); + effect.cancel(); + effect.event('beforeFinish'); + if (effect.finish) effect.finish(position); + effect.event('afterFinish'); + }); + } +}); + +Effect.Tween = Class.create(Effect.Base, { + initialize: function(object, from, to) { + object = Object.isString(object) ? $(object) : object; + var args = $A(arguments), method = args.last(), + options = args.length == 5 ? args[3] : null; + this.method = Object.isFunction(method) ? method.bind(object) : + Object.isFunction(object[method]) ? object[method].bind(object) : + function(value) { object[method] = value }; + this.start(Object.extend({ from: from, to: to }, options || { })); + }, + update: function(position) { + this.method(position); + } +}); + +Effect.Event = Class.create(Effect.Base, { + initialize: function() { + this.start(Object.extend({ duration: 0 }, arguments[0] || { })); + }, + update: Prototype.emptyFunction +}); + +Effect.Opacity = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + // make this work on IE on elements without 'layout' + if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) + this.element.setStyle({zoom: 1}); + var options = Object.extend({ + from: this.element.getOpacity() || 0.0, + to: 1.0 + }, arguments[1] || { }); + this.start(options); + }, + update: function(position) { + this.element.setOpacity(position); + } +}); + +Effect.Move = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + x: 0, + y: 0, + mode: 'relative' + }, arguments[1] || { }); + this.start(options); + }, + setup: function() { + this.element.makePositioned(); + this.originalLeft = parseFloat(this.element.getStyle('left') || '0'); + this.originalTop = parseFloat(this.element.getStyle('top') || '0'); + if (this.options.mode == 'absolute') { + this.options.x = this.options.x - this.originalLeft; + this.options.y = this.options.y - this.originalTop; + } + }, + update: function(position) { + this.element.setStyle({ + left: (this.options.x * position + this.originalLeft).round() + 'px', + top: (this.options.y * position + this.originalTop).round() + 'px' + }); + } +}); + +// for backwards compatibility +Effect.MoveBy = function(element, toTop, toLeft) { + return new Effect.Move(element, + Object.extend({ x: toLeft, y: toTop }, arguments[3] || { })); +}; + +Effect.Scale = Class.create(Effect.Base, { + initialize: function(element, percent) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + scaleX: true, + scaleY: true, + scaleContent: true, + scaleFromCenter: false, + scaleMode: 'box', // 'box' or 'contents' or { } with provided values + scaleFrom: 100.0, + scaleTo: percent + }, arguments[2] || { }); + this.start(options); + }, + setup: function() { + this.restoreAfterFinish = this.options.restoreAfterFinish || false; + this.elementPositioning = this.element.getStyle('position'); + + this.originalStyle = { }; + ['top','left','width','height','fontSize'].each( function(k) { + this.originalStyle[k] = this.element.style[k]; + }.bind(this)); + + this.originalTop = this.element.offsetTop; + this.originalLeft = this.element.offsetLeft; + + var fontSize = this.element.getStyle('font-size') || '100%'; + ['em','px','%','pt'].each( function(fontSizeType) { + if (fontSize.indexOf(fontSizeType)>0) { + this.fontSize = parseFloat(fontSize); + this.fontSizeType = fontSizeType; + } + }.bind(this)); + + this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; + + this.dims = null; + if (this.options.scaleMode=='box') + this.dims = [this.element.offsetHeight, this.element.offsetWidth]; + if (/^content/.test(this.options.scaleMode)) + this.dims = [this.element.scrollHeight, this.element.scrollWidth]; + if (!this.dims) + this.dims = [this.options.scaleMode.originalHeight, + this.options.scaleMode.originalWidth]; + }, + update: function(position) { + var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); + if (this.options.scaleContent && this.fontSize) + this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType }); + this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); + }, + finish: function(position) { + if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle); + }, + setDimensions: function(height, width) { + var d = { }; + if (this.options.scaleX) d.width = width.round() + 'px'; + if (this.options.scaleY) d.height = height.round() + 'px'; + if (this.options.scaleFromCenter) { + var topd = (height - this.dims[0])/2; + var leftd = (width - this.dims[1])/2; + if (this.elementPositioning == 'absolute') { + if (this.options.scaleY) d.top = this.originalTop-topd + 'px'; + if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; + } else { + if (this.options.scaleY) d.top = -topd + 'px'; + if (this.options.scaleX) d.left = -leftd + 'px'; + } + } + this.element.setStyle(d); + } +}); + +Effect.Highlight = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { }); + this.start(options); + }, + setup: function() { + // Prevent executing on elements not in the layout flow + if (this.element.getStyle('display')=='none') { this.cancel(); return; } + // Disable background image during the effect + this.oldStyle = { }; + if (!this.options.keepBackgroundImage) { + this.oldStyle.backgroundImage = this.element.getStyle('background-image'); + this.element.setStyle({backgroundImage: 'none'}); + } + if (!this.options.endcolor) + this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff'); + if (!this.options.restorecolor) + this.options.restorecolor = this.element.getStyle('background-color'); + // init color calculations + this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); + this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); + }, + update: function(position) { + this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){ + return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) }); + }, + finish: function() { + this.element.setStyle(Object.extend(this.oldStyle, { + backgroundColor: this.options.restorecolor + })); + } +}); + +Effect.ScrollTo = function(element) { + var options = arguments[1] || { }, + scrollOffsets = document.viewport.getScrollOffsets(), + elementOffsets = $(element).cumulativeOffset(), + max = (window.height || document.body.scrollHeight) - document.viewport.getHeight(); + + if (options.offset) elementOffsets[1] += options.offset; + + return new Effect.Tween(null, + scrollOffsets.top, + elementOffsets[1] > max ? max : elementOffsets[1], + options, + function(p){ scrollTo(scrollOffsets.left, p.round()) } + ); +}; + +/* ------------- combination effects ------------- */ + +Effect.Fade = function(element) { + element = $(element); + var oldOpacity = element.getInlineOpacity(); + var options = Object.extend({ + from: element.getOpacity() || 1.0, + to: 0.0, + afterFinishInternal: function(effect) { + if (effect.options.to!=0) return; + effect.element.hide().setStyle({opacity: oldOpacity}); + } + }, arguments[1] || { }); + return new Effect.Opacity(element,options); +}; + +Effect.Appear = function(element) { + element = $(element); + var options = Object.extend({ + from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0), + to: 1.0, + // force Safari to render floated elements properly + afterFinishInternal: function(effect) { + effect.element.forceRerendering(); + }, + beforeSetup: function(effect) { + effect.element.setOpacity(effect.options.from).show(); + }}, arguments[1] || { }); + return new Effect.Opacity(element,options); +}; + +Effect.Puff = function(element) { + element = $(element); + var oldStyle = { + opacity: element.getInlineOpacity(), + position: element.getStyle('position'), + top: element.style.top, + left: element.style.left, + width: element.style.width, + height: element.style.height + }; + return new Effect.Parallel( + [ new Effect.Scale(element, 200, + { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), + new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], + Object.extend({ duration: 1.0, + beforeSetupInternal: function(effect) { + Position.absolutize(effect.effects[0].element) + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().setStyle(oldStyle); } + }, arguments[1] || { }) + ); +}; + +Effect.BlindUp = function(element) { + element = $(element); + element.makeClipping(); + return new Effect.Scale(element, 0, + Object.extend({ scaleContent: false, + scaleX: false, + restoreAfterFinish: true, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping(); + } + }, arguments[1] || { }) + ); +}; + +Effect.BlindDown = function(element) { + element = $(element); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, 100, Object.extend({ + scaleContent: false, + scaleX: false, + scaleFrom: 0, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makeClipping().setStyle({height: '0px'}).show(); + }, + afterFinishInternal: function(effect) { + effect.element.undoClipping(); + } + }, arguments[1] || { })); +}; + +Effect.SwitchOff = function(element) { + element = $(element); + var oldOpacity = element.getInlineOpacity(); + return new Effect.Appear(element, Object.extend({ + duration: 0.4, + from: 0, + transition: Effect.Transitions.flicker, + afterFinishInternal: function(effect) { + new Effect.Scale(effect.element, 1, { + duration: 0.3, scaleFromCenter: true, + scaleX: false, scaleContent: false, restoreAfterFinish: true, + beforeSetup: function(effect) { + effect.element.makePositioned().makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity}); + } + }) + } + }, arguments[1] || { })); +}; + +Effect.DropOut = function(element) { + element = $(element); + var oldStyle = { + top: element.getStyle('top'), + left: element.getStyle('left'), + opacity: element.getInlineOpacity() }; + return new Effect.Parallel( + [ new Effect.Move(element, {x: 0, y: 100, sync: true }), + new Effect.Opacity(element, { sync: true, to: 0.0 }) ], + Object.extend( + { duration: 0.5, + beforeSetup: function(effect) { + effect.effects[0].element.makePositioned(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle); + } + }, arguments[1] || { })); +}; + +Effect.Shake = function(element) { + element = $(element); + var options = Object.extend({ + distance: 20, + duration: 0.5 + }, arguments[1] || {}); + var distance = parseFloat(options.distance); + var split = parseFloat(options.duration) / 10.0; + var oldStyle = { + top: element.getStyle('top'), + left: element.getStyle('left') }; + return new Effect.Move(element, + { x: distance, y: 0, duration: split, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) { + effect.element.undoPositioned().setStyle(oldStyle); + }}) }}) }}) }}) }}) }}); +}; + +Effect.SlideDown = function(element) { + element = $(element).cleanWhitespace(); + // SlideDown need to have the content of the element wrapped in a container element with fixed height! + var oldInnerBottom = element.down().getStyle('bottom'); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, 100, Object.extend({ + scaleContent: false, + scaleX: false, + scaleFrom: window.opera ? 0 : 1, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makePositioned(); + effect.element.down().makePositioned(); + if (window.opera) effect.element.setStyle({top: ''}); + effect.element.makeClipping().setStyle({height: '0px'}).show(); + }, + afterUpdateInternal: function(effect) { + effect.element.down().setStyle({bottom: + (effect.dims[0] - effect.element.clientHeight) + 'px' }); + }, + afterFinishInternal: function(effect) { + effect.element.undoClipping().undoPositioned(); + effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); } + }, arguments[1] || { }) + ); +}; + +Effect.SlideUp = function(element) { + element = $(element).cleanWhitespace(); + var oldInnerBottom = element.down().getStyle('bottom'); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, window.opera ? 0 : 1, + Object.extend({ scaleContent: false, + scaleX: false, + scaleMode: 'box', + scaleFrom: 100, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makePositioned(); + effect.element.down().makePositioned(); + if (window.opera) effect.element.setStyle({top: ''}); + effect.element.makeClipping().show(); + }, + afterUpdateInternal: function(effect) { + effect.element.down().setStyle({bottom: + (effect.dims[0] - effect.element.clientHeight) + 'px' }); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().undoPositioned(); + effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); + } + }, arguments[1] || { }) + ); +}; + +// Bug in opera makes the TD containing this element expand for a instance after finish +Effect.Squish = function(element) { + return new Effect.Scale(element, window.opera ? 1 : 0, { + restoreAfterFinish: true, + beforeSetup: function(effect) { + effect.element.makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping(); + } + }); +}; + +Effect.Grow = function(element) { + element = $(element); + var options = Object.extend({ + direction: 'center', + moveTransition: Effect.Transitions.sinoidal, + scaleTransition: Effect.Transitions.sinoidal, + opacityTransition: Effect.Transitions.full + }, arguments[1] || { }); + var oldStyle = { + top: element.style.top, + left: element.style.left, + height: element.style.height, + width: element.style.width, + opacity: element.getInlineOpacity() }; + + var dims = element.getDimensions(); + var initialMoveX, initialMoveY; + var moveX, moveY; + + switch (options.direction) { + case 'top-left': + initialMoveX = initialMoveY = moveX = moveY = 0; + break; + case 'top-right': + initialMoveX = dims.width; + initialMoveY = moveY = 0; + moveX = -dims.width; + break; + case 'bottom-left': + initialMoveX = moveX = 0; + initialMoveY = dims.height; + moveY = -dims.height; + break; + case 'bottom-right': + initialMoveX = dims.width; + initialMoveY = dims.height; + moveX = -dims.width; + moveY = -dims.height; + break; + case 'center': + initialMoveX = dims.width / 2; + initialMoveY = dims.height / 2; + moveX = -dims.width / 2; + moveY = -dims.height / 2; + break; + } + + return new Effect.Move(element, { + x: initialMoveX, + y: initialMoveY, + duration: 0.01, + beforeSetup: function(effect) { + effect.element.hide().makeClipping().makePositioned(); + }, + afterFinishInternal: function(effect) { + new Effect.Parallel( + [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), + new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), + new Effect.Scale(effect.element, 100, { + scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, + sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) + ], Object.extend({ + beforeSetup: function(effect) { + effect.effects[0].element.setStyle({height: '0px'}).show(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); + } + }, options) + ) + } + }); +}; + +Effect.Shrink = function(element) { + element = $(element); + var options = Object.extend({ + direction: 'center', + moveTransition: Effect.Transitions.sinoidal, + scaleTransition: Effect.Transitions.sinoidal, + opacityTransition: Effect.Transitions.none + }, arguments[1] || { }); + var oldStyle = { + top: element.style.top, + left: element.style.left, + height: element.style.height, + width: element.style.width, + opacity: element.getInlineOpacity() }; + + var dims = element.getDimensions(); + var moveX, moveY; + + switch (options.direction) { + case 'top-left': + moveX = moveY = 0; + break; + case 'top-right': + moveX = dims.width; + moveY = 0; + break; + case 'bottom-left': + moveX = 0; + moveY = dims.height; + break; + case 'bottom-right': + moveX = dims.width; + moveY = dims.height; + break; + case 'center': + moveX = dims.width / 2; + moveY = dims.height / 2; + break; + } + + return new Effect.Parallel( + [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), + new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), + new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) + ], Object.extend({ + beforeStartInternal: function(effect) { + effect.effects[0].element.makePositioned().makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); } + }, options) + ); +}; + +Effect.Pulsate = function(element) { + element = $(element); + var options = arguments[1] || { }; + var oldOpacity = element.getInlineOpacity(); + var transition = options.transition || Effect.Transitions.sinoidal; + var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos, options.pulses)) }; + reverser.bind(transition); + return new Effect.Opacity(element, + Object.extend(Object.extend({ duration: 2.0, from: 0, + afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); } + }, options), {transition: reverser})); +}; + +Effect.Fold = function(element) { + element = $(element); + var oldStyle = { + top: element.style.top, + left: element.style.left, + width: element.style.width, + height: element.style.height }; + element.makeClipping(); + return new Effect.Scale(element, 5, Object.extend({ + scaleContent: false, + scaleX: false, + afterFinishInternal: function(effect) { + new Effect.Scale(element, 1, { + scaleContent: false, + scaleY: false, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().setStyle(oldStyle); + } }); + }}, arguments[1] || { })); +}; + +Effect.Morph = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + style: { } + }, arguments[1] || { }); + + if (!Object.isString(options.style)) this.style = $H(options.style); + else { + if (options.style.include(':')) + this.style = options.style.parseStyle(); + else { + this.element.addClassName(options.style); + this.style = $H(this.element.getStyles()); + this.element.removeClassName(options.style); + var css = this.element.getStyles(); + this.style = this.style.reject(function(style) { + return style.value == css[style.key]; + }); + options.afterFinishInternal = function(effect) { + effect.element.addClassName(effect.options.style); + effect.transforms.each(function(transform) { + effect.element.style[transform.style] = ''; + }); + } + } + } + this.start(options); + }, + + setup: function(){ + function parseColor(color){ + if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff'; + color = color.parseColor(); + return $R(0,2).map(function(i){ + return parseInt( color.slice(i*2+1,i*2+3), 16 ) + }); + } + this.transforms = this.style.map(function(pair){ + var property = pair[0], value = pair[1], unit = null; + + if (value.parseColor('#zzzzzz') != '#zzzzzz') { + value = value.parseColor(); + unit = 'color'; + } else if (property == 'opacity') { + value = parseFloat(value); + if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) + this.element.setStyle({zoom: 1}); + } else if (Element.CSS_LENGTH.test(value)) { + var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/); + value = parseFloat(components[1]); + unit = (components.length == 3) ? components[2] : null; + } + + var originalValue = this.element.getStyle(property); + return { + style: property.camelize(), + originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), + targetValue: unit=='color' ? parseColor(value) : value, + unit: unit + }; + }.bind(this)).reject(function(transform){ + return ( + (transform.originalValue == transform.targetValue) || + ( + transform.unit != 'color' && + (isNaN(transform.originalValue) || isNaN(transform.targetValue)) + ) + ) + }); + }, + update: function(position) { + var style = { }, transform, i = this.transforms.length; + while(i--) + style[(transform = this.transforms[i]).style] = + transform.unit=='color' ? '#'+ + (Math.round(transform.originalValue[0]+ + (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() + + (Math.round(transform.originalValue[1]+ + (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() + + (Math.round(transform.originalValue[2]+ + (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() : + (transform.originalValue + + (transform.targetValue - transform.originalValue) * position).toFixed(3) + + (transform.unit === null ? '' : transform.unit); + this.element.setStyle(style, true); + } +}); + +Effect.Transform = Class.create({ + initialize: function(tracks){ + this.tracks = []; + this.options = arguments[1] || { }; + this.addTracks(tracks); + }, + addTracks: function(tracks){ + tracks.each(function(track){ + track = $H(track); + var data = track.values().first(); + this.tracks.push($H({ + ids: track.keys().first(), + effect: Effect.Morph, + options: { style: data } + })); + }.bind(this)); + return this; + }, + play: function(){ + return new Effect.Parallel( + this.tracks.map(function(track){ + var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options'); + var elements = [$(ids) || $$(ids)].flatten(); + return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) }); + }).flatten(), + this.options + ); + } +}); + +Element.CSS_PROPERTIES = $w( + 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + + 'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' + + 'borderRightColor borderRightStyle borderRightWidth borderSpacing ' + + 'borderTopColor borderTopStyle borderTopWidth bottom clip color ' + + 'fontSize fontWeight height left letterSpacing lineHeight ' + + 'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+ + 'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' + + 'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' + + 'right textIndent top width wordSpacing zIndex'); + +Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; + +String.__parseStyleElement = document.createElement('div'); +String.prototype.parseStyle = function(){ + var style, styleRules = $H(); + if (Prototype.Browser.WebKit) + style = new Element('div',{style:this}).style; + else { + String.__parseStyleElement.innerHTML = '
      '; + style = String.__parseStyleElement.childNodes[0].style; + } + + Element.CSS_PROPERTIES.each(function(property){ + if (style[property]) styleRules.set(property, style[property]); + }); + + if (Prototype.Browser.IE && this.include('opacity')) + styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]); + + return styleRules; +}; + +if (document.defaultView && document.defaultView.getComputedStyle) { + Element.getStyles = function(element) { + var css = document.defaultView.getComputedStyle($(element), null); + return Element.CSS_PROPERTIES.inject({ }, function(styles, property) { + styles[property] = css[property]; + return styles; + }); + }; +} else { + Element.getStyles = function(element) { + element = $(element); + var css = element.currentStyle, styles; + styles = Element.CSS_PROPERTIES.inject({ }, function(hash, property) { + hash.set(property, css[property]); + return hash; + }); + if (!styles.opacity) styles.set('opacity', element.getOpacity()); + return styles; + }; +}; + +Effect.Methods = { + morph: function(element, style) { + element = $(element); + new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { })); + return element; + }, + visualEffect: function(element, effect, options) { + element = $(element) + var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1); + new Effect[klass](element, options); + return element; + }, + highlight: function(element, options) { + element = $(element); + new Effect.Highlight(element, options); + return element; + } +}; + +$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+ + 'pulsate shake puff squish switchOff dropOut').each( + function(effect) { + Effect.Methods[effect] = function(element, options){ + element = $(element); + Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options); + return element; + } + } +); + +$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each( + function(f) { Effect.Methods[f] = Element[f]; } +); + +Element.addMethods(Effect.Methods); diff --git a/app/assets/javascripts/errors.js b/app/assets/javascripts/errors.js new file mode 100644 index 0000000..57f097b --- /dev/null +++ b/app/assets/javascripts/errors.js @@ -0,0 +1,16 @@ +function display_error_message(language) { + if (!language) { + var language = ((navigator.language) ? navigator.language : navigator.userLanguage).replace('-', '_'); + } + element = $(language); + if (!element) { + element = $(language.replace(/_.*$/, '')); + } + if (!element) { + element = $('en'); + } + $$('.message').each(function(item) { item.hide() }); + element.getElementsBySelector('h1').each(function(title) { document.title = title.innerHTML; }); + element.show(); +} + diff --git a/app/assets/javascripts/google_maps.js b/app/assets/javascripts/google_maps.js new file mode 100644 index 0000000..1a7738f --- /dev/null +++ b/app/assets/javascripts/google_maps.js @@ -0,0 +1,61 @@ +var map; +var infoWindow; +var mapPoints = {}; +var mapBounds; + +function mapOpenBalloon(marker, html) { + infoWindow.setPosition(marker.getPosition()); + infoWindow.setContent(html); + infoWindow.open(map, marker); +} + +function mapPutMarker(lat, lng, title, icon, url_or_function) { + var point_str = lat + ":" + lng; + + if (mapPoints[point_str]) { + lng += (Math.random() - 0.5) * 0.02; + lat += (Math.random() - 0.5) * 0.02; + } else { + mapPoints[point_str] = true; + } + + var point = new google.maps.LatLng(lat, lng); + var options = { map: map, title: title, icon: icon, position: point }; + var marker = new google.maps.Marker(options); + + google.maps.event.addListener(marker, 'click', function() { + if (!url_or_function) + return; + if (typeof(url_or_function) == "function") + url_or_function(marker); + else + jQuery.ajax({url: url_or_function, success: function(data) { mapOpenBalloon(marker, jQuery(data).html()); } }); + }); + mapBounds.extend(point); + + return marker; +} + +function mapLoad(initial_zoom) { + //center in Brazil + centerPoint = new google.maps.LatLng(-15.0, -50.1419); + + map = new google.maps.Map(document.getElementById("map"), { + zoom: initial_zoom, + center: centerPoint, + mapTypeId: google.maps.MapTypeId.ROADMAP + }); + + mapBounds = new google.maps.LatLngBounds(); + infoWindow = new google.maps.InfoWindow({map: map}); + + google.maps.event.addListener(map, 'click', function() { + infoWindow.close(); + }); +} + +function mapCenter(latlng) { + if (!latlng) + map.fitBounds(mapBounds); + map.setCenter(latlng ? latlng : mapBounds.getCenter()); +} diff --git a/app/assets/javascripts/jquery-latest.js b/app/assets/javascripts/jquery-latest.js new file mode 100644 index 0000000..78fcfa4 --- /dev/null +++ b/app/assets/javascripts/jquery-latest.js @@ -0,0 +1,8316 @@ +/*! + * jQuery JavaScript Library v1.5.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Wed Feb 23 13:55:29 2011 -0500 + */ +(function( window, undefined ) { + +// Use the correct document accordingly with window argument (sandbox) +var document = window.document; +var jQuery = (function() { + +// Define a local copy of jQuery +var jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // A central reference to the root jQuery(document) + rootjQuery, + + // A simple way to check for HTML strings or ID strings + // (both of which we optimize for) + quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/, + + // Check if a string has a non-whitespace character in it + rnotwhite = /\S/, + + // Used for trimming whitespace + trimLeft = /^\s+/, + trimRight = /\s+$/, + + // Check for digits + rdigit = /\d/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, + rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + + // Useragent RegExp + rwebkit = /(webkit)[ \/]([\w.]+)/, + ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, + rmsie = /(msie) ([\w.]+)/, + rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, + + // Keep a UserAgent string for use with jQuery.browser + userAgent = navigator.userAgent, + + // For matching the engine and version of the browser + browserMatch, + + // Has the ready events already been bound? + readyBound = false, + + // The deferred used on DOM ready + readyList, + + // Promise methods + promiseMethods = "then done fail isResolved isRejected promise".split( " " ), + + // The ready event handler + DOMContentLoaded, + + // Save a reference to some core methods + toString = Object.prototype.toString, + hasOwn = Object.prototype.hasOwnProperty, + push = Array.prototype.push, + slice = Array.prototype.slice, + trim = String.prototype.trim, + indexOf = Array.prototype.indexOf, + + // [[Class]] -> type pairs + class2type = {}; + +jQuery.fn = jQuery.prototype = { + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem, ret, doc; + + // Handle $(""), $(null), or $(undefined) + if ( !selector ) { + return this; + } + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + } + + // The body element only exists once, optimize finding it + if ( selector === "body" && !context && document.body ) { + this.context = document; + this[0] = document.body; + this.selector = "body"; + this.length = 1; + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + match = quickExpr.exec( selector ); + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + doc = (context ? context.ownerDocument || context : document); + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + ret = rsingleTag.exec( selector ); + + if ( ret ) { + if ( jQuery.isPlainObject( context ) ) { + selector = [ document.createElement( ret[1] ) ]; + jQuery.fn.attr.call( selector, context, true ); + + } else { + selector = [ doc.createElement( ret[1] ) ]; + } + + } else { + ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); + selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; + } + + return jQuery.merge( this, selector ); + + // HANDLE: $("#id") + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return (context || rootjQuery).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if (selector.selector !== undefined) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.5.1", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return slice.call( this, 0 ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + // Build a new jQuery matched element set + var ret = this.constructor(); + + if ( jQuery.isArray( elems ) ) { + push.apply( ret, elems ); + + } else { + jQuery.merge( ret, elems ); + } + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) { + ret.selector = this.selector + (this.selector ? " " : "") + selector; + } else if ( name ) { + ret.selector = this.selector + "." + name + "(" + selector + ")"; + } + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Attach the listeners + jQuery.bindReady(); + + // Add the callback + readyList.done( fn ); + + return this; + }, + + eq: function( i ) { + return i === -1 ? + this.slice( i ) : + this.slice( i, +i + 1 ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ), + "slice", slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + window.$ = _$; + + if ( deep ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + // A third-party is pushing the ready event forwards + if ( wait === true ) { + jQuery.readyWait--; + } + + // Make sure that the DOM is not already loaded + if ( !jQuery.readyWait || (wait !== true && !jQuery.isReady) ) { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready, 1 ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger( "ready" ).unbind( "ready" ); + } + } + }, + + bindReady: function() { + if ( readyBound ) { + return; + } + + readyBound = true; + + // Catch cases where $(document).ready() is called after the + // browser event has already occurred. + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + return setTimeout( jQuery.ready, 1 ); + } + + // Mozilla, Opera and webkit nightlies currently support this event + if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", jQuery.ready, false ); + + // If IE event model is used + } else if ( document.attachEvent ) { + // ensure firing before onload, + // maybe late but safe also for iframes + document.attachEvent("onreadystatechange", DOMContentLoaded); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", jQuery.ready ); + + // If IE and not a frame + // continually check to see if the document is ready + var toplevel = false; + + try { + toplevel = window.frameElement == null; + } catch(e) {} + + if ( document.documentElement.doScroll && toplevel ) { + doScrollCheck(); + } + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + // A crude way of determining if an object is a window + isWindow: function( obj ) { + return obj && typeof obj === "object" && "setInterval" in obj; + }, + + isNaN: function( obj ) { + return obj == null || !rdigit.test( obj ) || isNaN( obj ); + }, + + type: function( obj ) { + return obj == null ? + String( obj ) : + class2type[ toString.call(obj) ] || "object"; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + for ( var name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw msg; + }, + + parseJSON: function( data ) { + if ( typeof data !== "string" || !data ) { + return null; + } + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test(data.replace(rvalidescape, "@") + .replace(rvalidtokens, "]") + .replace(rvalidbraces, "")) ) { + + // Try to use the native JSON parser first + return window.JSON && window.JSON.parse ? + window.JSON.parse( data ) : + (new Function("return " + data))(); + + } else { + jQuery.error( "Invalid JSON: " + data ); + } + }, + + // Cross-browser xml parsing + // (xml & tmp used internally) + parseXML: function( data , xml , tmp ) { + + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + + tmp = xml.documentElement; + + if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { + jQuery.error( "Invalid XML: " + data ); + } + + return xml; + }, + + noop: function() {}, + + // Evalulates a script in a global context + globalEval: function( data ) { + if ( data && rnotwhite.test(data) ) { + // Inspired by code by Andrea Giammarchi + // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html + var head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement, + script = document.createElement( "script" ); + + if ( jQuery.support.scriptEval() ) { + script.appendChild( document.createTextNode( data ) ); + } else { + script.text = data; + } + + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709). + head.insertBefore( script, head.firstChild ); + head.removeChild( script ); + } + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, + length = object.length, + isObj = length === undefined || jQuery.isFunction(object); + + if ( args ) { + if ( isObj ) { + for ( name in object ) { + if ( callback.apply( object[ name ], args ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.apply( object[ i++ ], args ) === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isObj ) { + for ( name in object ) { + if ( callback.call( object[ name ], name, object[ name ] ) === false ) { + break; + } + } + } else { + for ( var value = object[0]; + i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {} + } + } + + return object; + }, + + // Use native String.trim function wherever possible + trim: trim ? + function( text ) { + return text == null ? + "" : + trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); + }, + + // results is for internal usage only + makeArray: function( array, results ) { + var ret = results || []; + + if ( array != null ) { + // The window, strings (and functions) also have 'length' + // The extra typeof function check is to prevent crashes + // in Safari 2 (See: #3039) + // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 + var type = jQuery.type(array); + + if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { + push.call( ret, array ); + } else { + jQuery.merge( ret, array ); + } + } + + return ret; + }, + + inArray: function( elem, array ) { + if ( array.indexOf ) { + return array.indexOf( elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; + }, + + merge: function( first, second ) { + var i = first.length, + j = 0; + + if ( typeof second.length === "number" ) { + for ( var l = second.length; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var ret = [], retVal; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( var i = 0, length = elems.length; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var ret = [], value; + + // Go through the array, translating each of the items to their + // new value (or values). + for ( var i = 0, length = elems.length; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Flatten any nested arrays + return ret.concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + proxy: function( fn, proxy, thisObject ) { + if ( arguments.length === 2 ) { + if ( typeof proxy === "string" ) { + thisObject = fn; + fn = thisObject[ proxy ]; + proxy = undefined; + + } else if ( proxy && !jQuery.isFunction( proxy ) ) { + thisObject = proxy; + proxy = undefined; + } + } + + if ( !proxy && fn ) { + proxy = function() { + return fn.apply( thisObject || this, arguments ); + }; + } + + // Set the guid of unique handler to the same of original handler, so it can be removed + if ( fn ) { + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + } + + // So proxy can be declared as an argument + return proxy; + }, + + // Mutifunctional method to get and set values to a collection + // The value/s can be optionally by executed if its a function + access: function( elems, key, value, exec, fn, pass ) { + var length = elems.length; + + // Setting many attributes + if ( typeof key === "object" ) { + for ( var k in key ) { + jQuery.access( elems, k, key[k], exec, fn, value ); + } + return elems; + } + + // Setting one attribute + if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = !pass && exec && jQuery.isFunction(value); + + for ( var i = 0; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + + return elems; + } + + // Getting an attribute + return length ? fn( elems[0], key ) : undefined; + }, + + now: function() { + return (new Date()).getTime(); + }, + + // Create a simple deferred (one callbacks list) + _Deferred: function() { + var // callbacks list + callbacks = [], + // stored [ context , args ] + fired, + // to avoid firing when already doing so + firing, + // flag to know if the deferred has been cancelled + cancelled, + // the deferred itself + deferred = { + + // done( f1, f2, ...) + done: function() { + if ( !cancelled ) { + var args = arguments, + i, + length, + elem, + type, + _fired; + if ( fired ) { + _fired = fired; + fired = 0; + } + for ( i = 0, length = args.length; i < length; i++ ) { + elem = args[ i ]; + type = jQuery.type( elem ); + if ( type === "array" ) { + deferred.done.apply( deferred, elem ); + } else if ( type === "function" ) { + callbacks.push( elem ); + } + } + if ( _fired ) { + deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); + } + } + return this; + }, + + // resolve with given context and args + resolveWith: function( context, args ) { + if ( !cancelled && !fired && !firing ) { + firing = 1; + try { + while( callbacks[ 0 ] ) { + callbacks.shift().apply( context, args ); + } + } + // We have to add a catch block for + // IE prior to 8 or else the finally + // block will never get executed + catch (e) { + throw e; + } + finally { + fired = [ context, args ]; + firing = 0; + } + } + return this; + }, + + // resolve with this as context and given arguments + resolve: function() { + deferred.resolveWith( jQuery.isFunction( this.promise ) ? this.promise() : this, arguments ); + return this; + }, + + // Has this deferred been resolved? + isResolved: function() { + return !!( firing || fired ); + }, + + // Cancel + cancel: function() { + cancelled = 1; + callbacks = []; + return this; + } + }; + + return deferred; + }, + + // Full fledged deferred (two callbacks list) + Deferred: function( func ) { + var deferred = jQuery._Deferred(), + failDeferred = jQuery._Deferred(), + promise; + // Add errorDeferred methods, then and promise + jQuery.extend( deferred, { + then: function( doneCallbacks, failCallbacks ) { + deferred.done( doneCallbacks ).fail( failCallbacks ); + return this; + }, + fail: failDeferred.done, + rejectWith: failDeferred.resolveWith, + reject: failDeferred.resolve, + isRejected: failDeferred.isResolved, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + if ( obj == null ) { + if ( promise ) { + return promise; + } + promise = obj = {}; + } + var i = promiseMethods.length; + while( i-- ) { + obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ]; + } + return obj; + } + } ); + // Make sure only one callback list will be used + deferred.done( failDeferred.cancel ).fail( deferred.cancel ); + // Unexpose cancel + delete deferred.cancel; + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + return deferred; + }, + + // Deferred helper + when: function( object ) { + var lastIndex = arguments.length, + deferred = lastIndex <= 1 && object && jQuery.isFunction( object.promise ) ? + object : + jQuery.Deferred(), + promise = deferred.promise(); + + if ( lastIndex > 1 ) { + var array = slice.call( arguments, 0 ), + count = lastIndex, + iCallback = function( index ) { + return function( value ) { + array[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value; + if ( !( --count ) ) { + deferred.resolveWith( promise, array ); + } + }; + }; + while( ( lastIndex-- ) ) { + object = array[ lastIndex ]; + if ( object && jQuery.isFunction( object.promise ) ) { + object.promise().then( iCallback(lastIndex), deferred.reject ); + } else { + --count; + } + } + if ( !count ) { + deferred.resolveWith( promise, array ); + } + } else if ( deferred !== object ) { + deferred.resolve( object ); + } + return promise; + }, + + // Use of jQuery.browser is frowned upon. + // More details: http://docs.jquery.com/Utilities/jQuery.browser + uaMatch: function( ua ) { + ua = ua.toLowerCase(); + + var match = rwebkit.exec( ua ) || + ropera.exec( ua ) || + rmsie.exec( ua ) || + ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || + []; + + return { browser: match[1] || "", version: match[2] || "0" }; + }, + + sub: function() { + function jQuerySubclass( selector, context ) { + return new jQuerySubclass.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySubclass, this ); + jQuerySubclass.superclass = this; + jQuerySubclass.fn = jQuerySubclass.prototype = this(); + jQuerySubclass.fn.constructor = jQuerySubclass; + jQuerySubclass.subclass = this.subclass; + jQuerySubclass.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySubclass) ) { + context = jQuerySubclass(context); + } + + return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass ); + }; + jQuerySubclass.fn.init.prototype = jQuerySubclass.fn; + var rootjQuerySubclass = jQuerySubclass(document); + return jQuerySubclass; + }, + + browser: {} +}); + +// Create readyList deferred +readyList = jQuery._Deferred(); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +browserMatch = jQuery.uaMatch( userAgent ); +if ( browserMatch.browser ) { + jQuery.browser[ browserMatch.browser ] = true; + jQuery.browser.version = browserMatch.version; +} + +// Deprecated, use jQuery.browser.webkit instead +if ( jQuery.browser.webkit ) { + jQuery.browser.safari = true; +} + +if ( indexOf ) { + jQuery.inArray = function( elem, array ) { + return indexOf.call( array, elem ); + }; +} + +// IE doesn't match non-breaking spaces with \s +if ( rnotwhite.test( "\xA0" ) ) { + trimLeft = /^[\s\xA0]+/; + trimRight = /[\s\xA0]+$/; +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); + +// Cleanup functions for the document ready method +if ( document.addEventListener ) { + DOMContentLoaded = function() { + document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + jQuery.ready(); + }; + +} else if ( document.attachEvent ) { + DOMContentLoaded = function() { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( document.readyState === "complete" ) { + document.detachEvent( "onreadystatechange", DOMContentLoaded ); + jQuery.ready(); + } + }; +} + +// The DOM ready check for Internet Explorer +function doScrollCheck() { + if ( jQuery.isReady ) { + return; + } + + try { + // If IE is used, use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + document.documentElement.doScroll("left"); + } catch(e) { + setTimeout( doScrollCheck, 1 ); + return; + } + + // and execute any waiting functions + jQuery.ready(); +} + +// Expose jQuery to the global object +return jQuery; + +})(); + + +(function() { + + jQuery.support = {}; + + var div = document.createElement("div"); + + div.style.display = "none"; + div.innerHTML = "
      a"; + + var all = div.getElementsByTagName("*"), + a = div.getElementsByTagName("a")[0], + select = document.createElement("select"), + opt = select.appendChild( document.createElement("option") ), + input = div.getElementsByTagName("input")[0]; + + // Can't get basic test support + if ( !all || !all.length || !a ) { + return; + } + + jQuery.support = { + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: div.firstChild.nodeType === 3, + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, + + // Get the style information from getAttribute + // (IE uses .cssText insted) + style: /red/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: a.getAttribute("href") === "/a", + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.55$/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Make sure that if no value is specified for a checkbox + // that it defaults to "on". + // (WebKit defaults to "" instead) + checkOn: input.value === "on", + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Will be defined later + deleteExpando: true, + optDisabled: false, + checkClone: false, + noCloneEvent: true, + noCloneChecked: true, + boxModel: null, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableHiddenOffsets: true + }; + + input.checked = true; + jQuery.support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as diabled) + select.disabled = true; + jQuery.support.optDisabled = !opt.disabled; + + var _scriptEval = null; + jQuery.support.scriptEval = function() { + if ( _scriptEval === null ) { + var root = document.documentElement, + script = document.createElement("script"), + id = "script" + jQuery.now(); + + try { + script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); + } catch(e) {} + + root.insertBefore( script, root.firstChild ); + + // Make sure that the execution of code works by injecting a script + // tag with appendChild/createTextNode + // (IE doesn't support this, fails, and uses .text instead) + if ( window[ id ] ) { + _scriptEval = true; + delete window[ id ]; + } else { + _scriptEval = false; + } + + root.removeChild( script ); + // release memory in IE + root = script = id = null; + } + + return _scriptEval; + }; + + // Test to see if it's possible to delete an expando from an element + // Fails in Internet Explorer + try { + delete div.test; + + } catch(e) { + jQuery.support.deleteExpando = false; + } + + if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { + div.attachEvent("onclick", function click() { + // Cloning a node shouldn't copy over any + // bound event handlers (IE does this) + jQuery.support.noCloneEvent = false; + div.detachEvent("onclick", click); + }); + div.cloneNode(true).fireEvent("onclick"); + } + + div = document.createElement("div"); + div.innerHTML = ""; + + var fragment = document.createDocumentFragment(); + fragment.appendChild( div.firstChild ); + + // WebKit doesn't clone checked state correctly in fragments + jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked; + + // Figure out if the W3C box model works as expected + // document.body must exist before we can do this + jQuery(function() { + var div = document.createElement("div"), + body = document.getElementsByTagName("body")[0]; + + // Frameset documents with no body should not run this code + if ( !body ) { + return; + } + + div.style.width = div.style.paddingLeft = "1px"; + body.appendChild( div ); + jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; + + if ( "zoom" in div.style ) { + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + // (IE < 8 does this) + div.style.display = "inline"; + div.style.zoom = 1; + jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2; + + // Check if elements with layout shrink-wrap their children + // (IE 6 does this) + div.style.display = ""; + div.innerHTML = "
      "; + jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2; + } + + div.innerHTML = "
      t
      "; + var tds = div.getElementsByTagName("td"); + + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + // (only IE 8 fails this test) + jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0; + + tds[0].style.display = ""; + tds[1].style.display = "none"; + + // Check if empty table cells still have offsetWidth/Height + // (IE < 8 fail this test) + jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0; + div.innerHTML = ""; + + body.removeChild( div ).style.display = "none"; + div = tds = null; + }); + + // Technique from Juriy Zaytsev + // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ + var eventSupported = function( eventName ) { + var el = document.createElement("div"); + eventName = "on" + eventName; + + // We only care about the case where non-standard event systems + // are used, namely in IE. Short-circuiting here helps us to + // avoid an eval call (in setAttribute) which can cause CSP + // to go haywire. See: https://developer.mozilla.org/en/Security/CSP + if ( !el.attachEvent ) { + return true; + } + + var isSupported = (eventName in el); + if ( !isSupported ) { + el.setAttribute(eventName, "return;"); + isSupported = typeof el[eventName] === "function"; + } + el = null; + + return isSupported; + }; + + jQuery.support.submitBubbles = eventSupported("submit"); + jQuery.support.changeBubbles = eventSupported("change"); + + // release memory in IE + div = all = a = null; +})(); + + + +var rbrace = /^(?:\{.*\}|\[.*\])$/; + +jQuery.extend({ + cache: {}, + + // Please use with caution + uuid: 0, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ jQuery.expando ] = id = ++jQuery.uuid; + } else { + id = jQuery.expando; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); + } else { + cache[ id ] = jQuery.extend(cache[ id ], name); + } + } + + thisCache = cache[ id ]; + + // Internal jQuery data is stored in a separate object inside the object's data + // cache in order to avoid key collisions between internal data and user-defined + // data + if ( pvt ) { + if ( !thisCache[ internalKey ] ) { + thisCache[ internalKey ] = {}; + } + + thisCache = thisCache[ internalKey ]; + } + + if ( data !== undefined ) { + thisCache[ name ] = data; + } + + // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should + // not attempt to inspect the internal events object using jQuery.data, as this + // internal data object is undocumented and subject to change. + if ( name === "events" && !thisCache[name] ) { + return thisCache[ internalKey ] && thisCache[ internalKey ].events; + } + + return getByName ? thisCache[ name ] : thisCache; + }, + + removeData: function( elem, name, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var internalKey = jQuery.expando, isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + + // See jQuery.data for more information + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; + + if ( thisCache ) { + delete thisCache[ name ]; + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !isEmptyDataObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( pvt ) { + delete cache[ id ][ internalKey ]; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject(cache[ id ]) ) { + return; + } + } + + var internalCache = cache[ id ][ internalKey ]; + + // Browsers that fail expando deletion also refuse to delete expandos on + // the window, but it will allow it on all other JS objects; other browsers + // don't care + if ( jQuery.support.deleteExpando || cache != window ) { + delete cache[ id ]; + } else { + cache[ id ] = null; + } + + // We destroyed the entire user cache at once because it's faster than + // iterating through each key, but we need to continue to persist internal + // data if it existed + if ( internalCache ) { + cache[ id ] = {}; + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + + cache[ id ][ internalKey ] = internalCache; + + // Otherwise, we need to eliminate the expando on the node to avoid + // false lookups in the cache for entries that no longer exist + } else if ( isNode ) { + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( jQuery.support.deleteExpando ) { + delete elem[ jQuery.expando ]; + } else if ( elem.removeAttribute ) { + elem.removeAttribute( jQuery.expando ); + } else { + elem[ jQuery.expando ] = null; + } + } + }, + + // For internal use only. + _data: function( elem, name, data ) { + return jQuery.data( elem, name, data, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + if ( elem.nodeName ) { + var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; + + if ( match ) { + return !(match === true || elem.getAttribute("classid") !== match); + } + } + + return true; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var data = null; + + if ( typeof key === "undefined" ) { + if ( this.length ) { + data = jQuery.data( this[0] ); + + if ( this[0].nodeType === 1 ) { + var attr = this[0].attributes, name; + for ( var i = 0, l = attr.length; i < l; i++ ) { + name = attr[i].name; + + if ( name.indexOf( "data-" ) === 0 ) { + name = name.substr( 5 ); + dataAttr( this[0], name, data[ name ] ); + } + } + } + } + + return data; + + } else if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + var parts = key.split("."); + parts[1] = parts[1] ? "." + parts[1] : ""; + + if ( value === undefined ) { + data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); + + // Try to fetch any internally stored data first + if ( data === undefined && this.length ) { + data = jQuery.data( this[0], key ); + data = dataAttr( this[0], key, data ); + } + + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + + } else { + return this.each(function() { + var $this = jQuery( this ), + args = [ parts[0], value ]; + + $this.triggerHandler( "setData" + parts[1] + "!", args ); + jQuery.data( this, key, value ); + $this.triggerHandler( "changeData" + parts[1] + "!", args ); + }); + } + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + data = elem.getAttribute( "data-" + key ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + !jQuery.isNaN( data ) ? parseFloat( data ) : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON +// property to be considered empty objects; this property always exists in +// order to make sure JSON.stringify does not expose internal metadata +function isEmptyDataObject( obj ) { + for ( var name in obj ) { + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} + + + + +jQuery.extend({ + queue: function( elem, type, data ) { + if ( !elem ) { + return; + } + + type = (type || "fx") + "queue"; + var q = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( !data ) { + return q || []; + } + + if ( !q || jQuery.isArray(data) ) { + q = jQuery._data( elem, type, jQuery.makeArray(data) ); + + } else { + q.push( data ); + } + + return q; + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + fn = queue.shift(); + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + } + + if ( fn ) { + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift("inprogress"); + } + + fn.call(elem, function() { + jQuery.dequeue(elem, type); + }); + } + + if ( !queue.length ) { + jQuery.removeData( elem, type + "queue", true ); + } + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + } + + if ( data === undefined ) { + return jQuery.queue( this[0], type ); + } + return this.each(function( i ) { + var queue = jQuery.queue( this, type, data ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; + type = type || "fx"; + + return this.queue( type, function() { + var elem = this; + setTimeout(function() { + jQuery.dequeue( elem, type ); + }, time ); + }); + }, + + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + } +}); + + + + +var rclass = /[\n\t\r]/g, + rspaces = /\s+/, + rreturn = /\r/g, + rspecialurl = /^(?:href|src|style)$/, + rtype = /^(?:button|input)$/i, + rfocusable = /^(?:button|input|object|select|textarea)$/i, + rclickable = /^a(?:rea)?$/i, + rradiocheck = /^(?:radio|checkbox)$/i; + +jQuery.props = { + "for": "htmlFor", + "class": "className", + readonly: "readOnly", + maxlength: "maxLength", + cellspacing: "cellSpacing", + rowspan: "rowSpan", + colspan: "colSpan", + tabindex: "tabIndex", + usemap: "useMap", + frameborder: "frameBorder" +}; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, name, value, true, jQuery.attr ); + }, + + removeAttr: function( name, fn ) { + return this.each(function(){ + jQuery.attr( this, name, "" ); + if ( this.nodeType === 1 ) { + this.removeAttribute( name ); + } + }); + }, + + addClass: function( value ) { + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + self.addClass( value.call(this, i, self.attr("class")) ); + }); + } + + if ( value && typeof value === "string" ) { + var classNames = (value || "").split( rspaces ); + + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; + + if ( elem.nodeType === 1 ) { + if ( !elem.className ) { + elem.className = value; + + } else { + var className = " " + elem.className + " ", + setClass = elem.className; + + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { + setClass += " " + classNames[c]; + } + } + elem.className = jQuery.trim( setClass ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + self.removeClass( value.call(this, i, self.attr("class")) ); + }); + } + + if ( (value && typeof value === "string") || value === undefined ) { + var classNames = (value || "").split( rspaces ); + + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; + + if ( elem.nodeType === 1 && elem.className ) { + if ( value ) { + var className = (" " + elem.className + " ").replace(rclass, " "); + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + className = className.replace(" " + classNames[c] + " ", " "); + } + elem.className = jQuery.trim( className ); + + } else { + elem.className = ""; + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this); + self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.split( rspaces ); + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space seperated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + } else if ( type === "undefined" || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // toggle whole className + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " "; + for ( var i = 0, l = this.length; i < l; i++ ) { + if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + if ( !arguments.length ) { + var elem = this[0]; + + if ( elem ) { + if ( jQuery.nodeName( elem, "option" ) ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + + // We need to handle select boxes special + if ( jQuery.nodeName( elem, "select" ) ) { + var index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type === "select-one"; + + // Nothing was selected + if ( index < 0 ) { + return null; + } + + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; + + // Don't return options that are disabled or in a disabled optgroup + if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && + (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { + + // Get the specific value for the option + value = jQuery(option).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + // Fixes Bug #2551 -- select.val() broken in IE after form.reset() + if ( one && !values.length && options.length ) { + return jQuery( options[ index ] ).val(); + } + + return values; + } + + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) { + return elem.getAttribute("value") === null ? "on" : elem.value; + } + + // Everything else, we just grab the value + return (elem.value || "").replace(rreturn, ""); + + } + + return undefined; + } + + var isFunction = jQuery.isFunction(value); + + return this.each(function(i) { + var self = jQuery(this), val = value; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call(this, i, self.val()); + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray(val) ) { + val = jQuery.map(val, function (value) { + return value == null ? "" : value + ""; + }); + } + + if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) { + this.checked = jQuery.inArray( self.val(), val ) >= 0; + + } else if ( jQuery.nodeName( this, "select" ) ) { + var values = jQuery.makeArray(val); + + jQuery( "option", this ).each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + this.selectedIndex = -1; + } + + } else { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + attrFn: { + val: true, + css: true, + html: true, + text: true, + data: true, + width: true, + height: true, + offset: true + }, + + attr: function( elem, name, value, pass ) { + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || elem.nodeType === 2 ) { + return undefined; + } + + if ( pass && name in jQuery.attrFn ) { + return jQuery(elem)[name](value); + } + + var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ), + // Whether we are setting (or getting) + set = value !== undefined; + + // Try to normalize/fix the name + name = notxml && jQuery.props[ name ] || name; + + // Only do all the following if this is a node (faster for style) + if ( elem.nodeType === 1 ) { + // These attributes require special treatment + var special = rspecialurl.test( name ); + + // Safari mis-reports the default selected property of an option + // Accessing the parent's selectedIndex property fixes it + if ( name === "selected" && !jQuery.support.optSelected ) { + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + + // If applicable, access the attribute via the DOM 0 way + // 'in' checks fail in Blackberry 4.7 #6931 + if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) { + if ( set ) { + // We can't allow the type property to be changed (since it causes problems in IE) + if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { + jQuery.error( "type property can't be changed" ); + } + + if ( value === null ) { + if ( elem.nodeType === 1 ) { + elem.removeAttribute( name ); + } + + } else { + elem[ name ] = value; + } + } + + // browsers index elements by id/name on forms, give priority to attributes. + if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { + return elem.getAttributeNode( name ).nodeValue; + } + + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + if ( name === "tabIndex" ) { + var attributeNode = elem.getAttributeNode( "tabIndex" ); + + return attributeNode && attributeNode.specified ? + attributeNode.value : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + + return elem[ name ]; + } + + if ( !jQuery.support.style && notxml && name === "style" ) { + if ( set ) { + elem.style.cssText = "" + value; + } + + return elem.style.cssText; + } + + if ( set ) { + // convert the value to a string (all browsers do this but IE) see #1070 + elem.setAttribute( name, "" + value ); + } + + // Ensure that missing attributes return undefined + // Blackberry 4.7 returns "" from getAttribute #6938 + if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) { + return undefined; + } + + var attr = !jQuery.support.hrefNormalized && notxml && special ? + // Some attributes require a special call on IE + elem.getAttribute( name, 2 ) : + elem.getAttribute( name ); + + // Non-existent attributes return null, we normalize to undefined + return attr === null ? undefined : attr; + } + // Handle everything which isn't a DOM element node + if ( set ) { + elem[ name ] = value; + } + return elem[ name ]; + } +}); + + + + +var rnamespaces = /\.(.*)$/, + rformElems = /^(?:textarea|input|select)$/i, + rperiod = /\./g, + rspace = / /g, + rescape = /[^\w\s.|`]/g, + fcleanup = function( nm ) { + return nm.replace(rescape, "\\$&"); + }; + +/* + * A number of helper functions used for managing events. + * Many of the ideas behind this code originated from + * Dean Edwards' addEvent library. + */ +jQuery.event = { + + // Bind an event to an element + // Original by Dean Edwards + add: function( elem, types, handler, data ) { + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // TODO :: Use a try/catch until it's safe to pull this out (likely 1.6) + // Minor release fix for bug #8018 + try { + // For whatever reason, IE has trouble passing the window object + // around, causing it to be cloned in the process + if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) { + elem = window; + } + } + catch ( e ) {} + + if ( handler === false ) { + handler = returnFalse; + } else if ( !handler ) { + // Fixes bug #7229. Fix recommended by jdalton + return; + } + + var handleObjIn, handleObj; + + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + } + + // Make sure that the function being executed has a unique ID + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure + var elemData = jQuery._data( elem ); + + // If no elemData is found then we must be trying to bind to one of the + // banned noData elements + if ( !elemData ) { + return; + } + + var events = elemData.events, + eventHandle = elemData.handle; + + if ( !events ) { + elemData.events = events = {}; + } + + if ( !eventHandle ) { + elemData.handle = eventHandle = function() { + // Handle the second event of a trigger and when + // an event is called after a page has unloaded + return typeof jQuery !== "undefined" && !jQuery.event.triggered ? + jQuery.event.handle.apply( eventHandle.elem, arguments ) : + undefined; + }; + } + + // Add elem as a property of the handle function + // This is to prevent a memory leak with non-native events in IE. + eventHandle.elem = elem; + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = types.split(" "); + + var type, i = 0, namespaces; + + while ( (type = types[ i++ ]) ) { + handleObj = handleObjIn ? + jQuery.extend({}, handleObjIn) : + { handler: handler, data: data }; + + // Namespaced event handlers + if ( type.indexOf(".") > -1 ) { + namespaces = type.split("."); + type = namespaces.shift(); + handleObj.namespace = namespaces.slice(0).sort().join("."); + + } else { + namespaces = []; + handleObj.namespace = ""; + } + + handleObj.type = type; + if ( !handleObj.guid ) { + handleObj.guid = handler.guid; + } + + // Get the current list of functions bound to this event + var handlers = events[ type ], + special = jQuery.event.special[ type ] || {}; + + // Init the event handler queue + if ( !handlers ) { + handlers = events[ type ] = []; + + // Check for a special event handler + // Only use addEventListener/attachEvent if the special + // events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add the function to the element's handler list + handlers.push( handleObj ); + + // Keep track of which events have been used, for global triggering + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + global: {}, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, pos ) { + // don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + if ( handler === false ) { + handler = returnFalse; + } + + var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ), + events = elemData && elemData.events; + + if ( !elemData || !events ) { + return; + } + + // types is actually an event object here + if ( types && types.type ) { + handler = types.handler; + types = types.type; + } + + // Unbind all events for the element + if ( !types || typeof types === "string" && types.charAt(0) === "." ) { + types = types || ""; + + for ( type in events ) { + jQuery.event.remove( elem, type + types ); + } + + return; + } + + // Handle multiple events separated by a space + // jQuery(...).unbind("mouseover mouseout", fn); + types = types.split(" "); + + while ( (type = types[ i++ ]) ) { + origType = type; + handleObj = null; + all = type.indexOf(".") < 0; + namespaces = []; + + if ( !all ) { + // Namespaced event handlers + namespaces = type.split("."); + type = namespaces.shift(); + + namespace = new RegExp("(^|\\.)" + + jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + eventType = events[ type ]; + + if ( !eventType ) { + continue; + } + + if ( !handler ) { + for ( j = 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( all || namespace.test( handleObj.namespace ) ) { + jQuery.event.remove( elem, origType, handleObj.handler, j ); + eventType.splice( j--, 1 ); + } + } + + continue; + } + + special = jQuery.event.special[ type ] || {}; + + for ( j = pos || 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( handler.guid === handleObj.guid ) { + // remove the given handler for the given type + if ( all || namespace.test( handleObj.namespace ) ) { + if ( pos == null ) { + eventType.splice( j--, 1 ); + } + + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + + if ( pos != null ) { + break; + } + } + } + + // remove generic event handler if no more handlers exist + if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { + if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + ret = null; + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + var handle = elemData.handle; + if ( handle ) { + handle.elem = null; + } + + delete elemData.events; + delete elemData.handle; + + if ( jQuery.isEmptyObject( elemData ) ) { + jQuery.removeData( elem, undefined, true ); + } + } + }, + + // bubbling is internal + trigger: function( event, data, elem /*, bubbling */ ) { + // Event object or event type + var type = event.type || event, + bubbling = arguments[3]; + + if ( !bubbling ) { + event = typeof event === "object" ? + // jQuery.Event object + event[ jQuery.expando ] ? event : + // Object literal + jQuery.extend( jQuery.Event(type), event ) : + // Just the event type (string) + jQuery.Event(type); + + if ( type.indexOf("!") >= 0 ) { + event.type = type = type.slice(0, -1); + event.exclusive = true; + } + + // Handle a global trigger + if ( !elem ) { + // Don't bubble custom events when global (to avoid too much overhead) + event.stopPropagation(); + + // Only trigger if we've ever bound an event for it + if ( jQuery.event.global[ type ] ) { + // XXX This code smells terrible. event.js should not be directly + // inspecting the data cache + jQuery.each( jQuery.cache, function() { + // internalKey variable is just used to make it easier to find + // and potentially change this stuff later; currently it just + // points to jQuery.expando + var internalKey = jQuery.expando, + internalCache = this[ internalKey ]; + if ( internalCache && internalCache.events && internalCache.events[ type ] ) { + jQuery.event.trigger( event, data, internalCache.handle.elem ); + } + }); + } + } + + // Handle triggering a single element + + // don't do events on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { + return undefined; + } + + // Clean up in case it is reused + event.result = undefined; + event.target = elem; + + // Clone the incoming data, if any + data = jQuery.makeArray( data ); + data.unshift( event ); + } + + event.currentTarget = elem; + + // Trigger the event, it is assumed that "handle" is a function + var handle = jQuery._data( elem, "handle" ); + + if ( handle ) { + handle.apply( elem, data ); + } + + var parent = elem.parentNode || elem.ownerDocument; + + // Trigger an inline bound script + try { + if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) { + if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) { + event.result = false; + event.preventDefault(); + } + } + + // prevent IE from throwing an error for some elements with some event types, see #3533 + } catch (inlineError) {} + + if ( !event.isPropagationStopped() && parent ) { + jQuery.event.trigger( event, data, parent, true ); + + } else if ( !event.isDefaultPrevented() ) { + var old, + target = event.target, + targetType = type.replace( rnamespaces, "" ), + isClick = jQuery.nodeName( target, "a" ) && targetType === "click", + special = jQuery.event.special[ targetType ] || {}; + + if ( (!special._default || special._default.call( elem, event ) === false) && + !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) { + + try { + if ( target[ targetType ] ) { + // Make sure that we don't accidentally re-trigger the onFOO events + old = target[ "on" + targetType ]; + + if ( old ) { + target[ "on" + targetType ] = null; + } + + jQuery.event.triggered = true; + target[ targetType ](); + } + + // prevent IE from throwing an error for some elements with some event types, see #3533 + } catch (triggerError) {} + + if ( old ) { + target[ "on" + targetType ] = old; + } + + jQuery.event.triggered = false; + } + } + }, + + handle: function( event ) { + var all, handlers, namespaces, namespace_re, events, + namespace_sort = [], + args = jQuery.makeArray( arguments ); + + event = args[0] = jQuery.event.fix( event || window.event ); + event.currentTarget = this; + + // Namespaced event handlers + all = event.type.indexOf(".") < 0 && !event.exclusive; + + if ( !all ) { + namespaces = event.type.split("."); + event.type = namespaces.shift(); + namespace_sort = namespaces.slice(0).sort(); + namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + event.namespace = event.namespace || namespace_sort.join("."); + + events = jQuery._data(this, "events"); + + handlers = (events || {})[ event.type ]; + + if ( events && handlers ) { + // Clone the handlers to prevent manipulation + handlers = handlers.slice(0); + + for ( var j = 0, l = handlers.length; j < l; j++ ) { + var handleObj = handlers[ j ]; + + // Filter the functions by class + if ( all || namespace_re.test( handleObj.namespace ) ) { + // Pass in a reference to the handler function itself + // So that we can later remove it + event.handler = handleObj.handler; + event.data = handleObj.data; + event.handleObj = handleObj; + + var ret = handleObj.handler.apply( this, args ); + + if ( ret !== undefined ) { + event.result = ret; + if ( ret === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + + if ( event.isImmediatePropagationStopped() ) { + break; + } + } + } + } + + return event.result; + }, + + props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // store a copy of the original event object + // and "clone" to set read-only properties + var originalEvent = event; + event = jQuery.Event( originalEvent ); + + for ( var i = this.props.length, prop; i; ) { + prop = this.props[ --i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Fix target property, if necessary + if ( !event.target ) { + // Fixes #1925 where srcElement might not be defined either + event.target = event.srcElement || document; + } + + // check if target is a textnode (safari) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && event.fromElement ) { + event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; + } + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && event.clientX != null ) { + var doc = document.documentElement, + body = document.body; + + event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); + event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); + } + + // Add which for key events + if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { + event.which = event.charCode != null ? event.charCode : event.keyCode; + } + + // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) + if ( !event.metaKey && event.ctrlKey ) { + event.metaKey = event.ctrlKey; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && event.button !== undefined ) { + event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); + } + + return event; + }, + + // Deprecated, use jQuery.guid instead + guid: 1E8, + + // Deprecated, use jQuery.proxy instead + proxy: jQuery.proxy, + + special: { + ready: { + // Make sure the ready event is setup + setup: jQuery.bindReady, + teardown: jQuery.noop + }, + + live: { + add: function( handleObj ) { + jQuery.event.add( this, + liveConvert( handleObj.origType, handleObj.selector ), + jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); + }, + + remove: function( handleObj ) { + jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj ); + } + }, + + beforeunload: { + setup: function( data, namespaces, eventHandle ) { + // We only want to do this special case on windows + if ( jQuery.isWindow( this ) ) { + this.onbeforeunload = eventHandle; + } + }, + + teardown: function( namespaces, eventHandle ) { + if ( this.onbeforeunload === eventHandle ) { + this.onbeforeunload = null; + } + } + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + if ( elem.detachEvent ) { + elem.detachEvent( "on" + type, handle ); + } + }; + +jQuery.Event = function( src ) { + // Allow instantiation without the 'new' keyword + if ( !this.preventDefault ) { + return new jQuery.Event( src ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // timeStamp is buggy for some events on Firefox(#3843) + // So we won't rely on the native value + this.timeStamp = jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +function returnFalse() { + return false; +} +function returnTrue() { + return true; +} + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + preventDefault: function() { + this.isDefaultPrevented = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + + // if preventDefault exists run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // otherwise set the returnValue property of the original event to false (IE) + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + this.isPropagationStopped = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + // if stopPropagation exists run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + // otherwise set the cancelBubble property of the original event to true (IE) + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse +}; + +// Checks if an event happened on an element within another element +// Used in jQuery.event.special.mouseenter and mouseleave handlers +var withinElement = function( event ) { + // Check if mouse(over|out) are still within the same parent element + var parent = event.relatedTarget; + + // Firefox sometimes assigns relatedTarget a XUL element + // which we cannot access the parentNode property of + try { + + // Chrome does something similar, the parentNode property + // can be accessed but is null. + if ( parent !== document && !parent.parentNode ) { + return; + } + // Traverse up the tree + while ( parent && parent !== this ) { + parent = parent.parentNode; + } + + if ( parent !== this ) { + // set the correct event type + event.type = event.data; + + // handle event if we actually just moused on to a non sub-element + jQuery.event.handle.apply( this, arguments ); + } + + // assuming we've left the element since we most likely mousedover a xul element + } catch(e) { } +}, + +// In case of event delegation, we only need to rename the event.type, +// liveHandler will take care of the rest. +delegate = function( event ) { + event.type = event.data; + jQuery.event.handle.apply( this, arguments ); +}; + +// Create mouseenter and mouseleave events +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + setup: function( data ) { + jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); + }, + teardown: function( data ) { + jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); + } + }; +}); + +// submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function( data, namespaces ) { + if ( this.nodeName && this.nodeName.toLowerCase() !== "form" ) { + jQuery.event.add(this, "click.specialSubmit", function( e ) { + var elem = e.target, + type = elem.type; + + if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { + trigger( "submit", this, arguments ); + } + }); + + jQuery.event.add(this, "keypress.specialSubmit", function( e ) { + var elem = e.target, + type = elem.type; + + if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { + trigger( "submit", this, arguments ); + } + }); + + } else { + return false; + } + }, + + teardown: function( namespaces ) { + jQuery.event.remove( this, ".specialSubmit" ); + } + }; + +} + +// change delegation, happens here so we have bind. +if ( !jQuery.support.changeBubbles ) { + + var changeFilters, + + getVal = function( elem ) { + var type = elem.type, val = elem.value; + + if ( type === "radio" || type === "checkbox" ) { + val = elem.checked; + + } else if ( type === "select-multiple" ) { + val = elem.selectedIndex > -1 ? + jQuery.map( elem.options, function( elem ) { + return elem.selected; + }).join("-") : + ""; + + } else if ( elem.nodeName.toLowerCase() === "select" ) { + val = elem.selectedIndex; + } + + return val; + }, + + testChange = function testChange( e ) { + var elem = e.target, data, val; + + if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) { + return; + } + + data = jQuery._data( elem, "_change_data" ); + val = getVal(elem); + + // the current data will be also retrieved by beforeactivate + if ( e.type !== "focusout" || elem.type !== "radio" ) { + jQuery._data( elem, "_change_data", val ); + } + + if ( data === undefined || val === data ) { + return; + } + + if ( data != null || val ) { + e.type = "change"; + e.liveFired = undefined; + jQuery.event.trigger( e, arguments[1], elem ); + } + }; + + jQuery.event.special.change = { + filters: { + focusout: testChange, + + beforedeactivate: testChange, + + click: function( e ) { + var elem = e.target, type = elem.type; + + if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) { + testChange.call( this, e ); + } + }, + + // Change has to be called before submit + // Keydown will be called before keypress, which is used in submit-event delegation + keydown: function( e ) { + var elem = e.target, type = elem.type; + + if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") || + (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || + type === "select-multiple" ) { + testChange.call( this, e ); + } + }, + + // Beforeactivate happens also before the previous element is blurred + // with this event you can't trigger a change event, but you can store + // information + beforeactivate: function( e ) { + var elem = e.target; + jQuery._data( elem, "_change_data", getVal(elem) ); + } + }, + + setup: function( data, namespaces ) { + if ( this.type === "file" ) { + return false; + } + + for ( var type in changeFilters ) { + jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); + } + + return rformElems.test( this.nodeName ); + }, + + teardown: function( namespaces ) { + jQuery.event.remove( this, ".specialChange" ); + + return rformElems.test( this.nodeName ); + } + }; + + changeFilters = jQuery.event.special.change.filters; + + // Handle when the input is .focus()'d + changeFilters.focus = changeFilters.beforeactivate; +} + +function trigger( type, elem, args ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + // Don't pass args or remember liveFired; they apply to the donor event. + var event = jQuery.extend( {}, args[ 0 ] ); + event.type = type; + event.originalEvent = {}; + event.liveFired = undefined; + jQuery.event.handle.call( elem, event ); + if ( event.isDefaultPrevented() ) { + args[ 0 ].preventDefault(); + } +} + +// Create "bubbling" focus and blur events +if ( document.addEventListener ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + jQuery.event.special[ fix ] = { + setup: function() { + this.addEventListener( orig, handler, true ); + }, + teardown: function() { + this.removeEventListener( orig, handler, true ); + } + }; + + function handler( e ) { + e = jQuery.event.fix( e ); + e.type = fix; + return jQuery.event.handle.call( this, e ); + } + }); +} + +jQuery.each(["bind", "one"], function( i, name ) { + jQuery.fn[ name ] = function( type, data, fn ) { + // Handle object literals + if ( typeof type === "object" ) { + for ( var key in type ) { + this[ name ](key, data, type[key], fn); + } + return this; + } + + if ( jQuery.isFunction( data ) || data === false ) { + fn = data; + data = undefined; + } + + var handler = name === "one" ? jQuery.proxy( fn, function( event ) { + jQuery( this ).unbind( event, handler ); + return fn.apply( this, arguments ); + }) : fn; + + if ( type === "unload" && name !== "one" ) { + this.one( type, data, fn ); + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.add( this[i], type, handler, data ); + } + } + + return this; + }; +}); + +jQuery.fn.extend({ + unbind: function( type, fn ) { + // Handle object literals + if ( typeof type === "object" && !type.preventDefault ) { + for ( var key in type ) { + this.unbind(key, type[key]); + } + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.remove( this[i], type, fn ); + } + } + + return this; + }, + + delegate: function( selector, types, data, fn ) { + return this.live( types, data, fn, selector ); + }, + + undelegate: function( selector, types, fn ) { + if ( arguments.length === 0 ) { + return this.unbind( "live" ); + + } else { + return this.die( types, null, fn, selector ); + } + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + + triggerHandler: function( type, data ) { + if ( this[0] ) { + var event = jQuery.Event( type ); + event.preventDefault(); + event.stopPropagation(); + jQuery.event.trigger( event, data, this[0] ); + return event.result; + } + }, + + toggle: function( fn ) { + // Save reference to arguments for access in closure + var args = arguments, + i = 1; + + // link all the functions, so any of them can unbind this click handler + while ( i < args.length ) { + jQuery.proxy( fn, args[ i++ ] ); + } + + return this.click( jQuery.proxy( fn, function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + })); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +}); + +var liveMap = { + focus: "focusin", + blur: "focusout", + mouseenter: "mouseover", + mouseleave: "mouseout" +}; + +jQuery.each(["live", "die"], function( i, name ) { + jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { + var type, i = 0, match, namespaces, preType, + selector = origSelector || this.selector, + context = origSelector ? this : jQuery( this.context ); + + if ( typeof types === "object" && !types.preventDefault ) { + for ( var key in types ) { + context[ name ]( key, data, types[key], selector ); + } + + return this; + } + + if ( jQuery.isFunction( data ) ) { + fn = data; + data = undefined; + } + + types = (types || "").split(" "); + + while ( (type = types[ i++ ]) != null ) { + match = rnamespaces.exec( type ); + namespaces = ""; + + if ( match ) { + namespaces = match[0]; + type = type.replace( rnamespaces, "" ); + } + + if ( type === "hover" ) { + types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); + continue; + } + + preType = type; + + if ( type === "focus" || type === "blur" ) { + types.push( liveMap[ type ] + namespaces ); + type = type + namespaces; + + } else { + type = (liveMap[ type ] || type) + namespaces; + } + + if ( name === "live" ) { + // bind live handler + for ( var j = 0, l = context.length; j < l; j++ ) { + jQuery.event.add( context[j], "live." + liveConvert( type, selector ), + { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); + } + + } else { + // unbind live handler + context.unbind( "live." + liveConvert( type, selector ), fn ); + } + } + + return this; + }; +}); + +function liveHandler( event ) { + var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret, + elems = [], + selectors = [], + events = jQuery._data( this, "events" ); + + // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911) + if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) { + return; + } + + if ( event.namespace ) { + namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + event.liveFired = this; + + var live = events.live.slice(0); + + for ( j = 0; j < live.length; j++ ) { + handleObj = live[j]; + + if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { + selectors.push( handleObj.selector ); + + } else { + live.splice( j--, 1 ); + } + } + + match = jQuery( event.target ).closest( selectors, event.currentTarget ); + + for ( i = 0, l = match.length; i < l; i++ ) { + close = match[i]; + + for ( j = 0; j < live.length; j++ ) { + handleObj = live[j]; + + if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) { + elem = close.elem; + related = null; + + // Those two events require additional checking + if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { + event.type = handleObj.preType; + related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; + } + + if ( !related || related !== elem ) { + elems.push({ elem: elem, handleObj: handleObj, level: close.level }); + } + } + } + } + + for ( i = 0, l = elems.length; i < l; i++ ) { + match = elems[i]; + + if ( maxLevel && match.level > maxLevel ) { + break; + } + + event.currentTarget = match.elem; + event.data = match.handleObj.data; + event.handleObj = match.handleObj; + + ret = match.handleObj.origHandler.apply( match.elem, arguments ); + + if ( ret === false || event.isPropagationStopped() ) { + maxLevel = match.level; + + if ( ret === false ) { + stop = false; + } + if ( event.isImmediatePropagationStopped() ) { + break; + } + } + } + + return stop; +} + +function liveConvert( type, selector ) { + return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspace, "&"); +} + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; + + if ( jQuery.attrFn ) { + jQuery.attrFn[ name ] = true; + } +}); + + +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){ + +var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, + done = 0, + toString = Object.prototype.toString, + hasDuplicate = false, + baseHasDuplicate = true, + rBackslash = /\\/g, + rNonWord = /\W/; + +// Here we check if the JavaScript engine is using some sort of +// optimization where it does not always call our comparision +// function. If that is the case, discard the hasDuplicate value. +// Thus far that includes Google Chrome. +[0, 0].sort(function() { + baseHasDuplicate = false; + return 0; +}); + +var Sizzle = function( selector, context, results, seed ) { + results = results || []; + context = context || document; + + var origContext = context; + + if ( context.nodeType !== 1 && context.nodeType !== 9 ) { + return []; + } + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + var m, set, checkSet, extra, ret, cur, pop, i, + prune = true, + contextXML = Sizzle.isXML( context ), + parts = [], + soFar = selector; + + // Reset the position of the chunker regexp (start from head) + do { + chunker.exec( "" ); + m = chunker.exec( soFar ); + + if ( m ) { + soFar = m[3]; + + parts.push( m[1] ); + + if ( m[2] ) { + extra = m[3]; + break; + } + } + } while ( m ); + + if ( parts.length > 1 && origPOS.exec( selector ) ) { + + if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { + set = posProcess( parts[0] + parts[1], context ); + + } else { + set = Expr.relative[ parts[0] ] ? + [ context ] : + Sizzle( parts.shift(), context ); + + while ( parts.length ) { + selector = parts.shift(); + + if ( Expr.relative[ selector ] ) { + selector += parts.shift(); + } + + set = posProcess( selector, set ); + } + } + + } else { + // Take a shortcut and set the context if the root selector is an ID + // (but not if it'll be faster if the inner selector is an ID) + if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && + Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { + + ret = Sizzle.find( parts.shift(), context, contextXML ); + context = ret.expr ? + Sizzle.filter( ret.expr, ret.set )[0] : + ret.set[0]; + } + + if ( context ) { + ret = seed ? + { expr: parts.pop(), set: makeArray(seed) } : + Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); + + set = ret.expr ? + Sizzle.filter( ret.expr, ret.set ) : + ret.set; + + if ( parts.length > 0 ) { + checkSet = makeArray( set ); + + } else { + prune = false; + } + + while ( parts.length ) { + cur = parts.pop(); + pop = cur; + + if ( !Expr.relative[ cur ] ) { + cur = ""; + } else { + pop = parts.pop(); + } + + if ( pop == null ) { + pop = context; + } + + Expr.relative[ cur ]( checkSet, pop, contextXML ); + } + + } else { + checkSet = parts = []; + } + } + + if ( !checkSet ) { + checkSet = set; + } + + if ( !checkSet ) { + Sizzle.error( cur || selector ); + } + + if ( toString.call(checkSet) === "[object Array]" ) { + if ( !prune ) { + results.push.apply( results, checkSet ); + + } else if ( context && context.nodeType === 1 ) { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { + results.push( set[i] ); + } + } + + } else { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && checkSet[i].nodeType === 1 ) { + results.push( set[i] ); + } + } + } + + } else { + makeArray( checkSet, results ); + } + + if ( extra ) { + Sizzle( extra, origContext, results, seed ); + Sizzle.uniqueSort( results ); + } + + return results; +}; + +Sizzle.uniqueSort = function( results ) { + if ( sortOrder ) { + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( var i = 1; i < results.length; i++ ) { + if ( results[i] === results[ i - 1 ] ) { + results.splice( i--, 1 ); + } + } + } + } + + return results; +}; + +Sizzle.matches = function( expr, set ) { + return Sizzle( expr, null, null, set ); +}; + +Sizzle.matchesSelector = function( node, expr ) { + return Sizzle( expr, null, null, [node] ).length > 0; +}; + +Sizzle.find = function( expr, context, isXML ) { + var set; + + if ( !expr ) { + return []; + } + + for ( var i = 0, l = Expr.order.length; i < l; i++ ) { + var match, + type = Expr.order[i]; + + if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { + var left = match[1]; + match.splice( 1, 1 ); + + if ( left.substr( left.length - 1 ) !== "\\" ) { + match[1] = (match[1] || "").replace( rBackslash, "" ); + set = Expr.find[ type ]( match, context, isXML ); + + if ( set != null ) { + expr = expr.replace( Expr.match[ type ], "" ); + break; + } + } + } + } + + if ( !set ) { + set = typeof context.getElementsByTagName !== "undefined" ? + context.getElementsByTagName( "*" ) : + []; + } + + return { set: set, expr: expr }; +}; + +Sizzle.filter = function( expr, set, inplace, not ) { + var match, anyFound, + old = expr, + result = [], + curLoop = set, + isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); + + while ( expr && set.length ) { + for ( var type in Expr.filter ) { + if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { + var found, item, + filter = Expr.filter[ type ], + left = match[1]; + + anyFound = false; + + match.splice(1,1); + + if ( left.substr( left.length - 1 ) === "\\" ) { + continue; + } + + if ( curLoop === result ) { + result = []; + } + + if ( Expr.preFilter[ type ] ) { + match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); + + if ( !match ) { + anyFound = found = true; + + } else if ( match === true ) { + continue; + } + } + + if ( match ) { + for ( var i = 0; (item = curLoop[i]) != null; i++ ) { + if ( item ) { + found = filter( item, match, i, curLoop ); + var pass = not ^ !!found; + + if ( inplace && found != null ) { + if ( pass ) { + anyFound = true; + + } else { + curLoop[i] = false; + } + + } else if ( pass ) { + result.push( item ); + anyFound = true; + } + } + } + } + + if ( found !== undefined ) { + if ( !inplace ) { + curLoop = result; + } + + expr = expr.replace( Expr.match[ type ], "" ); + + if ( !anyFound ) { + return []; + } + + break; + } + } + } + + // Improper expression + if ( expr === old ) { + if ( anyFound == null ) { + Sizzle.error( expr ); + + } else { + break; + } + } + + old = expr; + } + + return curLoop; +}; + +Sizzle.error = function( msg ) { + throw "Syntax error, unrecognized expression: " + msg; +}; + +var Expr = Sizzle.selectors = { + order: [ "ID", "NAME", "TAG" ], + + match: { + ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, + ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, + TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, + CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, + POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, + PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ + }, + + leftMatch: {}, + + attrMap: { + "class": "className", + "for": "htmlFor" + }, + + attrHandle: { + href: function( elem ) { + return elem.getAttribute( "href" ); + }, + type: function( elem ) { + return elem.getAttribute( "type" ); + } + }, + + relative: { + "+": function(checkSet, part){ + var isPartStr = typeof part === "string", + isTag = isPartStr && !rNonWord.test( part ), + isPartStrNotTag = isPartStr && !isTag; + + if ( isTag ) { + part = part.toLowerCase(); + } + + for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { + if ( (elem = checkSet[i]) ) { + while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} + + checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? + elem || false : + elem === part; + } + } + + if ( isPartStrNotTag ) { + Sizzle.filter( part, checkSet, true ); + } + }, + + ">": function( checkSet, part ) { + var elem, + isPartStr = typeof part === "string", + i = 0, + l = checkSet.length; + + if ( isPartStr && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + var parent = elem.parentNode; + checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; + } + } + + } else { + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + checkSet[i] = isPartStr ? + elem.parentNode : + elem.parentNode === part; + } + } + + if ( isPartStr ) { + Sizzle.filter( part, checkSet, true ); + } + } + }, + + "": function(checkSet, part, isXML){ + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); + }, + + "~": function( checkSet, part, isXML ) { + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); + } + }, + + find: { + ID: function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }, + + NAME: function( match, context ) { + if ( typeof context.getElementsByName !== "undefined" ) { + var ret = [], + results = context.getElementsByName( match[1] ); + + for ( var i = 0, l = results.length; i < l; i++ ) { + if ( results[i].getAttribute("name") === match[1] ) { + ret.push( results[i] ); + } + } + + return ret.length === 0 ? null : ret; + } + }, + + TAG: function( match, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( match[1] ); + } + } + }, + preFilter: { + CLASS: function( match, curLoop, inplace, result, not, isXML ) { + match = " " + match[1].replace( rBackslash, "" ) + " "; + + if ( isXML ) { + return match; + } + + for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { + if ( elem ) { + if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { + if ( !inplace ) { + result.push( elem ); + } + + } else if ( inplace ) { + curLoop[i] = false; + } + } + } + + return false; + }, + + ID: function( match ) { + return match[1].replace( rBackslash, "" ); + }, + + TAG: function( match, curLoop ) { + return match[1].replace( rBackslash, "" ).toLowerCase(); + }, + + CHILD: function( match ) { + if ( match[1] === "nth" ) { + if ( !match[2] ) { + Sizzle.error( match[0] ); + } + + match[2] = match[2].replace(/^\+|\s*/g, ''); + + // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' + var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( + match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || + !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); + + // calculate the numbers (first)n+(last) including if they are negative + match[2] = (test[1] + (test[2] || 1)) - 0; + match[3] = test[3] - 0; + } + else if ( match[2] ) { + Sizzle.error( match[0] ); + } + + // TODO: Move to normal caching system + match[0] = done++; + + return match; + }, + + ATTR: function( match, curLoop, inplace, result, not, isXML ) { + var name = match[1] = match[1].replace( rBackslash, "" ); + + if ( !isXML && Expr.attrMap[name] ) { + match[1] = Expr.attrMap[name]; + } + + // Handle if an un-quoted value was used + match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); + + if ( match[2] === "~=" ) { + match[4] = " " + match[4] + " "; + } + + return match; + }, + + PSEUDO: function( match, curLoop, inplace, result, not ) { + if ( match[1] === "not" ) { + // If we're dealing with a complex expression, or a simple one + if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { + match[3] = Sizzle(match[3], null, null, curLoop); + + } else { + var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); + + if ( !inplace ) { + result.push.apply( result, ret ); + } + + return false; + } + + } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { + return true; + } + + return match; + }, + + POS: function( match ) { + match.unshift( true ); + + return match; + } + }, + + filters: { + enabled: function( elem ) { + return elem.disabled === false && elem.type !== "hidden"; + }, + + disabled: function( elem ) { + return elem.disabled === true; + }, + + checked: function( elem ) { + return elem.checked === true; + }, + + selected: function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + parent: function( elem ) { + return !!elem.firstChild; + }, + + empty: function( elem ) { + return !elem.firstChild; + }, + + has: function( elem, i, match ) { + return !!Sizzle( match[3], elem ).length; + }, + + header: function( elem ) { + return (/h\d/i).test( elem.nodeName ); + }, + + text: function( elem ) { + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return "text" === elem.getAttribute( 'type' ); + }, + radio: function( elem ) { + return "radio" === elem.type; + }, + + checkbox: function( elem ) { + return "checkbox" === elem.type; + }, + + file: function( elem ) { + return "file" === elem.type; + }, + password: function( elem ) { + return "password" === elem.type; + }, + + submit: function( elem ) { + return "submit" === elem.type; + }, + + image: function( elem ) { + return "image" === elem.type; + }, + + reset: function( elem ) { + return "reset" === elem.type; + }, + + button: function( elem ) { + return "button" === elem.type || elem.nodeName.toLowerCase() === "button"; + }, + + input: function( elem ) { + return (/input|select|textarea|button/i).test( elem.nodeName ); + } + }, + setFilters: { + first: function( elem, i ) { + return i === 0; + }, + + last: function( elem, i, match, array ) { + return i === array.length - 1; + }, + + even: function( elem, i ) { + return i % 2 === 0; + }, + + odd: function( elem, i ) { + return i % 2 === 1; + }, + + lt: function( elem, i, match ) { + return i < match[3] - 0; + }, + + gt: function( elem, i, match ) { + return i > match[3] - 0; + }, + + nth: function( elem, i, match ) { + return match[3] - 0 === i; + }, + + eq: function( elem, i, match ) { + return match[3] - 0 === i; + } + }, + filter: { + PSEUDO: function( elem, match, i, array ) { + var name = match[1], + filter = Expr.filters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + + } else if ( name === "contains" ) { + return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0; + + } else if ( name === "not" ) { + var not = match[3]; + + for ( var j = 0, l = not.length; j < l; j++ ) { + if ( not[j] === elem ) { + return false; + } + } + + return true; + + } else { + Sizzle.error( name ); + } + }, + + CHILD: function( elem, match ) { + var type = match[1], + node = elem; + + switch ( type ) { + case "only": + case "first": + while ( (node = node.previousSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + if ( type === "first" ) { + return true; + } + + node = elem; + + case "last": + while ( (node = node.nextSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + return true; + + case "nth": + var first = match[2], + last = match[3]; + + if ( first === 1 && last === 0 ) { + return true; + } + + var doneName = match[0], + parent = elem.parentNode; + + if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { + var count = 0; + + for ( node = parent.firstChild; node; node = node.nextSibling ) { + if ( node.nodeType === 1 ) { + node.nodeIndex = ++count; + } + } + + parent.sizcache = doneName; + } + + var diff = elem.nodeIndex - last; + + if ( first === 0 ) { + return diff === 0; + + } else { + return ( diff % first === 0 && diff / first >= 0 ); + } + } + }, + + ID: function( elem, match ) { + return elem.nodeType === 1 && elem.getAttribute("id") === match; + }, + + TAG: function( elem, match ) { + return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; + }, + + CLASS: function( elem, match ) { + return (" " + (elem.className || elem.getAttribute("class")) + " ") + .indexOf( match ) > -1; + }, + + ATTR: function( elem, match ) { + var name = match[1], + result = Expr.attrHandle[ name ] ? + Expr.attrHandle[ name ]( elem ) : + elem[ name ] != null ? + elem[ name ] : + elem.getAttribute( name ), + value = result + "", + type = match[2], + check = match[4]; + + return result == null ? + type === "!=" : + type === "=" ? + value === check : + type === "*=" ? + value.indexOf(check) >= 0 : + type === "~=" ? + (" " + value + " ").indexOf(check) >= 0 : + !check ? + value && result !== false : + type === "!=" ? + value !== check : + type === "^=" ? + value.indexOf(check) === 0 : + type === "$=" ? + value.substr(value.length - check.length) === check : + type === "|=" ? + value === check || value.substr(0, check.length + 1) === check + "-" : + false; + }, + + POS: function( elem, match, i, array ) { + var name = match[2], + filter = Expr.setFilters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + } + } + } +}; + +var origPOS = Expr.match.POS, + fescape = function(all, num){ + return "\\" + (num - 0 + 1); + }; + +for ( var type in Expr.match ) { + Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); + Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); +} + +var makeArray = function( array, results ) { + array = Array.prototype.slice.call( array, 0 ); + + if ( results ) { + results.push.apply( results, array ); + return results; + } + + return array; +}; + +// Perform a simple check to determine if the browser is capable of +// converting a NodeList to an array using builtin methods. +// Also verifies that the returned array holds DOM nodes +// (which is not the case in the Blackberry browser) +try { + Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; + +// Provide a fallback method if it does not work +} catch( e ) { + makeArray = function( array, results ) { + var i = 0, + ret = results || []; + + if ( toString.call(array) === "[object Array]" ) { + Array.prototype.push.apply( ret, array ); + + } else { + if ( typeof array.length === "number" ) { + for ( var l = array.length; i < l; i++ ) { + ret.push( array[i] ); + } + + } else { + for ( ; array[i]; i++ ) { + ret.push( array[i] ); + } + } + } + + return ret; + }; +} + +var sortOrder, siblingCheck; + +if ( document.documentElement.compareDocumentPosition ) { + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { + return a.compareDocumentPosition ? -1 : 1; + } + + return a.compareDocumentPosition(b) & 4 ? -1 : 1; + }; + +} else { + sortOrder = function( a, b ) { + var al, bl, + ap = [], + bp = [], + aup = a.parentNode, + bup = b.parentNode, + cur = aup; + + // The nodes are identical, we can exit early + if ( a === b ) { + hasDuplicate = true; + return 0; + + // If the nodes are siblings (or identical) we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + + // If no parents were found then the nodes are disconnected + } else if ( !aup ) { + return -1; + + } else if ( !bup ) { + return 1; + } + + // Otherwise they're somewhere else in the tree so we need + // to build up a full list of the parentNodes for comparison + while ( cur ) { + ap.unshift( cur ); + cur = cur.parentNode; + } + + cur = bup; + + while ( cur ) { + bp.unshift( cur ); + cur = cur.parentNode; + } + + al = ap.length; + bl = bp.length; + + // Start walking down the tree looking for a discrepancy + for ( var i = 0; i < al && i < bl; i++ ) { + if ( ap[i] !== bp[i] ) { + return siblingCheck( ap[i], bp[i] ); + } + } + + // We ended someplace up the tree so do a sibling check + return i === al ? + siblingCheck( a, bp[i], -1 ) : + siblingCheck( ap[i], b, 1 ); + }; + + siblingCheck = function( a, b, ret ) { + if ( a === b ) { + return ret; + } + + var cur = a.nextSibling; + + while ( cur ) { + if ( cur === b ) { + return -1; + } + + cur = cur.nextSibling; + } + + return 1; + }; +} + +// Utility function for retreiving the text value of an array of DOM nodes +Sizzle.getText = function( elems ) { + var ret = "", elem; + + for ( var i = 0; elems[i]; i++ ) { + elem = elems[i]; + + // Get the text from text nodes and CDATA nodes + if ( elem.nodeType === 3 || elem.nodeType === 4 ) { + ret += elem.nodeValue; + + // Traverse everything else, except comment nodes + } else if ( elem.nodeType !== 8 ) { + ret += Sizzle.getText( elem.childNodes ); + } + } + + return ret; +}; + +// Check to see if the browser returns elements by name when +// querying by getElementById (and provide a workaround) +(function(){ + // We're going to inject a fake input element with a specified name + var form = document.createElement("div"), + id = "script" + (new Date()).getTime(), + root = document.documentElement; + + form.innerHTML = ""; + + // Inject it into the root element, check its status, and remove it quickly + root.insertBefore( form, root.firstChild ); + + // The workaround has to do additional checks after a getElementById + // Which slows things down for other browsers (hence the branching) + if ( document.getElementById( id ) ) { + Expr.find.ID = function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + + return m ? + m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? + [m] : + undefined : + []; + } + }; + + Expr.filter.ID = function( elem, match ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + + return elem.nodeType === 1 && node && node.nodeValue === match; + }; + } + + root.removeChild( form ); + + // release memory in IE + root = form = null; +})(); + +(function(){ + // Check to see if the browser returns only elements + // when doing getElementsByTagName("*") + + // Create a fake element + var div = document.createElement("div"); + div.appendChild( document.createComment("") ); + + // Make sure no comments are found + if ( div.getElementsByTagName("*").length > 0 ) { + Expr.find.TAG = function( match, context ) { + var results = context.getElementsByTagName( match[1] ); + + // Filter out possible comments + if ( match[1] === "*" ) { + var tmp = []; + + for ( var i = 0; results[i]; i++ ) { + if ( results[i].nodeType === 1 ) { + tmp.push( results[i] ); + } + } + + results = tmp; + } + + return results; + }; + } + + // Check to see if an attribute returns normalized href attributes + div.innerHTML = ""; + + if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && + div.firstChild.getAttribute("href") !== "#" ) { + + Expr.attrHandle.href = function( elem ) { + return elem.getAttribute( "href", 2 ); + }; + } + + // release memory in IE + div = null; +})(); + +if ( document.querySelectorAll ) { + (function(){ + var oldSizzle = Sizzle, + div = document.createElement("div"), + id = "__sizzle__"; + + div.innerHTML = "

      "; + + // Safari can't handle uppercase or unicode characters when + // in quirks mode. + if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { + return; + } + + Sizzle = function( query, context, extra, seed ) { + context = context || document; + + // Only use querySelectorAll on non-XML documents + // (ID selectors don't work in non-HTML documents) + if ( !seed && !Sizzle.isXML(context) ) { + // See if we find a selector to speed up + var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); + + if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { + // Speed-up: Sizzle("TAG") + if ( match[1] ) { + return makeArray( context.getElementsByTagName( query ), extra ); + + // Speed-up: Sizzle(".CLASS") + } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { + return makeArray( context.getElementsByClassName( match[2] ), extra ); + } + } + + if ( context.nodeType === 9 ) { + // Speed-up: Sizzle("body") + // The body element only exists once, optimize finding it + if ( query === "body" && context.body ) { + return makeArray( [ context.body ], extra ); + + // Speed-up: Sizzle("#ID") + } else if ( match && match[3] ) { + var elem = context.getElementById( match[3] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id === match[3] ) { + return makeArray( [ elem ], extra ); + } + + } else { + return makeArray( [], extra ); + } + } + + try { + return makeArray( context.querySelectorAll(query), extra ); + } catch(qsaError) {} + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + var oldContext = context, + old = context.getAttribute( "id" ), + nid = old || id, + hasParent = context.parentNode, + relativeHierarchySelector = /^\s*[+~]/.test( query ); + + if ( !old ) { + context.setAttribute( "id", nid ); + } else { + nid = nid.replace( /'/g, "\\$&" ); + } + if ( relativeHierarchySelector && hasParent ) { + context = context.parentNode; + } + + try { + if ( !relativeHierarchySelector || hasParent ) { + return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); + } + + } catch(pseudoError) { + } finally { + if ( !old ) { + oldContext.removeAttribute( "id" ); + } + } + } + } + + return oldSizzle(query, context, extra, seed); + }; + + for ( var prop in oldSizzle ) { + Sizzle[ prop ] = oldSizzle[ prop ]; + } + + // release memory in IE + div = null; + })(); +} + +(function(){ + var html = document.documentElement, + matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector, + pseudoWorks = false; + + try { + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( document.documentElement, "[test!='']:sizzle" ); + + } catch( pseudoError ) { + pseudoWorks = true; + } + + if ( matches ) { + Sizzle.matchesSelector = function( node, expr ) { + // Make sure that attribute selectors are quoted + expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); + + if ( !Sizzle.isXML( node ) ) { + try { + if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { + return matches.call( node, expr ); + } + } catch(e) {} + } + + return Sizzle(expr, null, null, [node]).length > 0; + }; + } +})(); + +(function(){ + var div = document.createElement("div"); + + div.innerHTML = "
      "; + + // Opera can't find a second classname (in 9.6) + // Also, make sure that getElementsByClassName actually exists + if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { + return; + } + + // Safari caches class attributes, doesn't catch changes (in 3.2) + div.lastChild.className = "e"; + + if ( div.getElementsByClassName("e").length === 1 ) { + return; + } + + Expr.order.splice(1, 0, "CLASS"); + Expr.find.CLASS = function( match, context, isXML ) { + if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { + return context.getElementsByClassName(match[1]); + } + }; + + // release memory in IE + div = null; +})(); + +function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 && !isXML ){ + elem.sizcache = doneName; + elem.sizset = i; + } + + if ( elem.nodeName.toLowerCase() === cur ) { + match = elem; + break; + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 ) { + if ( !isXML ) { + elem.sizcache = doneName; + elem.sizset = i; + } + + if ( typeof cur !== "string" ) { + if ( elem === cur ) { + match = true; + break; + } + + } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { + match = elem; + break; + } + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +if ( document.documentElement.contains ) { + Sizzle.contains = function( a, b ) { + return a !== b && (a.contains ? a.contains(b) : true); + }; + +} else if ( document.documentElement.compareDocumentPosition ) { + Sizzle.contains = function( a, b ) { + return !!(a.compareDocumentPosition(b) & 16); + }; + +} else { + Sizzle.contains = function() { + return false; + }; +} + +Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; + + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +var posProcess = function( selector, context ) { + var match, + tmpSet = [], + later = "", + root = context.nodeType ? [context] : context; + + // Position selectors must be done after the filter + // And so must :not(positional) so we move all PSEUDOs to the end + while ( (match = Expr.match.PSEUDO.exec( selector )) ) { + later += match[0]; + selector = selector.replace( Expr.match.PSEUDO, "" ); + } + + selector = Expr.relative[selector] ? selector + "*" : selector; + + for ( var i = 0, l = root.length; i < l; i++ ) { + Sizzle( selector, root[i], tmpSet ); + } + + return Sizzle.filter( later, tmpSet ); +}; + +// EXPOSE +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.filters; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})(); + + +var runtil = /Until$/, + rparentsprev = /^(?:parents|prevUntil|prevAll)/, + // Note: This RegExp should be improved, or likely pulled from Sizzle + rmultiselector = /,/, + isSimple = /^.[^:#\[\.,]*$/, + slice = Array.prototype.slice, + POS = jQuery.expr.match.POS, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var ret = this.pushStack( "", "find", selector ), + length = 0; + + for ( var i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( var n = length; n < ret.length; n++ ) { + for ( var r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + ret.splice(n--, 1); + break; + } + } + } + } + } + + return ret; + }, + + has: function( target ) { + var targets = jQuery( target ); + return this.filter(function() { + for ( var i = 0, l = targets.length; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false), "not", selector); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true), "filter", selector ); + }, + + is: function( selector ) { + return !!selector && jQuery.filter( selector, this ).length > 0; + }, + + closest: function( selectors, context ) { + var ret = [], i, l, cur = this[0]; + + if ( jQuery.isArray( selectors ) ) { + var match, selector, + matches = {}, + level = 1; + + if ( cur && selectors.length ) { + for ( i = 0, l = selectors.length; i < l; i++ ) { + selector = selectors[i]; + + if ( !matches[selector] ) { + matches[selector] = jQuery.expr.match.POS.test( selector ) ? + jQuery( selector, context || this.context ) : + selector; + } + } + + while ( cur && cur.ownerDocument && cur !== context ) { + for ( selector in matches ) { + match = matches[selector]; + + if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) { + ret.push({ selector: selector, elem: cur, level: level }); + } + } + + cur = cur.parentNode; + level++; + } + } + + return ret; + } + + var pos = POS.test( selectors ) ? + jQuery( selectors, context || this.context ) : null; + + for ( i = 0, l = this.length; i < l; i++ ) { + cur = this[i]; + + while ( cur ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + + } else { + cur = cur.parentNode; + if ( !cur || !cur.ownerDocument || cur === context ) { + break; + } + } + } + } + + ret = ret.length > 1 ? jQuery.unique(ret) : ret; + + return this.pushStack( ret, "closest", selectors ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + if ( !elem || typeof elem === "string" ) { + return jQuery.inArray( this[0], + // If it receives a string, the selector is used + // If it receives nothing, the siblings are used + elem ? jQuery( elem ) : this.parent().children() ); + } + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? + all : + jQuery.unique( all ) ); + }, + + andSelf: function() { + return this.add( this.prevObject ); + } +}); + +// A painfully simple check to see if an element is disconnected +// from a document (should be improved, where feasible). +function isDisconnected( node ) { + return !node || !node.parentNode || node.parentNode.nodeType === 11; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return jQuery.nth( elem, 2, "nextSibling" ); + }, + prev: function( elem ) { + return jQuery.nth( elem, 2, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( elem.parentNode.firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.makeArray( elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + nth: function( cur, result, dir, elem ) { + result = result || 1; + var num = 0; + + for ( ; cur; cur = cur[dir] ) { + if ( cur.nodeType === 1 && ++num === result ) { + break; + } + } + + return cur; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem, i ) { + return (elem === qualifier) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem, i ) { + return (jQuery.inArray( elem, qualifier ) >= 0) === keep; + }); +} + + + + +var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, + rtagName = /<([\w:]+)/, + rtbody = /", "" ], + legend: [ 1, "
      ", "
      " ], + thead: [ 1, "", "
      " ], + tr: [ 2, "", "
      " ], + td: [ 3, "", "
      " ], + col: [ 2, "", "
      " ], + area: [ 1, "", "" ], + _default: [ 0, "", "" ] + }; + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// IE can't serialize and This is a p

      + * @before $.metadata.setType("elem", "script") + * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" + * @desc Reads metadata from a nested script element + * + * @param String type The encoding type + * @param String name The name of the attribute to be used to get metadata (optional) + * @cat Plugins/Metadata + * @descr Sets the type of encoding to be used when loading metadata for the first time + * @type undefined + * @see metadata() + */ + +(function($) { + +$.extend({ + metadata : { + defaults : { + type: 'class', + name: 'metadata', + cre: /({.*})/, + single: 'metadata' + }, + setType: function( type, name ){ + this.defaults.type = type; + this.defaults.name = name; + }, + get: function( elem, opts ){ + var settings = $.extend({},this.defaults,opts); + // check for empty string in single property + if ( !settings.single.length ) settings.single = 'metadata'; + + var data = $.data(elem, settings.single); + // returned cached data if it already exists + if ( data ) return data; + + data = "{}"; + + if ( settings.type == "class" ) { + var m = settings.cre.exec( elem.className ); + if ( m ) + data = m[1]; + } else if ( settings.type == "elem" ) { + if( !elem.getElementsByTagName ) + return undefined; + var e = elem.getElementsByTagName(settings.name); + if ( e.length ) + data = $.trim(e[0].innerHTML); + } else if ( elem.getAttribute != undefined ) { + var attr = elem.getAttribute( settings.name ); + if ( attr ) + data = attr; + } + + if ( data.indexOf( '{' ) <0 ) + data = "{" + data + "}"; + + data = eval("(" + data + ")"); + + $.data( elem, settings.single, data ); + return data; + } + } +}); + +/** + * Returns the metadata object for the first member of the jQuery object. + * + * @name metadata + * @descr Returns element's metadata object + * @param Object opts An object contianing settings to override the defaults + * @type jQuery + * @cat Plugins/Metadata + */ +$.fn.metadata = function( opts ){ + return $.metadata.get( this[0], opts ); +}; + +})(jQuery); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_ar.js b/app/assets/javascripts/jquery-validation/localization/messages_ar.js new file mode 100644 index 0000000..71e97a8 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_ar.js @@ -0,0 +1,24 @@ +/* + * Translated default messages for the jQuery validation plugin into arabic. + * Locale: AR + */ +jQuery.extend(jQuery.validator.messages, { + required: "هذا الحقل إلزامي", + remote: "يرجى تصحيح هذا الحقل للمتابعة", + email: "رجاء إدخال عنوان بريد إلكتروني صحيح", + url: "رجاء إدخال عنوان موقع إلكتروني صحيح", + date: "رجاء إدخال تاريخ صحيح", + dateISO: "رجاء إدخال تاريخ صحيح (ISO)", + number: "رجاء إدخال عدد بطريقة صحيحة", + digits: "رجاء إدخال أرقام Ùقط", + creditcard: "رجاء إدخال رقم بطاقة ائتمان صحيح", + equalTo: "رجاء إدخال Ù†ÙØ³ القيمة", + accept: "رجاء إدخال مل٠بامتداد مواÙÙ‚ عليه", + maxlength: jQuery.validator.format("الحد الأقصى لعدد الحرو٠هو {0}"), + minlength: jQuery.validator.format("الحد الأدنى لعدد الحرو٠هو {0}"), + rangelength: jQuery.validator.format("عدد الحرو٠يجب أن يكون بين {0} Ùˆ {1}"), + range: jQuery.validator.format("رجاء إدخال عدد قيمته بين {0} Ùˆ {1}"), + max: jQuery.validator.format("رجاء إدخال عدد أقل من أو يساوي (0}"), + min: jQuery.validator.format("رجاء إدخال عدد أكبر من أو يساوي (0}") +}); + diff --git a/app/assets/javascripts/jquery-validation/localization/messages_bg.js b/app/assets/javascripts/jquery-validation/localization/messages_bg.js new file mode 100644 index 0000000..9232f72 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_bg.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: BG + */ +jQuery.extend(jQuery.validator.messages, { + required: "Полето е задължително.", + remote: "МолÑ, въведете правилната ÑтойноÑÑ‚.", + email: "МолÑ, въведете валиден email.", + url: "МолÑ, въведете валидно URL.", + date: "МолÑ, въведете валидна дата.", + dateISO: "МолÑ, въведете валидна дата (ISO).", + number: "МолÑ, въведете валиден номер.", + digits: "МолÑ, въведете Ñамо цифри", + creditcard: "МолÑ, въведете валиден номер на кредитна карта.", + equalTo: "МолÑ, въведете Ñъщата ÑтойноÑÑ‚ отново.", + accept: "МолÑ, въведете ÑтойноÑÑ‚ Ñ Ð²Ð°Ð»Ð¸Ð´Ð½Ð¾ разширение.", + maxlength: $.validator.format("МолÑ, въведете повече от {0} Ñимвола."), + minlength: $.validator.format("МолÑ, въведете поне {0} Ñимвола."), + rangelength: $.validator.format("МолÑ, въведете ÑтойноÑÑ‚ Ñ Ð´ÑŠÐ»Ð¶Ð¸Ð½Ð° между {0} и {1} Ñимвола."), + range: $.validator.format("МолÑ, въведете ÑтойноÑÑ‚ между {0} и {1}."), + max: $.validator.format("МолÑ, въведете ÑтойноÑÑ‚ по-малка или равна на {0}."), + min: $.validator.format("МолÑ, въведете ÑтойноÑÑ‚ по-голÑма или равна на {0}.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_ca.js b/app/assets/javascripts/jquery-validation/localization/messages_ca.js new file mode 100644 index 0000000..3082bc4 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_ca.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: CA + */ +jQuery.extend(jQuery.validator.messages, { + required: "Aquest camp és obligatori.", + remote: "Si us plau, omple aquest camp.", + email: "Si us plau, escriu una adreça de correu-e vàlida", + url: "Si us plau, escriu una URL vàlida.", + date: "Si us plau, escriu una data vàlida.", + dateISO: "Si us plau, escriu una data (ISO) vàlida.", + number: "Si us plau, escriu un número enter vàlid.", + digits: "Si us plau, escriu només dígits.", + creditcard: "Si us plau, escriu un número de tarjeta vàlid.", + equalTo: "Si us plau, escriu el maateix valor de nou.", + accept: "Si us plau, escriu un valor amb una extensió acceptada.", + maxlength: jQuery.validator.format("Si us plau, no escriguis més de {0} caracters."), + minlength: jQuery.validator.format("Si us plau, no escriguis menys de {0} caracters."), + rangelength: jQuery.validator.format("Si us plau, escriu un valor entre {0} i {1} caracters."), + range: jQuery.validator.format("Si us plau, escriu un valor entre {0} i {1}."), + max: jQuery.validator.format("Si us plau, escriu un valor menor o igual a {0}."), + min: jQuery.validator.format("Si us plau, escriu un valor major o igual a {0}.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_cn.js b/app/assets/javascripts/jquery-validation/localization/messages_cn.js new file mode 100644 index 0000000..8415f4a --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_cn.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: CN + */ +jQuery.extend(jQuery.validator.messages, { + required: "必选字段", + remote: "请修正该字段", + email: "请输入正确格å¼çš„电å­é‚®ä»¶", + url: "è¯·è¾“å…¥åˆæ³•的网å€", + date: "è¯·è¾“å…¥åˆæ³•的日期", + dateISO: "è¯·è¾“å…¥åˆæ³•的日期 (ISO).", + number: "è¯·è¾“å…¥åˆæ³•的数字", + digits: "åªèƒ½è¾“入整数", + creditcard: "è¯·è¾“å…¥åˆæ³•的信用å¡å·", + equalTo: "è¯·å†æ¬¡è¾“入相åŒçš„值", + accept: "è¯·è¾“å…¥æ‹¥æœ‰åˆæ³•åŽç¼€å的字符串", + maxlength: jQuery.validator.format("请输入一个长度最多是 {0} 的字符串"), + minlength: jQuery.validator.format("请输入一个长度最少是 {0} 的字符串"), + rangelength: jQuery.validator.format("请输入一个长度介于 {0} å’Œ {1} 之间的字符串"), + range: jQuery.validator.format("请输入一个介于 {0} å’Œ {1} 之间的值"), + max: jQuery.validator.format("请输入一个最大为 {0} 的值"), + min: jQuery.validator.format("请输入一个最å°ä¸º {0} 的值") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_cs.js b/app/assets/javascripts/jquery-validation/localization/messages_cs.js new file mode 100644 index 0000000..ab99819 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_cs.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: CS + */ +jQuery.extend(jQuery.validator.messages, { + required: "Tento údaj je povinný.", + remote: "Prosím, opravte tento údaj.", + email: "Prosím, zadejte platný e-mail.", + url: "Prosím, zadejte platné URL.", + date: "Prosím, zadejte platné datum.", + dateISO: "Prosím, zadejte platné datum (ISO).", + number: "Prosím, zadejte Äíslo.", + digits: "Prosím, zadávejte pouze Äíslice.", + creditcard: "Prosím, zadejte Äíslo kreditní karty.", + equalTo: "Prosím, zadejte znovu stejnou hodnotu.", + accept: "Prosím, zadejte soubor se správnou příponou.", + maxlength: jQuery.validator.format("Prosím, zadejte nejvíce {0} znaků."), + minlength: jQuery.validator.format("Prosím, zadejte nejménÄ› {0} znaků."), + rangelength: jQuery.validator.format("Prosím, zadejte od {0} do {1} znaků."), + range: jQuery.validator.format("Prosím, zadejte hodnotu od {0} do {1}."), + max: jQuery.validator.format("Prosím, zadejte hodnotu menší nebo rovnu {0}."), + min: jQuery.validator.format("Prosím, zadejte hodnotu vÄ›tší nebo rovnu {0}.") +}); diff --git a/app/assets/javascripts/jquery-validation/localization/messages_da.js b/app/assets/javascripts/jquery-validation/localization/messages_da.js new file mode 100644 index 0000000..1f729e0 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_da.js @@ -0,0 +1,20 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: DA + */ +jQuery.extend(jQuery.validator.messages, { + required: "Dette felt er pÃ¥krævet.", + maxlength: jQuery.validator.format("Indtast højst {0} tegn."), + minlength: jQuery.validator.format("Indtast mindst {0} tegn."), + rangelength: jQuery.validator.format("Indtast mindst {0} og højst {1} tegn."), + email: "Indtast en gyldig email-adresse.", + url: "Indtast en gyldig URL.", + date: "Indtast en gyldig dato.", + number: "Indtast et tal.", + digits: "Indtast kun cifre.", + equalTo: "Indtast den samme værdi igen.", + range: jQuery.validator.format("Angiv en værdi mellem {0} og {1}."), + max: jQuery.validator.format("Angiv en værdi der højst er {0}."), + min: jQuery.validator.format("Angiv en værdi der mindst er {0}."), + creditcard: "Indtast et gyldigt kreditkortnummer." +}); diff --git a/app/assets/javascripts/jquery-validation/localization/messages_de.js b/app/assets/javascripts/jquery-validation/localization/messages_de.js new file mode 100644 index 0000000..0c03e30 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_de.js @@ -0,0 +1,20 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: DE + */ +jQuery.extend(jQuery.validator.messages, { + required: "Dieses Feld ist ein Pflichtfeld.", + maxlength: jQuery.validator.format("Geben Sie bitte maximal {0} Zeichen ein."), + minlength: jQuery.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."), + rangelength: jQuery.validator.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."), + email: "Geben Sie bitte eine gültige E-Mail Adresse ein.", + url: "Geben Sie bitte eine gültige URL ein.", + date: "Bitte geben Sie ein gültiges Datum ein.", + number: "Geben Sie bitte eine Nummer ein.", + digits: "Geben Sie bitte nur Ziffern ein.", + equalTo: "Bitte denselben Wert wiederholen.", + range: jQuery.validator.format("Geben Sie bitten einen Wert zwischen {0} und {1}."), + max: jQuery.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."), + min: jQuery.validator.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."), + creditcard: "Geben Sie bitte ein gültige Kreditkarten-Nummer ein." +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_el.js b/app/assets/javascripts/jquery-validation/localization/messages_el.js new file mode 100644 index 0000000..52607a5 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_el.js @@ -0,0 +1,24 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: EL + */ +jQuery.extend(jQuery.validator.messages, { + required: "Αυτό το πεδίο είναι υποχÏεωτικό.", + remote: "ΠαÏακαλώ διοÏθώστε αυτό το πεδίο.", + email: "ΠαÏακαλώ εισάγετε μια έγκυÏη διεÏθυνση email.", + url: "ΠαÏακαλώ εισάγετε ένα έγκυÏο URL.", + date: "ΠαÏακαλώ εισάγετε μια έγκυÏη ημεÏομηνία.", + dateISO: "ΠαÏακαλώ εισάγετε μια έγκυÏη ημεÏομηνία (ISO).", + number: "ΠαÏακαλώ εισάγετε έναν έγκυÏο αÏιθμό.", + digits: "ΠαÏακαλώ εισάγετε μόνο αÏιθμητικά ψηφία.", + creditcard: "ΠαÏακαλώ εισάγετε έναν έγκυÏο αÏιθμό πιστωτικής κάÏτας.", + equalTo: "ΠαÏακαλώ εισάγετε την ίδια τιμή ξανά.", + accept: "ΠαÏακαλώ εισάγετε μια τιμή με έγκυÏη επέκταση αÏχείου.", + maxlength: $.validator.format("ΠαÏακαλώ εισάγετε μέχÏι και {0} χαÏακτήÏες."), + minlength: $.validator.format("ΠαÏακαλώ εισάγετε τουλάχιστον {0} χαÏακτήÏες."), + rangelength: $.validator.format("ΠαÏακαλώ εισάγετε μια τιμή με μήκος Î¼ÎµÏ„Î±Î¾Ï {0} και {1} χαÏακτήÏων."), + range: $.validator.format("ΠαÏακαλώ εισάγετε μια τιμή Î¼ÎµÏ„Î±Î¾Ï {0} και {1}."), + max: $.validator.format("ΠαÏακαλώ εισάγετε μια τιμή μικÏότεÏη ή ίση του {0}."), + min: $.validator.format("ΠαÏακαλώ εισάγετε μια τιμή μεγαλÏτεÏη ή ίση του {0}.") +}); + diff --git a/app/assets/javascripts/jquery-validation/localization/messages_es.js b/app/assets/javascripts/jquery-validation/localization/messages_es.js new file mode 100644 index 0000000..b9a2414 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_es.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: ES + */ +jQuery.extend(jQuery.validator.messages, { + required: "Este campo es obligatorio.", + remote: "Por favor, rellena este campo.", + email: "Por favor, escribe una dirección de correo válida", + url: "Por favor, escribe una URL válida.", + date: "Por favor, escribe una fecha válida.", + dateISO: "Por favor, escribe una fecha (ISO) válida.", + number: "Por favor, escribe un número entero válido.", + digits: "Por favor, escribe sólo dígitos.", + creditcard: "Por favor, escribe un número de tarjeta válido.", + equalTo: "Por favor, escribe el mismo valor de nuevo.", + accept: "Por favor, escribe un valor con una extensión aceptada.", + maxlength: jQuery.validator.format("Por favor, no escribas más de {0} caracteres."), + minlength: jQuery.validator.format("Por favor, no escribas menos de {0} caracteres."), + rangelength: jQuery.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."), + range: jQuery.validator.format("Por favor, escribe un valor entre {0} y {1}."), + max: jQuery.validator.format("Por favor, escribe un valor menor o igual a {0}."), + min: jQuery.validator.format("Por favor, escribe un valor mayor o igual a {0}.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_fa.js b/app/assets/javascripts/jquery-validation/localization/messages_fa.js new file mode 100644 index 0000000..1ea531e --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_fa.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: FA + */ +jQuery.extend(jQuery.validator.messages, { + required: "تکمیل این Ùیلد اجباری است.", + remote: "Ù„Ø·ÙØ§ این Ùیلد را تصحیح کنید.", + email: ".Ù„Ø·ÙØ§ یک ایمیل صحیح وارد کنید", + url: "Ù„Ø·ÙØ§ آدرس صحیح وارد کنید.", + date: "Ù„Ø·ÙØ§ یک تاریخ صحیح وارد کنید", + dateISO: "Ù„Ø·ÙØ§ تاریخ صحیح وارد کنید (ISO).", + number: "Ù„Ø·ÙØ§ عدد صحیح وارد کنید.", + digits: "Ù„Ø·ÙØ§ تنها رقم وارد کنید", + creditcard: "Ù„Ø·ÙØ§ کریدیت کارت صحیح وارد کنید.", + equalTo: "Ù„Ø·ÙØ§ مقدار برابری وارد کنید", + accept: "Ù„Ø·ÙØ§ مقداری وارد کنید Ú©Ù‡ ", + maxlength: jQuery.validator.format("Ù„Ø·ÙØ§ بیشتر از {0} حر٠وارد نکنید."), + minlength: jQuery.validator.format("Ù„Ø·ÙØ§ کمتر از {0} حر٠وارد نکنید."), + rangelength: jQuery.validator.format("Ù„Ø·ÙØ§ مقداری بین {0} تا {1} حر٠وارد کنید."), + range: jQuery.validator.format("Ù„Ø·ÙØ§ مقداری بین {0} تا {1} حر٠وارد کنید."), + max: jQuery.validator.format("Ù„Ø·ÙØ§ مقداری کمتر از {0} حر٠وارد کنید."), + min: jQuery.validator.format("Ù„Ø·ÙØ§ مقداری بیشتر از {0} حر٠وارد کنید.") +}); diff --git a/app/assets/javascripts/jquery-validation/localization/messages_fi.js b/app/assets/javascripts/jquery-validation/localization/messages_fi.js new file mode 100644 index 0000000..eb47369 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_fi.js @@ -0,0 +1,21 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: FI + */ +jQuery.extend(jQuery.validator.messages, { + required: "Tämä kenttä on pakollinen.", + maxlength: jQuery.validator.format("Voit syöttää enintään {0} merkkiä."), + minlength: jQuery.validator.format("Vähintään {0} merkkiä."), + rangelength: jQuery.validator.format("Syötä vähintään {0} ja enintään {1} merkkiä."), + email: "Syö:tä oikea sähköpostiosoite.", + url: "Syötä oikea URL osoite.", + date: "Syötä oike päivämäärä.", + dateISO: "Syötä oike päivämäärä (VVVV-MM-DD).", + number: "Syötä numero.", + digits: "Syötä pelkästään numeroita.", + equalTo: "Syötä sama arvo uudestaan.", + range: jQuery.validator.format("Syötä arvo {0} ja {1} väliltä."), + max: jQuery.validator.format("Syötä arvo joka on yhtä suuri tai suurempi kuin {0}."), + min: jQuery.validator.format("Syötä arvo joka on pienempi tai yhtä suuri kuin {0}."), + creditcard: "Syötä voimassa oleva luottokorttinumero." +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_fr.js b/app/assets/javascripts/jquery-validation/localization/messages_fr.js new file mode 100644 index 0000000..f9e1340 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_fr.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: FR + */ +jQuery.extend(jQuery.validator.messages, { + required: "Ce champ est requis.", + remote: "Veuillez remplir ce champ pour continuer.", + email: "Veuillez entrer une adresse email valide.", + url: "Veuillez entrer une URL valide.", + date: "Veuillez entrer une date valide.", + dateISO: "Veuillez entrer une date valide (ISO).", + number: "Veuillez entrer un nombre valide.", + digits: "Veuillez entrer (seulement) une valeur numérique.", + creditcard: "Veuillez entrer un numéro de carte de crédit valide.", + equalTo: "Veuillez entrer une nouvelle fois la même valeur.", + accept: "Veuillez entrer une valeur avec une extension valide.", + maxlength: jQuery.validator.format("Veuillez ne pas entrer plus de {0} caractères."), + minlength: jQuery.validator.format("Veuillez entrer au moins {0} caractères."), + rangelength: jQuery.validator.format("Veuillez entrer entre {0} et {1} caractères."), + range: jQuery.validator.format("Veuillez entrer une valeur entre {0} et {1}."), + max: jQuery.validator.format("Veuillez entrer une valeur inférieure ou égale à {0}."), + min: jQuery.validator.format("Veuillez entrer une valeur supérieure ou égale à {0}.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_ge.js b/app/assets/javascripts/jquery-validation/localization/messages_ge.js new file mode 100644 index 0000000..5c3ee68 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_ge.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: GE + */ +jQuery.extend(jQuery.validator.messages, { + required: "áƒáƒ› ველის შევსებრáƒáƒ£áƒªáƒ˜áƒšáƒ”ბელიáƒ.", + remote: "გთხáƒáƒ•თ მიუთითáƒáƒ— სწáƒáƒ áƒ˜ მნიშვნელáƒáƒ‘áƒ.", + email: "გთხáƒáƒ•თ მიუთითáƒáƒ— ელ-ფáƒáƒ¡áƒ¢áƒ˜áƒ¡ კáƒáƒ áƒ”ქტული მისáƒáƒ›áƒáƒ áƒ—ი.", + url: "გთხáƒáƒ•თ მიუთითáƒáƒ— კáƒáƒ áƒ”ქტული URL.", + date: "გთხáƒáƒ•თ მიუთითáƒáƒ— კáƒáƒ áƒ”ქტული თáƒáƒ áƒ˜áƒ¦áƒ˜.", + dateISO: "გთხáƒáƒ•თ მიუთითáƒáƒ— კáƒáƒ áƒ”ქტული თáƒáƒ áƒ˜áƒ¦áƒ˜ ISO ფáƒáƒ áƒ›áƒáƒ¢áƒ¨áƒ˜.", + number: "გთხáƒáƒ•თ მიუთითáƒáƒ— ციფრი.", + digits: "გთხáƒáƒ•თ მიუთითáƒáƒ— მხáƒáƒšáƒáƒ“ ციფრები.", + creditcard: "გთხáƒáƒ•თ მიუთითáƒáƒ— სáƒáƒ™áƒ áƒ”დიტრბáƒáƒ áƒáƒ—ის კáƒáƒ áƒ”ქტული ნáƒáƒ›áƒ”რი.", + equalTo: "გთხáƒáƒ•თ მიუთითáƒáƒ— áƒáƒ¡áƒ”თივე მნიშვნელáƒáƒ‘რკიდევ ერთხელ.", + accept: "გთხáƒáƒ•თ áƒáƒ˜áƒ áƒ©áƒ˜áƒáƒ— ფáƒáƒ˜áƒšáƒ˜ კáƒáƒ áƒ”ქტული გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბით.", + maxlength: jQuery.validator.format("დáƒáƒ¡áƒáƒ¨áƒ•ებირáƒáƒ áƒáƒ£áƒ›áƒ”ტეს {0} სიმბáƒáƒšáƒ."), + minlength: jQuery.validator.format("áƒáƒ£áƒªáƒ˜áƒšáƒ”ბელირშეიყვáƒáƒœáƒáƒ— მინიმუმ {0} სიმბáƒáƒšáƒ."), + rangelength: jQuery.validator.format("ტექსტში სიმბáƒáƒšáƒáƒ”ბის რáƒáƒáƒ“ენáƒáƒ‘რუნდრიყáƒáƒ¡ {0}-დáƒáƒœ {1}-მდე."), + range: jQuery.validator.format("გთხáƒáƒ•თ შეიყვáƒáƒœáƒáƒ— ციფრი {0}-დáƒáƒœ {1}-მდე."), + max: jQuery.validator.format("გთხáƒáƒ•თ შეიყვáƒáƒœáƒáƒ— ციფრი რáƒáƒ›áƒ”ლიც ნáƒáƒ™áƒšáƒ”ბირáƒáƒœ უდრის {0}-ს."), + min: jQuery.validator.format("გთხáƒáƒ•თ შეიყვáƒáƒœáƒáƒ— ციფრი რáƒáƒ›áƒ”ლიც მეტირáƒáƒœ უდრის {0}-ს.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_he.js b/app/assets/javascripts/jquery-validation/localization/messages_he.js new file mode 100644 index 0000000..c89eafe --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_he.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: HE + */ +jQuery.extend(jQuery.validator.messages, { + required: ".השדה ×”×–×” הינו שדה חובה", + remote: "× × ×œ×ª×§×Ÿ שדה ×–×”.", + email: "× × ×œ×ž×œ× ×›×ª×•×‘×ª דו×\"ל חוקית", + url: "× × ×œ×ž×œ× ×›×ª×•×‘×ª ×ינטרנט חוקית.", + date: "× × ×œ×ž×œ× ×ª×ריך חוקי", + dateISO: "× × ×œ×ž×œ× ×ª×ריך חוקי (ISO).", + number: "× × ×œ×ž×œ× ×ž×¡×¤×¨.", + digits: ".× × ×œ×ž×œ× ×¨×§ מספרי×", + creditcard: "× × ×œ×ž×œ× ×ž×¡×¤×¨ כרטיס ×שר××™ חוקי.", + equalTo: "× × ×œ×ž×œ× ×ת ×ותו ערך שוב.", + accept: "× × ×œ×ž×œ× ×¢×¨×š ×¢× ×¡×™×•×ž×ª חוקית.", + maxlength: jQuery.validator.format(".× × ×œ× ×œ×ž×œ× ×™×•×ª×¨ מ- {0} תווי×"), + minlength: jQuery.validator.format("× × ×œ×ž×œ× ×œ×¤×—×•×ª {0} תווי×."), + rangelength: jQuery.validator.format("× × ×œ×ž×œ× ×¢×¨×š בין {0} ל- {1} תווי×."), + range: jQuery.validator.format("× × ×œ×ž×œ× ×¢×¨×š בין {0} ל- {1}."), + max: jQuery.validator.format("× × ×œ×ž×œ× ×¢×¨×š קטן ×ו שווה ל- {0}."), + min: jQuery.validator.format("× × ×œ×ž×œ× ×¢×¨×š גדול ×ו שווה ל- {0}.") +}); diff --git a/app/assets/javascripts/jquery-validation/localization/messages_hu.js b/app/assets/javascripts/jquery-validation/localization/messages_hu.js new file mode 100644 index 0000000..086222a --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_hu.js @@ -0,0 +1,20 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: HU + */ +jQuery.extend(jQuery.validator.messages, { + required: "KötelezÅ‘ megadni.", + maxlength: jQuery.validator.format("Legfeljebb {0} karakter hosszú legyen."), + minlength: jQuery.validator.format("Legalább {0} karakter hosszú legyen."), + rangelength: jQuery.validator.format("Legalább {0} és legfeljebb {1} karakter hosszú legyen."), + email: "Érvényes e-mail címnek kell lennie.", + url: "Érvényes URL-nek kell lennie.", + date: "Dátumnak kell lennie.", + number: "Számnak kell lennie.", + digits: "Csak számjegyek lehetnek.", + equalTo: "Meg kell egyeznie a két értéknek.", + range: jQuery.validator.format("{0} és {1} közé kell esnie."), + max: jQuery.validator.format("Nem lehet nagyobb, mint {0}."), + min: jQuery.validator.format("Nem lehet kisebb, mint {0}."), + creditcard: "Érvényes hitelkártyaszámnak kell lennie." +}); diff --git a/app/assets/javascripts/jquery-validation/localization/messages_it.js b/app/assets/javascripts/jquery-validation/localization/messages_it.js new file mode 100644 index 0000000..ec44bca --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_it.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: IT + */ +jQuery.extend(jQuery.validator.messages, { + required: "Campo obbligatorio.", + remote: "Controlla questo campo.", + email: "Inserisci un indirizzo email valido.", + url: "Inserisci un indirizzo web valido.", + date: "Inserisci una data valida.", + dateISO: "Inserisci una data valida (ISO).", + number: "Inserisci un numero valido.", + digits: "Inserisci solo numeri.", + creditcard: "Inserisci un numero di carta di credito valido.", + equalTo: "Il valore non corrisponde.", + accept: "Inserisci un valore con un'estensione valida.", + maxlength: jQuery.validator.format("Non inserire più di {0} caratteri."), + minlength: jQuery.validator.format("Inserisci almeno {0} caratteri."), + rangelength: jQuery.validator.format("Inserisci un valore compreso tra {0} e {1} caratteri."), + range: jQuery.validator.format("Inserisci un valore compreso tra {0} e {1}."), + max: jQuery.validator.format("Inserisci un valore minore o uguale a {0}."), + min: jQuery.validator.format("Inserisci un valore maggiore o uguale a {0}.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_ja.js b/app/assets/javascripts/jquery-validation/localization/messages_ja.js new file mode 100644 index 0000000..d613cdc --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_ja.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Language: JA + */ +jQuery.extend(jQuery.validator.messages, { + required: "ã“ã®ãƒ•ィールドã¯å¿…é ˆã§ã™ã€‚", + remote: "ã“ã®ãƒ•ィールドを修正ã—ã¦ãã ã•ã„。", + email: "有効ãªEメールアドレスを入力ã—ã¦ãã ã•ã„。", + url: "有効ãªURLを入力ã—ã¦ãã ã•ã„。", + date: "æœ‰åŠ¹ãªæ—¥ä»˜ã‚’入力ã—ã¦ãã ã•ã„。", + dateISO: "æœ‰åŠ¹ãªæ—¥ä»˜ï¼ˆISO)を入力ã—ã¦ãã ã•ã„。", + number: "æœ‰åŠ¹ãªæ•°å­—を入力ã—ã¦ãã ã•ã„。", + digits: "æ•°å­—ã®ã¿ã‚’入力ã—ã¦ãã ã•ã„。", + creditcard: "有効ãªã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚«ãƒ¼ãƒ‰ç•ªå·ã‚’入力ã—ã¦ãã ã•ã„。", + equalTo: "åŒã˜å€¤ã‚’ã‚‚ã†ä¸€åº¦å…¥åŠ›ã—ã¦ãã ã•ã„。", + accept: "æœ‰åŠ¹ãªæ‹¡å¼µå­ã‚’å«ã‚€å€¤ã‚’入力ã—ã¦ãã ã•ã„。", + maxlength: jQuery.format("{0} 文字以内ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"), + minlength: jQuery.format("{0} 文字以上ã§å…¥åŠ›ã—ã¦ãã ã•ã„。"), + rangelength: jQuery.format("{0} 文字ã‹ã‚‰ {1} 文字ã¾ã§ã®å€¤ã‚’入力ã—ã¦ãã ã•ã„。"), + range: jQuery.format("{0} ã‹ã‚‰ {1} ã¾ã§ã®å€¤ã‚’入力ã—ã¦ãã ã•ã„。"), + max: jQuery.format("{0} 以下ã®å€¤ã‚’入力ã—ã¦ãã ã•ã„。"), + min: jQuery.format("{1} 以上ã®å€¤ã‚’入力ã—ã¦ãã ã•ã„。") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_kk.js b/app/assets/javascripts/jquery-validation/localization/messages_kk.js new file mode 100644 index 0000000..b377894 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_kk.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: KK + */ +jQuery.extend(jQuery.validator.messages, { + required: "Бұл өріÑті міндетті түрде толтырыңыз.", + remote: "Ð”Ò±Ñ€Ñ‹Ñ Ð¼Ð°Ò“Ñ‹Ð½Ð° енгізуіңізді Ñұраймыз.", + email: "Ðақты Ñлектронды поштаңызды енгізуіңізді Ñұраймыз.", + url: "Ðақты URL-ды енгізуіңізді Ñұраймыз.", + date: "Ðақты URL-ды енгізуіңізді Ñұраймыз.", + dateISO: "Ðақты ISO форматымен ÑÓ™Ð¹ÐºÐµÑ Ð´Ð°Ñ‚Ð°Ñын енгізуіңізді Ñұраймыз.", + number: "Күнді енгізуіңізді Ñұраймыз.", + digits: "Тек қана Ñандарды енгізуіңізді Ñұраймыз.", + creditcard: "ÐеÑие картаÑының нөмірін Ð´Ò±Ñ€Ñ‹Ñ ÐµÐ½Ð³Ñ–Ð·ÑƒÑ–Ò£Ñ–Ð·Ð´Ñ– Ñұраймыз.", + equalTo: "ОÑÑ‹ мәнді қайта енгізуіңізді Ñұраймыз.", + accept: "Файлдың кеңейтуін Ð´Ò±Ñ€Ñ‹Ñ Ñ‚Ð°Ò£Ð´Ð°Ò£Ñ‹Ð·.", + maxlength: jQuery.format("Ұзындығы {0} Ñимволдан көр болмаÑын."), + minlength: jQuery.format("Ұзындығы {0} Ñимволдан аз болмаÑын."), + rangelength: jQuery.format("Ұзындығы {0}-{1} дейін мән енгізуіңізді Ñұраймыз."), + range: jQuery.format("ПожалуйÑта, введите чиÑло от {0} до {1}. - {0} - {1} Ñанын енгізуіңізді Ñұраймыз."), + max: jQuery.format("{0} аз немеÑе тең Ñанын енгізуіңіді Ñұраймыз."), + min: jQuery.format("{0} көп немеÑе тең Ñанын енгізуіңізді Ñұраймыз.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_lt.js b/app/assets/javascripts/jquery-validation/localization/messages_lt.js new file mode 100644 index 0000000..a890dbe --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_lt.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin in lithuanian. + * Locale: LT + */ +jQuery.extend(jQuery.validator.messages, { + required: "Å is laukas yra privalomas.", + remote: "PraÅ¡au pataisyti šį laukÄ….", + email: "PraÅ¡au įvesti teisingÄ… elektroninio paÅ¡to adresÄ….", + url: "PraÅ¡au įvesti teisingÄ… URL.", + date: "PraÅ¡au įvesti teisingÄ… datÄ….", + dateISO: "PraÅ¡au įvesti teisingÄ… datÄ… (ISO).", + number: "PraÅ¡au įvesti teisingÄ… skaiÄių.", + digits: "PraÅ¡au naudoti tik skaitmenis.", + creditcard: "PraÅ¡au įvesti teisingÄ… kreditinÄ—s kortelÄ—s numerį.", + equalTo: "PraÅ¡au įvestį tÄ… paÄiÄ… reikÅ¡mÄ™ dar kartÄ….", + accept: "PraÅ¡au įvesti reikÅ¡mÄ™ su teisingu plÄ—tiniu.", + maxlength: $.format("PraÅ¡au įvesti ne daugiau kaip {0} simbolių."), + minlength: $.format("PraÅ¡au įvesti bent {0} simbolius."), + rangelength: $.format("PraÅ¡au įvesti reikÅ¡mes, kurių ilgis nuo {0} iki {1} simbolių."), + range: $.format("PraÅ¡au įvesti reikÅ¡mÄ™ intervale nuo {0} iki {1}."), + max: $.format("PraÅ¡au įvesti reikÅ¡mÄ™ mažesnÄ™ arba lygiÄ… {0}."), + min: $.format("PraÅ¡au įvesti reikÅ¡mÄ™ didesnÄ™ arba lygiÄ… {0}.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_lv.js b/app/assets/javascripts/jquery-validation/localization/messages_lv.js new file mode 100644 index 0000000..944e918 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_lv.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: LV + */ +jQuery.extend(jQuery.validator.messages, { + required: "Å is lauks ir obligÄts.", + remote: "LÅ«dzu, pÄrbaudiet Å¡o lauku.", + email: "LÅ«dzu, ievadiet derÄ«gu e-pasta adresi.", + url: "LÅ«dzu, ievadiet derÄ«gu URL adresi.", + date: "LÅ«dzu, ievadiet derÄ«gu datumu.", + dateISO: "LÅ«dzu, ievadiet derÄ«gu datumu (ISO).", + number: "LÅ«dzu, ievadiet derÄ«gu numuru.", + digits: "LÅ«dzu, ievadiet tikai ciparus.", + creditcard: "LÅ«dzu, ievadiet derÄ«gu kredÄ«tkartes numuru.", + equalTo: "LÅ«dzu, ievadiet to paÅ¡u vÄ“lreiz.", + accept: "LÅ«dzu, ievadiet vÄ“rtÄ«bu ar derÄ«gu paplaÅ¡inÄjumu.", + maxlength: jQuery.validator.format("LÅ«dzu, ievadiet ne vairÄk kÄ {0} rakstzÄ«mes."), + minlength: jQuery.validator.format("LÅ«dzu, ievadiet vismaz {0} rakstzÄ«mes."), + rangelength: jQuery.validator.format("LÅ«dzu ievadiet {0} lÄ«dz {1} rakstzÄ«mes."), + range: jQuery.validator.format("LÅ«dzu, ievadiet skaitli no {0} lÄ«dz {1}."), + max: jQuery.validator.format("LÅ«dzu, ievadiet skaitli, kurÅ¡ ir mazÄks vai vienÄds ar {0}."), + min: jQuery.validator.format("LÅ«dzu, ievadiet skaitli, kurÅ¡ ir lielÄks vai vienÄds ar {0}.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_nl.js b/app/assets/javascripts/jquery-validation/localization/messages_nl.js new file mode 100644 index 0000000..e266158 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_nl.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: NL + */ +jQuery.extend(jQuery.validator.messages, { + required: "Dit is een verplicht veld.", + remote: "Controleer dit veld.", + email: "Vul hier een geldig e-mailadres in.", + url: "Vul hier een geldige URL in.", + date: "Vul hier een geldige datum in.", + dateISO: "Vul hier een geldige datum in (ISO-formaat).", + number: "Vul hier een geldig getal in.", + digits: "Vul hier alleen getallen in.", + creditcard: "Vul hier een geldig creditcardnummer in.", + equalTo: "Vul hier dezelfde waarde in.", + accept: "Vul hier een waarde in met een geldige extensie.", + maxlength: jQuery.validator.format("Vul hier maximaal {0} tekens in."), + minlength: jQuery.validator.format("Vul hier minimaal {0} tekens in."), + rangelength: jQuery.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."), + range: jQuery.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."), + max: jQuery.validator.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."), + min: jQuery.validator.format("Vul hier een waarde in groter dan of gelijk aan {0}.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_no.js b/app/assets/javascripts/jquery-validation/localization/messages_no.js new file mode 100644 index 0000000..89706fc --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_no.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: NO (Norwegian) + */ +jQuery.extend(jQuery.validator.messages, { + required: "Dette feltet er obligatorisk.", + maxlength: jQuery.validator.format("Maksimalt {0} tegn."), + minlength: jQuery.validator.format("Minimum {0} tegn."), + rangelength: jQuery.validator.format("Angi minimum {0} og maksimum {1} tegn."), + email: "Oppgi en gyldig epostadresse.", + url: "Angi en gyldig URL.", + date: "Angi en gyldig dato.", + dateISO: "Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).", + dateSE: "Angi en gyldig dato.", + number: "Angi et gyldig nummer.", + numberSE: "Angi et gyldig nummer.", + digits: "Skriv kun tall.", + equalTo: "Skriv samme verdi igjen.", + range: jQuery.validator.format("Angi en verdi mellom {0} og {1}."), + max: jQuery.validator.format("Angi en verdi som er større eller lik {0}."), + min: jQuery.validator.format("Angi en verdi som er mindre eller lik {0}."), + creditcard: "Angi et gyldig kredittkortnummer." +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_pl.js b/app/assets/javascripts/jquery-validation/localization/messages_pl.js new file mode 100644 index 0000000..27190d8 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_pl.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: PL + */ +jQuery.extend(jQuery.validator.messages, { + required: "To pole jest wymagane.", + remote: "ProszÄ™ o wypeÅ‚nienie tego pola.", + email: "ProszÄ™ o podanie prawidÅ‚owego adresu email.", + url: "ProszÄ™ o podanie prawidÅ‚owego URL.", + date: "ProszÄ™ o podanie prawidÅ‚owej daty.", + dateISO: "ProszÄ™ o podanie prawidÅ‚owej daty (ISO).", + number: "ProszÄ™ o podanie prawidÅ‚owej liczby.", + digits: "ProszÄ™ o podanie samych cyfr.", + creditcard: "ProszÄ™ o podanie prawidÅ‚owej karty kredytowej.", + equalTo: "ProszÄ™ o podanie tej samej wartoÅ›ci ponownie.", + accept: "ProszÄ™ o podanie wartoÅ›ci z prawidÅ‚owym rozszerzeniem.", + maxlength: jQuery.validator.format("ProszÄ™ o podanie nie wiÄ™cej niż {0} znaków."), + minlength: jQuery.validator.format("ProszÄ™ o podanie przynajmniej {0} znaków."), + rangelength: jQuery.validator.format("ProszÄ™ o podanie wartoÅ›ci o dÅ‚ugoÅ›ci od {0} do {1} znaków."), + range: jQuery.validator.format("ProszÄ™ o podanie wartoÅ›ci z przedziaÅ‚u od {0} do {1}."), + max: jQuery.validator.format("ProszÄ™ o podanie wartoÅ›ci mniejszej bÄ…dź równej {0}."), + min: jQuery.validator.format("ProszÄ™ o podanie wartoÅ›ci wiÄ™kszej bÄ…dź równej {0}.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_pt.js b/app/assets/javascripts/jquery-validation/localization/messages_pt.js new file mode 120000 index 0000000..34bf523 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_pt.js @@ -0,0 +1 @@ +messages_ptbr.js \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_ptbr.js b/app/assets/javascripts/jquery-validation/localization/messages_ptbr.js new file mode 100644 index 0000000..0711857 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_ptbr.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: PT_BR + */ +jQuery.extend(jQuery.validator.messages, { + required: "Este campo é requerido.", + remote: "Por favor, corrija este campo.", + email: "Por favor, forneça um endereço eletrônico válido.", + url: "Por favor, forneça uma URL válida.", + date: "Por favor, forneça uma data válida.", + dateISO: "Por favor, forneça uma data válida (ISO).", + number: "Por favor, forneça um número válida.", + digits: "Por favor, forneça somente dígitos.", + creditcard: "Por favor, forneça um cartão de crédito válido.", + equalTo: "Por favor, forneça o mesmo valor novamente.", + accept: "Por favor, forneça um valor com uma extensão válida.", + maxlength: jQuery.validator.format("Por favor, forneça não mais que {0} caracteres."), + minlength: jQuery.validator.format("Por favor, forneça ao menos {0} caracteres."), + rangelength: jQuery.validator.format("Por favor, forneça um valor entre {0} e {1} caracteres de comprimento."), + range: jQuery.validator.format("Por favor, forneça um valor entre {0} e {1}."), + max: jQuery.validator.format("Por favor, forneça um valor menor ou igual a {0}."), + min: jQuery.validator.format("Por favor, forneça um valor maior ou igual a {0}.") +}); diff --git a/app/assets/javascripts/jquery-validation/localization/messages_ptpt.js b/app/assets/javascripts/jquery-validation/localization/messages_ptpt.js new file mode 100644 index 0000000..1e3fea2 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_ptpt.js @@ -0,0 +1,23 @@ +/** + * Translated default messages for the jQuery validation plugin. + * Locale: PT_PT + */ +jQuery.extend(jQuery.validator.messages, { + required: "Campo de preenchimento obrigatório.", + remote: "Por favor, corrija este campo.", + email: "Por favor, introduza um endereço eletrónico válido.", + url: "Por favor, introduza um URL válido.", + date: "Por favor, introduza uma data válida.", + dateISO: "Por favor, introduza uma data válida (ISO).", + number: "Por favor, introduza um número válido.", + digits: "Por favor, introduza apenas dígitos.", + creditcard: "Por favor, introduza um número de cartão de crédito válido.", + equalTo: "Por favor, introduza de novo o mesmo valor.", + accept: "Por favor, introduza um ficheiro com uma extensão válida.", + maxlength: jQuery.validator.format("Por favor, não introduza mais do que {0} caracteres."), + minlength: jQuery.validator.format("Por favor, introduza pelo menos {0} caracteres."), + rangelength: jQuery.validator.format("Por favor, introduza entre {0} e {1} caracteres."), + range: jQuery.validator.format("Por favor, introduza um valor entre {0} e {1}."), + max: jQuery.validator.format("Por favor, introduza um valor menor ou igual a {0}."), + min: jQuery.validator.format("Por favor, introduza um valor maior ou igual a {0}.") +}); diff --git a/app/assets/javascripts/jquery-validation/localization/messages_ro.js b/app/assets/javascripts/jquery-validation/localization/messages_ro.js new file mode 100644 index 0000000..ae9a67c --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_ro.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: RO + */ +jQuery.extend(jQuery.validator.messages, { + required: "Acest câmp este obligatoriu.", + remote: "Te rugăm să completezi acest câmp.", + email: "Te rugăm să introduci o adresă de email validă", + url: "Te rugăm sa introduci o adresă URL validă.", + date: "Te rugăm să introduci o dată corectă.", + dateISO: "Te rugăm să introduci o dată (ISO) corectă.", + number: "Te rugăm să introduci un număr întreg valid.", + digits: "Te rugăm să introduci doar cifre.", + creditcard: "Te rugăm să introduci un numar de carte de credit valid.", + equalTo: "Te rugăm să reintroduci valoarea.", + accept: "Te rugăm să introduci o valoare cu o extensie validă.", + maxlength: jQuery.validator.format("Te rugăm să nu introduci mai mult de {0} caractere."), + minlength: jQuery.validator.format("Te rugăm să introduci cel puÈ›in {0} caractere."), + rangelength: jQuery.validator.format("Te rugăm să introduci o valoare între {0} È™i {1} caractere."), + range: jQuery.validator.format("Te rugăm să introduci o valoare între {0} È™i {1}."), + max: jQuery.validator.format("Te rugăm să introduci o valoare egal sau mai mică decât {0}."), + min: jQuery.validator.format("Te rugăm să introduci o valoare egal sau mai mare decât {0}.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_ru.js b/app/assets/javascripts/jquery-validation/localization/messages_ru.js new file mode 100644 index 0000000..419ac24 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_ru.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: RU + */ +jQuery.extend(jQuery.validator.messages, { + required: "Это поле необходимо заполнить.", + remote: "ПожалуйÑта, введите правильное значение.", + email: "ПожалуйÑта, введите корретный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.", + url: "ПожалуйÑта, введите корректный URL.", + date: "ПожалуйÑта, введите корректную дату.", + dateISO: "ПожалуйÑта, введите корректную дату в формате ISO.", + number: "ПожалуйÑта, введите чиÑло.", + digits: "ПожалуйÑта, вводите только цифры.", + creditcard: "ПожалуйÑта, введите правильный номер кредитной карты.", + equalTo: "ПожалуйÑта, введите такое же значение ещё раз.", + accept: "ПожалуйÑта, выберите файл Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ñ‹Ð¼ раÑширением.", + maxlength: jQuery.validator.format("ПожалуйÑта, введите не больше {0} Ñимволов."), + minlength: jQuery.validator.format("ПожалуйÑта, введите не меньше {0} Ñимволов."), + rangelength: jQuery.validator.format("ПожалуйÑта, введите значение длиной от {0} до {1} Ñимволов."), + range: jQuery.validator.format("ПожалуйÑта, введите чиÑло от {0} до {1}."), + max: jQuery.validator.format("ПожалуйÑта, введите чиÑло, меньшее или равное {0}."), + min: jQuery.validator.format("ПожалуйÑта, введите чиÑло, большее или равное {0}.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_se.js b/app/assets/javascripts/jquery-validation/localization/messages_se.js new file mode 100644 index 0000000..3dee369 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_se.js @@ -0,0 +1,21 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: SE + */ +jQuery.extend(jQuery.validator.messages, { + required: "Detta fält är obligatoriskt.", + maxlength: jQuery.validator.format("Du får ange högst {0} tecken."), + minlength: jQuery.validator.format("Du måste ange minst {0} tecken."), + rangelength: jQuery.validator.format("Ange minst {0} och max {1} tecken."), + email: "Ange en korrekt e-postadress.", + url: "Ange en korrekt URL.", + date: "Ange ett korrekt datum.", + dateISO: "Ange ett korrekt datum (&ARING;&ARING;&ARING;&ARING;-MM-DD).", + number: "Ange ett korrekt nummer.", + digits: "Ange endast siffror.", + equalTo: "Ange samma värde igen.", + range: jQuery.validator.format("Ange ett värde mellan {0} och {1}."), + max: jQuery.validator.format("Ange ett värde som är större eller lika med {0}."), + min: jQuery.validator.format("Ange ett värde som är mindre eller lika med {0}."), + creditcard: "Ange ett korrekt kreditkortsnummer." +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_si.js b/app/assets/javascripts/jquery-validation/localization/messages_si.js new file mode 100644 index 0000000..317022f --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_si.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: SI (Slovenian) + */ +jQuery.extend(jQuery.validator.messages, { + required: "To polje je obvezno.", + remote: "Vpis v tem polju ni v pravi obliki.", + email: "Prosimo, vnesite pravi email naslov.", + url: "Prosimo, vnesite pravi URL.", + date: "Prosimo, vnesite pravi datum.", + dateISO: "Prosimo, vnesite pravi datum (ISO).", + number: "Prosimo, vnesite pravo Å¡tevilko.", + digits: "Prosimo, vnesite samo Å¡tevilke.", + creditcard: "Prosimo, vnesite pravo Å¡tevilko kreditne kartice.", + equalTo: "Prosimo, ponovno vnesite enako vsebino.", + accept: "Prosimo, vnesite vsebino z pravo konÄnico.", + maxlength: $.validator.format("Prosimo, da ne vnaÅ¡ate veÄ kot {0} znakov."), + minlength: $.validator.format("Prosimo, vnesite vsaj {0} znakov."), + rangelength: $.validator.format("Prosimo, vnesite od {0} do {1} znakov."), + range: $.validator.format("Prosimo, vnesite vrednost med {0} in {1}."), + max: $.validator.format("Prosimo, vnesite vrednost manjÅ¡o ali enako {0}."), + min: $.validator.format("Prosimo, vnesite vrednost veÄjo ali enako {0}.") +}); diff --git a/app/assets/javascripts/jquery-validation/localization/messages_sk.js b/app/assets/javascripts/jquery-validation/localization/messages_sk.js new file mode 100644 index 0000000..442d31d --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_sk.js @@ -0,0 +1,20 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: SK + */ +jQuery.extend(jQuery.validator.messages, { + required: "Povinné zadaÅ¥.", + maxlength: jQuery.validator.format("Maximálne {0} znakov."), + minlength: jQuery.validator.format("Minimálne {0} znakov."), + rangelength: jQuery.validator.format("Minimálne {0} a Maximálne {0} znakov."), + email: "E-mailová adresa musí byÅ¥ platná.", + url: "URL musí byÅ¥ platný.", + date: "Musí byÅ¥ dátum.", + number: "Musí byÅ¥ Äíslo.", + digits: "Môže obsahovaÅ¥ iba Äíslice.", + equalTo: "Dva hodnoty sa musia rovnaÅ¥.", + range: jQuery.validator.format("Musí byÅ¥ medzi {0} a {1}."), + max: jQuery.validator.format("Nemôže byÅ¥ viac ako{0}."), + min: jQuery.validator.format("Nemôže byÅ¥ menej ako{0}."), + creditcard: "Číslo platobnej karty musí byÅ¥ platné." +}); diff --git a/app/assets/javascripts/jquery-validation/localization/messages_sr.js b/app/assets/javascripts/jquery-validation/localization/messages_sr.js new file mode 100644 index 0000000..1a89174 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_sr.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: SR + */ +jQuery.extend(jQuery.validator.messages, { + required: "Поље је обавезно.", + remote: "Средите ово поље.", + email: "УнеÑите иÑправну и-мејл адреÑу", + url: "УнеÑите иÑправан URL.", + date: "УнеÑите иÑправан датум.", + dateISO: "УнеÑите иÑправан датум (ISO).", + number: "УнеÑите иÑправан број.", + digits: "УнеÑите Ñамо цифе.", + creditcard: "УнеÑите иÑправан број кредитне картице.", + equalTo: "УнеÑите иÑту вредноÑÑ‚ поново.", + accept: "УнеÑите вредноÑÑ‚ Ñа одговарајућом екÑтензијом.", + maxlength: $.validator.format("УнеÑите мање од {0}карактера."), + minlength: $.validator.format("УнеÑите барем {0} карактера."), + rangelength: $.validator.format("УнеÑите вредноÑÑ‚ дугачку између {0} и {1} карактера."), + range: $.validator.format("УнеÑите вредноÑÑ‚ између {0} и {1}."), + max: $.validator.format("УнеÑите вредноÑÑ‚ мању или једнаку {0}."), + min: $.validator.format("УнеÑите вредноÑÑ‚ већу или једнаку {0}.") +}); diff --git a/app/assets/javascripts/jquery-validation/localization/messages_tr.js b/app/assets/javascripts/jquery-validation/localization/messages_tr.js new file mode 100644 index 0000000..9df81e4 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_tr.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: TR + */ +jQuery.extend(jQuery.validator.messages, { + required: "Bu alanın doldurulması zorunludur.", + remote: "Lütfen bu alanı düzeltin.", + email: "Lütfen geçerli bir e-posta adresi giriniz.", + url: "Lütfen geçerli bir web adresi (URL) giriniz.", + date: "Lütfen geçerli bir tarih giriniz.", + dateISO: "Lütfen geçerli bir tarih giriniz(ISO formatında)", + number: "Lütfen geçerli bir sayı giriniz.", + digits: "Lütfen sadece sayısal karakterler giriniz.", + creditcard: "Lütfen geçerli bir kredi kartı giriniz.", + equalTo: "Lütfen aynı deÄŸeri tekrar giriniz.", + accept: "Lütfen geçerli uzantıya sahip bir deÄŸer giriniz.", + maxlength: jQuery.validator.format("Lütfen en fazla {0} karakter uzunluÄŸunda bir deÄŸer giriniz."), + minlength: jQuery.validator.format("Lütfen en az {0} karakter uzunluÄŸunda bir deÄŸer giriniz."), + rangelength: jQuery.validator.format("Lütfen en az {0} ve en fazla {1} uzunluÄŸunda bir deÄŸer giriniz."), + range: jQuery.validator.format("Lütfen {0} ile {1} arasında bir deÄŸer giriniz."), + max: jQuery.validator.format("Lütfen {0} deÄŸerine eÅŸit ya da daha küçük bir deÄŸer giriniz."), + min: jQuery.validator.format("Lütfen {0} deÄŸerine eÅŸit ya da daha büyük bir deÄŸer giriniz.") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_tw.js b/app/assets/javascripts/jquery-validation/localization/messages_tw.js new file mode 100644 index 0000000..2481535 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_tw.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: TW (Taiwan - Traditional Chinese) + */ +jQuery.extend(jQuery.validator.messages, { + required: "å¿…å¡«", + remote: "請修正此欄ä½", + email: "請輸入正確的電å­ä¿¡ç®±", + url: "è«‹è¼¸å…¥åˆæ³•çš„URL", + date: "è«‹è¼¸å…¥åˆæ³•的日期", + dateISO: "è«‹è¼¸å…¥åˆæ³•的日期 (ISO).", + number: "請輸入數字", + digits: "請輸入整數", + creditcard: "è«‹è¼¸å…¥åˆæ³•的信用å¡è™Ÿç¢¼", + equalTo: "è«‹é‡è¤‡è¼¸å…¥ä¸€æ¬¡", + accept: "請輸入有效的後缀字串", + maxlength: jQuery.validator.format("請輸入長度ä¸å¤§æ–¼{0} 的字串"), + minlength: jQuery.validator.format("請輸入長度ä¸å°æ–¼ {0} 的字串"), + rangelength: jQuery.validator.format("請輸入長度介於 {0} å’Œ {1} 之間的字串"), + range: jQuery.validator.format("請輸入介於 {0} å’Œ {1} 之間的數值"), + max: jQuery.validator.format("請輸入ä¸å¤§æ–¼ {0} 的數值"), + min: jQuery.validator.format("請輸入ä¸å°æ–¼ {0} 的數值") +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/messages_ua.js b/app/assets/javascripts/jquery-validation/localization/messages_ua.js new file mode 100644 index 0000000..25434a6 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/messages_ua.js @@ -0,0 +1,23 @@ +/* + * Translated default messages for the jQuery validation plugin. + * Locale: UA (Ukrainian) + */ +jQuery.extend(jQuery.validator.messages, { + required: "Це поле необхідно заповнити.", + remote: "Будь лаÑка, введіть правильне значеннÑ.", + email: "Будь лаÑка, введіть коректну адреÑу електронної пошти.", + url: "Будь лаÑка, введіть коректний URL.", + date: "Будь лаÑка, введіть коректну дату.", + dateISO: "Будь лаÑка, введіть коректну дату у форматі ISO.", + number: "Будь лаÑка, введіть чиÑло.", + digits: "Вводите потрібно лише цифри.", + creditcard: "Будь лаÑка, введіть правильний номер кредитної карти.", + equalTo: "Будь лаÑка, введіть таке ж Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‰Ðµ раз.", + accept: "Будь лаÑка, виберіть файл з правильним розширеннÑм.", + maxlength: jQuery.validator.format("Будь лаÑка, введіть не більше {0} Ñимволів."), + minlength: jQuery.validator.format("Будь лаÑка, введіть не менше {0} Ñимволів."), + rangelength: jQuery.validator.format("Будь лаÑка, введіть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¾ÑŽ від {0} до {1} Ñимволів."), + range: jQuery.validator.format("Будь лаÑка, введіть чиÑло від {0} до {1}."), + max: jQuery.validator.format("Будь лаÑка, введіть чиÑло, менше або рівно {0}."), + min: jQuery.validator.format("Будь лаÑка, введіть чиÑло, більше або рівно {0}.") +}); diff --git a/app/assets/javascripts/jquery-validation/localization/methods_de.js b/app/assets/javascripts/jquery-validation/localization/methods_de.js new file mode 100644 index 0000000..3e8ac84 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/methods_de.js @@ -0,0 +1,12 @@ +/* + * Localized default methods for the jQuery validation plugin. + * Locale: DE + */ +jQuery.extend(jQuery.validator.methods, { + date: function(value, element) { + return this.optional(element) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value); + }, + number: function(value, element) { + return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value); + } +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/methods_nl.js b/app/assets/javascripts/jquery-validation/localization/methods_nl.js new file mode 100644 index 0000000..152e94d --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/methods_nl.js @@ -0,0 +1,9 @@ +/* + * Localized default methods for the jQuery validation plugin. + * Locale: NL + */ +jQuery.extend(jQuery.validator.methods, { + date: function(value, element) { + return this.optional(element) || /^\d\d?[\.\/-]\d\d?[\.\/-]\d\d\d?\d?$/.test(value); + } +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/localization/methods_pt.js b/app/assets/javascripts/jquery-validation/localization/methods_pt.js new file mode 100644 index 0000000..21879d3 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/localization/methods_pt.js @@ -0,0 +1,9 @@ +/* + * Localized default methods for the jQuery validation plugin. + * Locale: PT_BR + */ +jQuery.extend(jQuery.validator.methods, { + date: function(value, element) { + return this.optional(element) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test(value); + } +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/test/events.html b/app/assets/javascripts/jquery-validation/test/events.html new file mode 100644 index 0000000..a651519 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/events.html @@ -0,0 +1,71 @@ + + + + +Test for jQuery validate() plugin + + + + + + + + + + + +
      +
      + A simple comment form with submit validation and default messages +

      + + +

      + + +

      +

      + + +

      +

      + + +

      +

      + +

      +
      +
      + + + + + \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/test/firebug/errorIcon.png b/app/assets/javascripts/jquery-validation/test/firebug/errorIcon.png new file mode 100644 index 0000000..2d75261 Binary files /dev/null and b/app/assets/javascripts/jquery-validation/test/firebug/errorIcon.png differ diff --git a/app/assets/javascripts/jquery-validation/test/firebug/firebug.css b/app/assets/javascripts/jquery-validation/test/firebug/firebug.css new file mode 100644 index 0000000..1f041c4 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/firebug/firebug.css @@ -0,0 +1,209 @@ + +html, body { + margin: 0; + background: #FFFFFF; + font-family: Lucida Grande, Tahoma, sans-serif; + font-size: 11px; + overflow: hidden; +} + +a { + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +.toolbar { + height: 14px; + border-top: 1px solid ThreeDHighlight; + border-bottom: 1px solid ThreeDShadow; + padding: 2px 6px; + background: ThreeDFace; +} + +.toolbarRight { + position: absolute; + top: 4px; + right: 6px; +} + +#log { + overflow: auto; + position: absolute; + left: 0; + width: 100%; +} + +#commandLine { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 18px; + border: none; + border-top: 1px solid ThreeDShadow; +} + +/************************************************************************************************/ + +.logRow { + position: relative; + border-bottom: 1px solid #D7D7D7; + padding: 2px 4px 1px 6px; + background-color: #FFFFFF; +} + +.logRow-command { + font-family: Monaco, monospace; + color: blue; +} + +.objectBox-null { + padding: 0 2px; + border: 1px solid #666666; + background-color: #888888; + color: #FFFFFF; +} + +.objectBox-string { + font-family: Monaco, monospace; + color: red; + white-space: pre; +} + +.objectBox-number { + color: #000088; +} + +.objectBox-function { + font-family: Monaco, monospace; + color: DarkGreen; +} + +.objectBox-object { + color: DarkGreen; + font-weight: bold; +} + +/************************************************************************************************/ + +.logRow-info, +.logRow-error, +.logRow-warning { + background: #FFFFFF no-repeat 2px 2px; + padding-left: 20px; + padding-bottom: 3px; +} + +.logRow-info { + background-image: url(infoIcon.png); +} + +.logRow-warning { + background-color: cyan; + background-image: url(warningIcon.png); +} + +.logRow-error { + background-color: LightYellow; + background-image: url(errorIcon.png); +} + +.errorMessage { + vertical-align: top; + color: #FF0000; +} + +.objectBox-sourceLink { + position: absolute; + right: 4px; + top: 2px; + padding-left: 8px; + font-family: Lucida Grande, sans-serif; + font-weight: bold; + color: #0000FF; +} + +/************************************************************************************************/ + +.logRow-group { + background: #EEEEEE; + border-bottom: none; +} + +.logGroup { + background: #EEEEEE; +} + +.logGroupBox { + margin-left: 24px; + border-top: 1px solid #D7D7D7; + border-left: 1px solid #D7D7D7; +} + +/************************************************************************************************/ + +.selectorTag, +.selectorId, +.selectorClass { + font-family: Monaco, monospace; + font-weight: normal; +} + +.selectorTag { + color: #0000FF; +} + +.selectorId { + color: DarkBlue; +} + +.selectorClass { + color: red; +} + +/************************************************************************************************/ + +.objectBox-element { + font-family: Monaco, monospace; + color: #000088; +} + +.nodeChildren { + margin-left: 16px; +} + +.nodeTag { + color: blue; +} + +.nodeValue { + color: #FF0000; + font-weight: normal; +} + +.nodeText, +.nodeComment { + margin: 0 2px; + vertical-align: top; +} + +.nodeText { + color: #333333; +} + +.nodeComment { + color: DarkGreen; +} + +/************************************************************************************************/ + +.propertyNameCell { + vertical-align: top; +} + +.propertyName { + font-weight: bold; +} diff --git a/app/assets/javascripts/jquery-validation/test/firebug/firebug.html b/app/assets/javascripts/jquery-validation/test/firebug/firebug.html new file mode 100644 index 0000000..861e639 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/firebug/firebug.html @@ -0,0 +1,23 @@ + + + + + + Firebug + + + + +
      + Clear + + Close + +
      +
      + + + + + diff --git a/app/assets/javascripts/jquery-validation/test/firebug/firebug.js b/app/assets/javascripts/jquery-validation/test/firebug/firebug.js new file mode 100644 index 0000000..eb853b8 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/firebug/firebug.js @@ -0,0 +1,672 @@ + +if (!("console" in window) || !("firebug" in console)) { +(function() +{ + window.console = + { + log: function() + { + logFormatted(arguments, ""); + }, + + debug: function() + { + logFormatted(arguments, "debug"); + }, + + info: function() + { + logFormatted(arguments, "info"); + }, + + warn: function() + { + logFormatted(arguments, "warning"); + }, + + error: function() + { + logFormatted(arguments, "error"); + }, + + assert: function(truth, message) + { + if (!truth) + { + var args = []; + for (var i = 1; i < arguments.length; ++i) + args.push(arguments[i]); + + logFormatted(args.length ? args : ["Assertion Failure"], "error"); + throw message ? message : "Assertion Failure"; + } + }, + + dir: function(object) + { + var html = []; + + var pairs = []; + for (var name in object) + { + try + { + pairs.push([name, object[name]]); + } + catch (exc) + { + } + } + + pairs.sort(function(a, b) { return a[0] < b[0] ? -1 : 1; }); + + html.push(''); + for (var i = 0; i < pairs.length; ++i) + { + var name = pairs[i][0], value = pairs[i][1]; + + html.push('', + '', ''); + } + html.push('
      ', + escapeHTML(name), ''); + appendObject(value, html); + html.push('
      '); + + logRow(html, "dir"); + }, + + dirxml: function(node) + { + var html = []; + + appendNode(node, html); + logRow(html, "dirxml"); + }, + + group: function() + { + logRow(arguments, "group", pushGroup); + }, + + groupEnd: function() + { + logRow(arguments, "", popGroup); + }, + + time: function(name) + { + timeMap[name] = (new Date()).getTime(); + }, + + timeEnd: function(name) + { + if (name in timeMap) + { + var delta = (new Date()).getTime() - timeMap[name]; + logFormatted([name+ ":", delta+"ms"]); + delete timeMap[name]; + } + }, + + count: function() + { + this.warn(["count() not supported."]); + }, + + trace: function() + { + this.warn(["trace() not supported."]); + }, + + profile: function() + { + this.warn(["profile() not supported."]); + }, + + profileEnd: function() + { + }, + + clear: function() + { + consoleBody.innerHTML = ""; + }, + + open: function() + { + toggleConsole(true); + }, + + close: function() + { + if (frameVisible) + toggleConsole(); + } + }; + + // ******************************************************************************************** + + var consoleFrame = null; + var consoleBody = null; + var commandLine = null; + + var frameVisible = false; + var messageQueue = []; + var groupStack = []; + var timeMap = {}; + + var clPrefix = ">>> "; + + var isFirefox = navigator.userAgent.indexOf("Firefox") != -1; + var isIE = navigator.userAgent.indexOf("MSIE") != -1; + var isOpera = navigator.userAgent.indexOf("Opera") != -1; + var isSafari = navigator.userAgent.indexOf("AppleWebKit") != -1; + + // ******************************************************************************************** + + function toggleConsole(forceOpen) + { + frameVisible = forceOpen || !frameVisible; + if (consoleFrame) + consoleFrame.style.visibility = frameVisible ? "visible" : "hidden"; + else + waitForBody(); + } + + function focusCommandLine() + { + toggleConsole(true); + if (commandLine) + commandLine.focus(); + } + + function waitForBody() + { + if (document.body) + createFrame(); + else + setTimeout(waitForBody, 200); + } + + function createFrame() + { + if (consoleFrame) + return; + + window.onFirebugReady = function(doc) + { + window.onFirebugReady = null; + + var toolbar = doc.getElementById("toolbar"); + toolbar.onmousedown = onSplitterMouseDown; + + commandLine = doc.getElementById("commandLine"); + addEvent(commandLine, "keydown", onCommandLineKeyDown); + + addEvent(doc, isIE || isSafari ? "keydown" : "keypress", onKeyDown); + + consoleBody = doc.getElementById("log"); + layout(); + flush(); + } + + var baseURL = getFirebugURL(); + + consoleFrame = document.createElement("iframe"); + consoleFrame.setAttribute("src", baseURL+"/firebug.html"); + consoleFrame.setAttribute("frameBorder", "0"); + consoleFrame.style.visibility = (frameVisible ? "visible" : "hidden"); + consoleFrame.style.zIndex = "2147483647"; + consoleFrame.style.position = "fixed"; + consoleFrame.style.width = "100%"; + consoleFrame.style.left = "0"; + consoleFrame.style.bottom = "0"; + consoleFrame.style.height = "200px"; + document.body.appendChild(consoleFrame); + } + + function getFirebugURL() + { + var scripts = document.getElementsByTagName("script"); + for (var i = 0; i < scripts.length; ++i) + { + if (scripts[i].src.indexOf("firebug.js") != -1) + { + var lastSlash = scripts[i].src.lastIndexOf("/"); + return scripts[i].src.substr(0, lastSlash); + } + } + } + + function evalCommandLine() + { + var text = commandLine.value; + commandLine.value = ""; + + logRow([clPrefix, text], "command"); + + var value; + try + { + value = eval(text); + } + catch (exc) + { + } + + console.log(value); + } + + function layout() + { + var toolbar = consoleBody.ownerDocument.getElementById("toolbar"); + var height = consoleFrame.offsetHeight - (toolbar.offsetHeight + commandLine.offsetHeight); + consoleBody.style.top = toolbar.offsetHeight + "px"; + consoleBody.style.height = height + "px"; + + commandLine.style.top = (consoleFrame.offsetHeight - commandLine.offsetHeight) + "px"; + } + + function logRow(message, className, handler) + { + if (consoleBody) + writeMessage(message, className, handler); + else + { + messageQueue.push([message, className, handler]); + waitForBody(); + } + } + + function flush() + { + var queue = messageQueue; + messageQueue = []; + + for (var i = 0; i < queue.length; ++i) + writeMessage(queue[i][0], queue[i][1], queue[i][2]); + } + + function writeMessage(message, className, handler) + { + var isScrolledToBottom = + consoleBody.scrollTop + consoleBody.offsetHeight >= consoleBody.scrollHeight; + + if (!handler) + handler = writeRow; + + handler(message, className); + + if (isScrolledToBottom) + consoleBody.scrollTop = consoleBody.scrollHeight - consoleBody.offsetHeight; + } + + function appendRow(row) + { + var container = groupStack.length ? groupStack[groupStack.length-1] : consoleBody; + container.appendChild(row); + } + + function writeRow(message, className) + { + var row = consoleBody.ownerDocument.createElement("div"); + row.className = "logRow" + (className ? " logRow-"+className : ""); + row.innerHTML = message.join(""); + appendRow(row); + } + + function pushGroup(message, className) + { + logFormatted(message, className); + + var groupRow = consoleBody.ownerDocument.createElement("div"); + groupRow.className = "logGroup"; + var groupRowBox = consoleBody.ownerDocument.createElement("div"); + groupRowBox.className = "logGroupBox"; + groupRow.appendChild(groupRowBox); + appendRow(groupRowBox); + groupStack.push(groupRowBox); + } + + function popGroup() + { + groupStack.pop(); + } + + // ******************************************************************************************** + + function logFormatted(objects, className) + { + var html = []; + + var format = objects[0]; + var objIndex = 0; + + if (typeof(format) != "string") + { + format = ""; + objIndex = -1; + } + + var parts = parseFormat(format); + for (var i = 0; i < parts.length; ++i) + { + var part = parts[i]; + if (part && typeof(part) == "object") + { + var object = objects[++objIndex]; + part.appender(object, html); + } + else + appendText(part, html); + } + + for (var i = objIndex+1; i < objects.length; ++i) + { + appendText(" ", html); + + var object = objects[i]; + if (typeof(object) == "string") + appendText(object, html); + else + appendObject(object, html); + } + + logRow(html, className); + } + + function parseFormat(format) + { + var parts = []; + + var reg = /((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/; + var appenderMap = {s: appendText, d: appendInteger, i: appendInteger, f: appendFloat}; + + for (var m = reg.exec(format); m; m = reg.exec(format)) + { + var type = m[8] ? m[8] : m[5]; + var appender = type in appenderMap ? appenderMap[type] : appendObject; + var precision = m[3] ? parseInt(m[3]) : (m[4] == "." ? -1 : 0); + + parts.push(format.substr(0, m[0][0] == "%" ? m.index : m.index+1)); + parts.push({appender: appender, precision: precision}); + + format = format.substr(m.index+m[0].length); + } + + parts.push(format); + + return parts; + } + + function escapeHTML(value) + { + function replaceChars(ch) + { + switch (ch) + { + case "<": + return "<"; + case ">": + return ">"; + case "&": + return "&"; + case "'": + return "'"; + case '"': + return """; + } + return "?"; + }; + return String(value).replace(/[<>&"']/g, replaceChars); + } + + function objectToString(object) + { + try + { + return object+""; + } + catch (exc) + { + return null; + } + } + + // ******************************************************************************************** + + function appendText(object, html) + { + html.push(escapeHTML(objectToString(object))); + } + + function appendNull(object, html) + { + html.push('', escapeHTML(objectToString(object)), ''); + } + + function appendString(object, html) + { + html.push('"', escapeHTML(objectToString(object)), + '"'); + } + + function appendInteger(object, html) + { + html.push('', escapeHTML(objectToString(object)), ''); + } + + function appendFloat(object, html) + { + html.push('', escapeHTML(objectToString(object)), ''); + } + + function appendFunction(object, html) + { + var reName = /function ?(.*?)\(/; + var m = reName.exec(objectToString(object)); + var name = m ? m[1] : "function"; + html.push('', escapeHTML(name), '()'); + } + + function appendObject(object, html) + { + try + { + if (object == undefined) + appendNull("undefined", html); + else if (object == null) + appendNull("null", html); + else if (typeof object == "string") + appendString(object, html); + else if (typeof object == "number") + appendInteger(object, html); + else if (typeof object == "function") + appendFunction(object, html); + else if (object.nodeType == 1) + appendSelector(object, html); + else if (typeof object == "object") + appendObjectFormatted(object, html); + else + appendText(object, html); + } + catch (exc) + { + } + } + + function appendObjectFormatted(object, html) + { + var text = objectToString(object); + var reObject = /\[object (.*?)\]/; + + var m = reObject.exec(text); + html.push('', m ? m[1] : text, '') + } + + function appendSelector(object, html) + { + html.push(''); + + html.push('', escapeHTML(object.nodeName.toLowerCase()), ''); + if (object.id) + html.push('#', escapeHTML(object.id), ''); + if (object.className) + html.push('.', escapeHTML(object.className), ''); + + html.push(''); + } + + function appendNode(node, html) + { + if (node.nodeType == 1) + { + html.push( + '
      ', + '<', node.nodeName.toLowerCase(), ''); + + for (var i = 0; i < node.attributes.length; ++i) + { + var attr = node.attributes[i]; + if (!attr.specified) + continue; + + html.push(' ', attr.nodeName.toLowerCase(), + '="', escapeHTML(attr.nodeValue), + '"') + } + + if (node.firstChild) + { + html.push('>
      '); + + for (var child = node.firstChild; child; child = child.nextSibling) + appendNode(child, html); + + html.push('
      </', + node.nodeName.toLowerCase(), '>
      '); + } + else + html.push('/>'); + } + else if (node.nodeType == 3) + { + html.push('
      ', escapeHTML(node.nodeValue), + '
      '); + } + } + + // ******************************************************************************************** + + function addEvent(object, name, handler) + { + if (document.all) + object.attachEvent("on"+name, handler); + else + object.addEventListener(name, handler, false); + } + + function removeEvent(object, name, handler) + { + if (document.all) + object.detachEvent("on"+name, handler); + else + object.removeEventListener(name, handler, false); + } + + function cancelEvent(event) + { + if (document.all) + event.cancelBubble = true; + else + event.stopPropagation(); + } + + function onError(msg, href, lineNo) + { + var html = []; + + var lastSlash = href.lastIndexOf("/"); + var fileName = lastSlash == -1 ? href : href.substr(lastSlash+1); + + html.push( + '', msg, '', + '' + ); + + logRow(html, "error"); + }; + + function onKeyDown(event) + { + if (event.keyCode == 123) + toggleConsole(); + else if ((event.keyCode == 108 || event.keyCode == 76) && event.shiftKey + && (event.metaKey || event.ctrlKey)) + focusCommandLine(); + else + return; + + cancelEvent(event); + } + + function onSplitterMouseDown(event) + { + if (isSafari || isOpera) + return; + + addEvent(document, "mousemove", onSplitterMouseMove); + addEvent(document, "mouseup", onSplitterMouseUp); + + for (var i = 0; i < frames.length; ++i) + { + addEvent(frames[i].document, "mousemove", onSplitterMouseMove); + addEvent(frames[i].document, "mouseup", onSplitterMouseUp); + } + } + + function onSplitterMouseMove(event) + { + var win = document.all + ? event.srcElement.ownerDocument.parentWindow + : event.target.ownerDocument.defaultView; + + var clientY = event.clientY; + if (win != win.parent) + clientY += win.frameElement ? win.frameElement.offsetTop : 0; + + var height = consoleFrame.offsetTop + consoleFrame.clientHeight; + var y = height - clientY; + + consoleFrame.style.height = y + "px"; + layout(); + } + + function onSplitterMouseUp(event) + { + removeEvent(document, "mousemove", onSplitterMouseMove); + removeEvent(document, "mouseup", onSplitterMouseUp); + + for (var i = 0; i < frames.length; ++i) + { + removeEvent(frames[i].document, "mousemove", onSplitterMouseMove); + removeEvent(frames[i].document, "mouseup", onSplitterMouseUp); + } + } + + function onCommandLineKeyDown(event) + { + if (event.keyCode == 13) + evalCommandLine(); + else if (event.keyCode == 27) + commandLine.value = ""; + } + + window.onerror = onError; + addEvent(document, isIE || isSafari ? "keydown" : "keypress", onKeyDown); + + if (document.documentElement.getAttribute("debug") == "true") + toggleConsole(true); +})(); +} diff --git a/app/assets/javascripts/jquery-validation/test/firebug/firebugx.js b/app/assets/javascripts/jquery-validation/test/firebug/firebugx.js new file mode 100644 index 0000000..5a467fc --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/firebug/firebugx.js @@ -0,0 +1,10 @@ + +if (!("console" in window) || !("firebug" in console)) +{ + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", + "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; + + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {} +} \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/test/firebug/infoIcon.png b/app/assets/javascripts/jquery-validation/test/firebug/infoIcon.png new file mode 100644 index 0000000..da1e533 Binary files /dev/null and b/app/assets/javascripts/jquery-validation/test/firebug/infoIcon.png differ diff --git a/app/assets/javascripts/jquery-validation/test/firebug/warningIcon.png b/app/assets/javascripts/jquery-validation/test/firebug/warningIcon.png new file mode 100644 index 0000000..de51084 Binary files /dev/null and b/app/assets/javascripts/jquery-validation/test/firebug/warningIcon.png differ diff --git a/app/assets/javascripts/jquery-validation/test/index.html b/app/assets/javascripts/jquery-validation/test/index.html new file mode 100644 index 0000000..768e0cd --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/index.html @@ -0,0 +1,270 @@ + + + + jQuery - Validation Test Suite + + + + + + + + + + + + + +

      + jQuery Validation Plugin Test Suite + jQuery 1.3.2 + jQuery 1.4.2 + jQuery 1.4.4 + jQuery 1.5 + jQuery 1.5.1 +

      +
      +
      +

      +
      +

      +
        + + + +
        +

        See this blog entry for more information.

        +

        + Here are some links in a normal paragraph: Google, + Google Groups. + This link has class="blog": + diveintomark + +

        +
        +

        Everything inside the red border is inside a div with id="foo".

        +

        This is a normal link: Yahoo

        +

        This link has class="blog": Simon Willison's Weblog

        + +
        +

        Try them out:

        +
          +
            + +
            + + + + +
            + +
            + + + + +
            + +
            + + +
            + +
            + + +
            + +
            + + +
            + +
            + +
            +
            +
              +
            • + +
            • +
            +
            + +
            + + +
            + +
            + + +
            + +
            + + +
            + +
            + +
            + +
            + + + +
            + +
            + + +
            + +
            + +
            + +
            +

            +
            + +
            + +
              + +
              + + + + + + +
                +
              +
              + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              + +
              + + + + + + + +
              + +
              + + + +
              + + +
              +
              + + +
              +
              + +
              + +
              + +
              + +
              + +
              + +
              +
              + + + diff --git a/app/assets/javascripts/jquery-validation/test/jquery.js b/app/assets/javascripts/jquery-validation/test/jquery.js new file mode 100644 index 0000000..2f417e4 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/jquery.js @@ -0,0 +1,23 @@ +(function() { + +var parts = document.location.search.slice( 1 ).split( "&" ), + length = parts.length, + i = 0, + current, + version = ""; + +for ( ; i < length; i++ ) { + current = parts[ i ].split( "=" ); + if ( current[ 0 ] === "jquery" ) { + version = current[ 1 ]; + break; + } +} + +if (version) { + version = "-" + version; +} + +document.write( "" ); + +}() ); diff --git a/app/assets/javascripts/jquery-validation/test/large.html b/app/assets/javascripts/jquery-validation/test/large.html new file mode 100644 index 0000000..82c47f1 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/large.html @@ -0,0 +1,188 @@ + + + + +Test for jQuery validate() plugin + + + + + + + + + + + + + +
              +
              + A simple comment form with submit validation and default messages +

              + + +

              + + +

              +

              + + +

              +

              + + +

              +

              + + +

              + + +

              +

              + + +

              +

              + + +

              +

              + + +

              + + +

              +

              + + +

              +

              + + +

              +

              + + +

              + + +

              +

              + + +

              +

              + + +

              +

              + + +

              + + +

              +

              + + +

              +

              + + +

              +

              + + +

              + + +

              +

              + + +

              +

              + + +

              +

              + + +

              + + +

              +

              + + +

              +

              + + +

              +

              + + +

              + + +

              +

              + + +

              +

              + + +

              +

              + + +

              + + +

              +

              + + +

              +

              + + +

              +

              + + +

              + + +

              +

              + + +

              +

              + + +

              +

              + +

              +
              +
              + + + \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/test/messages.js b/app/assets/javascripts/jquery-validation/test/messages.js new file mode 100644 index 0000000..0faf984 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/messages.js @@ -0,0 +1,62 @@ +module("messages"); + +test("predefined message not overwritten by addMethod(a, b, undefined)", function() { + var message = "my custom message"; + $.validator.messages.custom = message; + $.validator.addMethod("custom", function() {}); + same(message, $.validator.messages.custom); + delete $.validator.messages.custom; + delete $.validator.methods.custom; +}); + +test("group error messages", function() { + $.validator.addClassRules({ + requiredDateRange: {required:true, date:true, dateRange:true} + }); + $.validator.addMethod("dateRange", function() { + return new Date($("#fromDate").val()) < new Date($("#toDate").val()); + }, "Please specify a correct date range."); + var form = $("#dateRangeForm"); + form.validate({ + groups: { + dateRange: "fromDate toDate" + }, + errorPlacement: function(error) { + form.find(".errorContainer").append(error); + } + }); + ok( !form.valid() ); + equals( 1, form.find(".errorContainer *").length ); + equals( "Please enter a valid date.", form.find(".errorContainer label.error").text() ); + + $("#fromDate").val("12/03/2006"); + $("#toDate").val("12/01/2006"); + ok( !form.valid() ); + equals( "Please specify a correct date range.", form.find(".errorContainer label.error").text() ); + + $("#toDate").val("12/04/2006"); + ok( form.valid() ); + ok( form.find(".errorContainer label.error").is(":hidden") ); +}); + +test("read messages from metadata", function() { + var form = $("#testForm9") + form.validate(); + var e = $("#testEmail9") + e.valid(); + equals( form.find("label").text(), "required" ); + e.val("bla").valid(); + equals( form.find("label").text(), "email" ); +}); + + +test("read messages from metadata, with meta option specified, but no metadata in there", function() { + var form = $("#testForm1clean") + form.validate({ + meta: "validate", + rules: { + firstname: "required" + } + }); + ok(!form.valid(), "not valid"); +}); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/test/methods.js b/app/assets/javascripts/jquery-validation/test/methods.js new file mode 100644 index 0000000..0543b64 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/methods.js @@ -0,0 +1,584 @@ +(function($) { + +function methodTest( methodName ) { + var v = jQuery("#form").validate(); + var method = $.validator.methods[methodName]; + var element = $("#firstname")[0]; + return function(value, param) { + element.value = value; + return method.call( v, value, element, param ); + }; +} + +module("methods"); + +test("default messages", function() { + var m = $.validator.methods; + $.each(m, function(key) { + ok( jQuery.validator.messages[key], key + " has a default message." ); + }); +}); + +test("digit", function() { + var method = methodTest("digits"); + ok( method( "123" ), "Valid digits" ); + ok(!method( "123.000" ), "Invalid digits" ); + ok(!method( "123.000,00" ), "Invalid digits" ); + ok(!method( "123.0.0,0" ), "Invalid digits" ); + ok(!method( "x123" ), "Invalid digits" ); + ok(!method( "100.100,0,0" ), "Invalid digits" ); +}); + +test("url", function() { + var method = methodTest("url"); + ok( method( "http://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); + ok( method( "https://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); + ok( method( "ftp://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); + ok( method( "http://www.føtex.dk/" ), "Valid url, danish unicode characters" ); + ok( method( "http://bösendorfer.de/" ), "Valid url, german unicode characters" ); + ok( method( "http://192.168.8.5" ), "Valid IP Address" ) + ok(!method( "http://192.168.8." ), "Invalid IP Address" ) + ok(!method( "http://bassistance" ), "Invalid url" ); // valid + ok(!method( "http://bassistance." ), "Invalid url" ); // valid + ok(!method( "http://bassistance,de" ), "Invalid url" ); + ok(!method( "http://bassistance;de" ), "Invalid url" ); + ok(!method( "http://.bassistancede" ), "Invalid url" ); + ok(!method( "bassistance.de" ), "Invalid url" ); +}); + +test("url2 (tld optional)", function() { + var method = methodTest("url2"); + ok( method( "http://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); + ok( method( "https://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); + ok( method( "ftp://bassistance.de/jquery/plugin.php?bla=blu" ), "Valid url" ); + ok( method( "http://www.føtex.dk/" ), "Valid url, danish unicode characters" ); + ok( method( "http://bösendorfer.de/" ), "Valid url, german unicode characters" ); + ok( method( "http://192.168.8.5" ), "Valid IP Address" ) + ok(!method( "http://192.168.8." ), "Invalid IP Address" ) + ok( method( "http://bassistance" ), "Invalid url" ); + ok( method( "http://bassistance." ), "Invalid url" ); + ok(!method( "http://bassistance,de" ), "Invalid url" ); + ok(!method( "http://bassistance;de" ), "Invalid url" ); + ok(!method( "http://.bassistancede" ), "Invalid url" ); + ok(!method( "bassistance.de" ), "Invalid url" ); +}); + +test("email", function() { + var method = methodTest("email"); + ok( method( "name@domain.tld" ), "Valid email" ); + ok( method( "name@domain.tl" ), "Valid email" ); + ok( method( "bart+bart@tokbox.com" ), "Valid email" ); + ok( method( "bart+bart@tokbox.travel" ), "Valid email" ); + ok( method( "n@d.tld" ), "Valid email" ); + ok( method( "ole@føtex.dk"), "Valid email" ); + ok( method( "jörn@bassistance.de"), "Valid email" ); + ok( method( "bla.blu@g.mail.com"), "Valid email" ); + ok( method( "\"Scott Gonzalez\"@example.com" ), "Valid email" ); + ok( method( "\"Scott González\"@example.com" ), "Valid email" ); + ok( method( "\"name.\"@domain.tld" ), "Valid email" ); // valid without top label + ok( method( "\"name,\"@domain.tld" ), "Valid email" ); // valid without top label + ok( method( "\"name;\"@domain.tld" ), "Valid email" ); // valid without top label + ok(!method( "name" ), "Invalid email" ); + ok(!method( "name@" ), "Invalid email" ); + ok(!method( "name@domain" ), "Invalid email" ); + ok(!method( "name.@domain.tld" ), "Invalid email" ); + ok(!method( "name,@domain.tld" ), "Invalid email" ); + ok(!method( "name;@domain.tld" ), "Invalid email" ); +}); + +test("email2 (tld optional)", function() { + var method = methodTest("email2"); + ok( method( "name@domain.tld" ), "Valid email" ); + ok( method( "name@domain.tl" ), "Valid email" ); + ok( method( "bart+bart@tokbox.com" ), "Valid email" ); + ok( method( "bart+bart@tokbox.travel" ), "Valid email" ); + ok( method( "n@d.tld" ), "Valid email" ); + ok( method( "ole@føtex.dk"), "Valid email" ); + ok( method( "jörn@bassistance.de"), "Valid email" ); + ok( method( "bla.blu@g.mail.com"), "Valid email" ); + ok( method( "\"Scott Gonzalez\"@example.com" ), "Valid email" ); + ok( method( "\"Scott González\"@example.com" ), "Valid email" ); + ok( method( "\"name.\"@domain.tld" ), "Valid email" ); // valid without top label + ok( method( "\"name,\"@domain.tld" ), "Valid email" ); // valid without top label + ok( method( "\"name;\"@domain.tld" ), "Valid email" ); // valid without top label + ok(!method( "name" ), "Invalid email" ); + ok(!method( "name@" ), "Invalid email" ); + ok( method( "name@domain" ), "Invalid email" ); + ok(!method( "name.@domain.tld" ), "Invalid email" ); + ok(!method( "name,@domain.tld" ), "Invalid email" ); + ok(!method( "name;@domain.tld" ), "Invalid email" ); +}); + +test("number", function() { + var method = methodTest("number"); + ok( method( "123" ), "Valid number" ); + ok( method( "-123" ), "Valid number" ); + ok( method( "123,000" ), "Valid number" ); + ok( method( "-123,000" ), "Valid number" ); + ok( method( "123,000.00" ), "Valid number" ); + ok( method( "-123,000.00" ), "Valid number" ); + ok(!method( "123.000,00" ), "Invalid number" ); + ok(!method( "123.0.0,0" ), "Invalid number" ); + ok(!method( "x123" ), "Invalid number" ); + ok(!method( "100.100,0,0" ), "Invalid number" ); + + ok( method( "" ), "Blank is valid" ); + ok( method( "123" ), "Valid decimal" ); + ok( method( "123000" ), "Valid decimal" ); + ok( method( "123000.12" ), "Valid decimal" ); + ok( method( "-123000.12" ), "Valid decimal" ); + ok( method( "123.000" ), "Valid decimal" ); + ok( method( "123,000.00" ), "Valid decimal" ); + ok( method( "-123,000.00" ), "Valid decimal" ); + ok(!method( "1230,000.00" ), "Invalid decimal" ); + ok(!method( "123.0.0,0" ), "Invalid decimal" ); + ok(!method( "x123" ), "Invalid decimal" ); + ok(!method( "100.100,0,0" ), "Invalid decimal" ); +}); + +/* disabled for now, need to figure out how to test localized methods +test("numberDE", function() { + var method = methodTest("numberDE"); + ok( method( "123" ), "Valid numberDE" ); + ok( method( "-123" ), "Valid numberDE" ); + ok( method( "123.000" ), "Valid numberDE" ); + ok( method( "-123.000" ), "Valid numberDE" ); + ok( method( "123.000,00" ), "Valid numberDE" ); + ok( method( "-123.000,00" ), "Valid numberDE" ); + ok(!method( "123,000.00" ), "Invalid numberDE" ); + ok(!method( "123,0,0.0" ), "Invalid numberDE" ); + ok(!method( "x123" ), "Invalid numberDE" ); + ok(!method( "100,100.0.0" ), "Invalid numberDE" ); + + ok( method( "" ), "Blank is valid" ); + ok( method( "123" ), "Valid decimalDE" ); + ok( method( "123000" ), "Valid decimalDE" ); + ok( method( "123000,12" ), "Valid decimalDE" ); + ok( method( "-123000,12" ), "Valid decimalDE" ); + ok( method( "123.000" ), "Valid decimalDE" ); + ok( method( "123.000,00" ), "Valid decimalDE" ); + ok( method( "-123.000,00" ), "Valid decimalDE" ) + ok(!method( "123.0.0,0" ), "Invalid decimalDE" ); + ok(!method( "x123" ), "Invalid decimalDE" ); + ok(!method( "100,100.0.0" ), "Invalid decimalDE" ); +}); +*/ + +test("date", function() { + var method = methodTest("date"); + ok( method( "06/06/1990" ), "Valid date" ); + ok( method( "6/6/06" ), "Valid date" ); + ok(!method( "1990x-06-06" ), "Invalid date" ); +}); + +test("dateISO", function() { + var method = methodTest("dateISO"); + ok( method( "1990-06-06" ), "Valid date" ); + ok( method( "1990/06/06" ), "Valid date" ); + ok( method( "1990-6-6" ), "Valid date" ); + ok( method( "1990/6/6" ), "Valid date" ); + ok(!method( "1990-106-06" ), "Invalid date" ); + ok(!method( "190-06-06" ), "Invalid date" ); +}); + +/* disabled for now, need to figure out how to test localized methods +test("dateDE", function() { + var method = methodTest("dateDE"); + ok( method( "03.06.1984" ), "Valid dateDE" ); + ok( method( "3.6.84" ), "Valid dateDE" ); + ok(!method( "6-6-06" ), "Invalid dateDE" ); + ok(!method( "1990-06-06" ), "Invalid dateDE" ); + ok(!method( "06/06/1990" ), "Invalid dateDE" ); + ok(!method( "6/6/06" ), "Invalid dateDE" ); +}); +*/ + +test("required", function() { + var v = jQuery("#form").validate(), + method = $.validator.methods.required, + e = $('#text1, #text1b, #hidden2, #select1, #select2'); + ok( method.call( v, e[0].value, e[0]), "Valid text input" ); + ok(!method.call( v, e[1].value, e[1]), "Invalid text input" ); + ok(!method.call( v, e[1].value, e[2]), "Invalid text input" ); + + ok(!method.call( v, e[2].value, e[3]), "Invalid select" ); + ok( method.call( v, e[3].value, e[4]), "Valid select" ); + + e = $('#area1, #area2, #pw1, #pw2'); + ok( method.call( v, e[0].value, e[0]), "Valid textarea" ); + ok(!method.call( v, e[1].value, e[1]), "Invalid textarea" ); + ok( method.call( v, e[2].value, e[2]), "Valid password input" ); + ok(!method.call( v, e[3].value, e[3]), "Invalid password input" ); + + e = $('#radio1, #radio2, #radio3'); + ok(!method.call( v, e[0].value, e[0]), "Invalid radio" ); + ok( method.call( v, e[1].value, e[1]), "Valid radio" ); + ok( method.call( v, e[2].value, e[2]), "Valid radio" ); + + e = $('#check1, #check2'); + ok( method.call( v, e[0].value, e[0]), "Valid checkbox" ); + ok(!method.call( v, e[1].value, e[1]), "Invalid checkbox" ); + + e = $('#select1, #select2, #select3, #select4'); + ok(!method.call( v, e[0].value, e[0]), "Invalid select" ); + ok( method.call( v, e[1].value, e[1]), "Valid select" ); + ok( method.call( v, e[2].value, e[2]), "Valid select" ); + ok( method.call( v, e[3].value, e[3]), "Valid select" ); +}); + +test("required with dependencies", function() { + var v = jQuery("#form").validate(), + method = $.validator.methods.required, + e = $('#hidden2, #select1, #area2, #radio1, #check2'); + ok( method.call( v, e[0].value, e[0], "asffsaa"), "Valid text input due to depencie not met" ); + ok(!method.call( v, e[0].value, e[0], "input"), "Invalid text input" ); + ok( method.call( v, e[0].value, e[0], function() { return false; }), "Valid text input due to depencie not met" ); + ok(!method.call( v, e[0].value, e[0], function() { return true; }), "Invalid text input" ); + ok( method.call( v, e[1].value, e[1], "asfsfa"), "Valid select due to dependency not met" ); + ok(!method.call( v, e[1].value, e[1], "input"), "Invalid select" ); + ok( method.call( v, e[2].value, e[2], "asfsafsfa"), "Valid textarea due to dependency not met" ); + ok(!method.call( v, e[2].value, e[2], "input"), "Invalid textarea" ); + ok( method.call( v, e[3].value, e[3], "asfsafsfa"), "Valid radio due to dependency not met" ); + ok(!method.call( v, e[3].value, e[3], "input"), "Invalid radio" ); + ok( method.call( v, e[4].value, e[4], "asfsafsfa"), "Valid checkbox due to dependency not met" ); + ok(!method.call( v, e[4].value, e[4], "input"), "Invalid checkbox" ); +}); + +test("minlength", function() { + var v = jQuery("#form").validate(), + method = $.validator.methods.minlength, + param = 2, + e = $('#text1, #text1c, #text2, #text3'); + ok( method.call( v, e[0].value, e[0], param), "Valid text input" ); + ok(!method.call( v, e[1].value, e[1], param), "Invalid text input" ); + ok(!method.call( v, e[2].value, e[2], param), "Invalid text input" ); + ok( method.call( v, e[3].value, e[3], param), "Valid text input" ); + + e = $('#check1, #check2, #check3'); + ok(!method.call( v, e[0].value, e[0], param), "Valid checkbox" ); + ok( method.call( v, e[1].value, e[1], param), "Valid checkbox" ); + ok( method.call( v, e[2].value, e[2], param), "Invalid checkbox" ); + + e = $('#select1, #select2, #select3, #select4, #select5'); + ok(method.call( v, e[0].value, e[0], param), "Valid select " + e[0].id ); + ok(!method.call( v, e[1].value, e[1], param), "Invalid select " + e[1].id ); + ok( method.call( v, e[2].value, e[2], param), "Valid select " + e[2].id ); + ok( method.call( v, e[3].value, e[3], param), "Valid select " + e[3].id ); + ok( method.call( v, e[4].value, e[4], param), "Valid select " + e[4].id ); +}); + +test("maxlength", function() { + var v = jQuery("#form").validate(); + var method = $.validator.methods.maxlength, + param = 4, + e = $('#text1, #text2, #text3'); + ok( method.call( v, e[0].value, e[0], param), "Valid text input" ); + ok( method.call( v, e[1].value, e[1], param), "Valid text input" ); + ok(!method.call( v, e[2].value, e[2], param), "Invalid text input" ); + + e = $('#check1, #check2, #check3'); + ok( method.call( v, e[0].value, e[0], param), "Valid checkbox" ); + ok( method.call( v, e[1].value, e[1], param), "Invalid checkbox" ); + ok(!method.call( v, e[2].value, e[2], param), "Invalid checkbox" ); + + e = $('#select1, #select2, #select3, #select4'); + ok( method.call( v, e[0].value, e[0], param), "Valid select" ); + ok( method.call( v, e[1].value, e[1], param), "Valid select" ); + ok( method.call( v, e[2].value, e[2], param), "Valid select" ); + ok(!method.call( v, e[3].value, e[3], param), "Invalid select" ); +}); + +test("rangelength", function() { + var v = jQuery("#form").validate(); + var method = $.validator.methods.rangelength, + param = [2, 4], + e = $('#text1, #text2, #text3'); + ok( method.call( v, e[0].value, e[0], param), "Valid text input" ); + ok(!method.call( v, e[1].value, e[1], param), "Invalid text input" ); + ok(!method.call( v, e[2].value, e[2], param), "Invalid text input" ); +}); + +test("min", function() { + var v = jQuery("#form").validate(); + var method = $.validator.methods.min, + param = 8, + e = $('#value1, #value2, #value3'); + ok(!method.call( v, e[0].value, e[0], param), "Invalid text input" ); + ok( method.call( v, e[1].value, e[1], param), "Valid text input" ); + ok( method.call( v, e[2].value, e[2], param), "Valid text input" ); +}); + +test("max", function() { + var v = jQuery("#form").validate(); + var method = $.validator.methods.max, + param = 12, + e = $('#value1, #value2, #value3'); + ok( method.call( v, e[0].value, e[0], param), "Valid text input" ); + ok( method.call( v, e[1].value, e[1], param), "Valid text input" ); + ok(!method.call( v, e[2].value, e[2], param), "Invalid text input" ); +}); + +test("range", function() { + var v = jQuery("#form").validate(); + var method = $.validator.methods.range, + param = [4,12], + e = $('#value1, #value2, #value3'); + ok(!method.call( v, e[0].value, e[0], param), "Invalid text input" ); + ok( method.call( v, e[1].value, e[1], param), "Valid text input" ); + ok(!method.call( v, e[2].value, e[2], param), "Invalid text input" ); +}); + +test("equalTo", function() { + var v = jQuery("#form").validate(); + var method = $.validator.methods.equalTo, + e = $('#text1, #text2'); + ok( method.call( v, "Test", e[0], "#text1"), "Text input" ); + ok( method.call( v, "T", e[1], "#text2"), "Another one" ); +}); + +test("creditcard", function() { + var method = methodTest("creditcard"); + ok( method( "446-667-651" ), "Valid creditcard number" ); + ok( !method( "asdf" ), "Invalid creditcard number" ); +}); + +test("accept", function() { + var method = methodTest("accept"); + ok( method( "picture.gif" ), "Valid default accept type" ); + ok( method( "picture.jpg" ), "Valid default accept type" ); + ok( method( "picture.jpeg" ), "Valid default accept type" ); + ok( method( "picture.png" ), "Valid default accept type" ); + ok( !method( "picture.pgn" ), "Invalid default accept type" ); + + var v = jQuery("#form").validate(), + method = function(value, param) { + return $.validator.methods.accept.call(v, value, $('#text1')[0], param) + }; + ok( method( "picture.doc", "doc"), "Valid custom accept type" ); + ok( method( "picture.pdf", "doc|pdf"), "Valid custom accept type" ); + ok( method( "picture.pdf", "pdf|doc"), "Valid custom accept type" ); + ok( !method( "picture.pdf", "doc"), "Invalid custom accept type" ); + ok( !method( "picture.doc", "pdf"), "Invalid custom accept type" ); + + ok( method( "picture.pdf", "doc,pdf"), "Valid custom accept type, comma seperated" ); + ok( method( "picture.pdf", "pdf,doc"), "Valid custom accept type, comma seperated" ); + ok( !method( "picture.pdf", "gop,top"), "Invalid custom accept type, comma seperated" ); +}); + +test("remote", function() { + expect(7); + stop(); + var e = $("#username"); + var v = $("#userForm").validate({ + rules: { + username: { + required: true, + remote: "users.php" + } + }, + messages: { + username: { + required: "Please", + remote: jQuery.validator.format("{0} in use") + } + }, + submitHandler: function() { + ok( false, "submitHandler may never be called when validating only elements"); + } + }); + $(document).ajaxStop(function() { + $(document).unbind("ajaxStop"); + equals( 1, v.size(), "There must be one error" ); + equals( "Peter in use", v.errorList[0].message ); + + $(document).ajaxStop(function() { + $(document).unbind("ajaxStop"); + equals( 1, v.size(), "There must be one error" ); + equals( "Peter2 in use", v.errorList[0].message ); + start(); + }); + e.val("Peter2"); + ok( !v.element(e), "new value, new request" ); + }); + ok( !v.element(e), "invalid element, nothing entered yet" ); + e.val("Peter"); + ok( !v.element(e), "still invalid, because remote validation must block until it returns" ); +}); + +test("remote, customized ajax options", function() { + expect(2); + stop(); + var v = $("#userForm").validate({ + rules: { + username: { + required: true, + remote: { + url: "users.php", + type: "POST", + beforeSend: function(request, settings) { + same(settings.type, "POST"); + same(settings.data, "username=asdf&email=email.com"); + }, + data: { + email: function() { + return "email.com"; + } + }, + complete: function() { + start(); + } + } + } + } + }); + $("#username").val("asdf"); + $("#userForm").valid(); +}); + + +test("remote extensions", function() { + expect(5); + stop(); + var e = $("#username"); + var v = $("#userForm").validate({ + rules: { + username: { + required: true, + remote: "users2.php" + } + }, + messages: { + username: { + required: "Please" + } + }, + submitHandler: function() { + ok( false, "submitHandler may never be called when validating only elements"); + } + }); + $(document).ajaxStop(function() { + $(document).unbind("ajaxStop"); + equals( 1, v.size(), "There must be one error" ); + equals( v.errorList[0].message, "asdf is already taken, please try something else" ); + v.element(e); + equals( v.errorList[0].message, "asdf is already taken, please try something else", "message doesn't change on revalidation" ); + start(); + }); + ok( !v.element(e), "invalid element, nothing entered yet" ); + e.val("asdf"); + ok( !v.element(e), "still invalid, because remote validation must block until it returns" ); +}); + +module("additional methods"); + +test("phone (us)", function() { + var method = methodTest("phoneUS"); + ok( method( "1(212)-999-2345" ), "Valid us phone number" ); + ok( method( "212 999 2344" ), "Valid us phone number" ); + ok( method( "212-999-0983" ), "Valid us phone number" ); + ok(!method( "111-123-5434" ), "Invalid us phone number" ); + ok(!method( "212 123 4567" ), "Invalid us phone number" ); +}); + +test("dateITA", function() { + var method = methodTest("dateITA"); + ok( method( "01/01/1900" ), "Valid date ITA" ); + ok(!method( "01/13/1990" ), "Invalid date ITA" ); + ok(!method( "01.01.1900" ), "Invalid date ITA" ); +}); + +test("time", function() { + var method = methodTest("time"); + ok( method("00:00"), "Valid time, lower bound" ); + ok( method("23:59"), "Valid time, upper bound" ); + ok( !method("24:60"), "Invalid time" ); + ok( !method("24:00"), "Invalid time" ); + ok( !method("29:59"), "Invalid time" ); + ok( !method("30:00"), "Invalid time" ); +}); + +test("minWords", function() { + var method = methodTest("minWords"); + ok( method("hello worlds", 2), "plain text, valid" ); + ok( method("hello world", 2), "html, valid" ); + ok( !method("hello", 2), "plain text, invalid" ); + ok( !method("world", 2), "html, invalid" ); + ok( !method("world
              ", 2), "html, invalid" ); +}); + +test("maxWords", function() { + var method = methodTest("maxWords"); + ok( method("hello", 2), "plain text, valid" ); + ok( method("world", 2), "html, valid" ); + ok( method("world
              ", 2), "html, valid" ); + ok( !method("hello worlds", 2), "plain text, invalid" ); + ok( !method("hello world", 2), "html, invalid" ); +}); + +function testCardTypeByNumber(number, cardname, expected) { + $("#cardnumber").val(number); + var actual = $("#ccform").valid(); + equals(actual, expected, $.format("Expect card number {0} to validate to {1}, actually validated to ", number, expected)); +} + +test('creditcardtypes, all', function() { + $("#ccform").validate({ + rules: { + cardnumber: { + creditcard: true, + creditcardtypes: { + all: true + } + } + } + }); + + testCardTypeByNumber("4111-1111-1111-1111", "VISA", true) + testCardTypeByNumber("5111-1111-1111-1118", "MasterCard", true) + testCardTypeByNumber("6111-1111-1111-1116", "Discover", true) + testCardTypeByNumber("3400-0000-0000-009", "AMEX", true); + + testCardTypeByNumber("4111-1111-1111-1110", "VISA", false) + testCardTypeByNumber("5432-1111-1111-1111", "MasterCard", false) + testCardTypeByNumber("6611-6611-6611-6611", "Discover", false) + testCardTypeByNumber("3777-7777-7777-7777", "AMEX", false) + +}); + +test('creditcardtypes, visa', function() { + $("#ccform").validate({ + rules: { + cardnumber: { + creditcard: true, + creditcardtypes: { + visa: true + } + } + } + }); + + testCardTypeByNumber("4111-1111-1111-1111", "VISA", true) + testCardTypeByNumber("5111-1111-1111-1118", "MasterCard", false) + testCardTypeByNumber("6111-1111-1111-1116", "Discover", false) + testCardTypeByNumber("3400-0000-0000-009", "AMEX", false); +}); + +test('creditcardtypes, mastercard', function() { + $("#ccform").validate({ + rules: { + cardnumber: { + creditcard: true, + creditcardtypes: { + mastercard: true + } + } + } + }); + + testCardTypeByNumber("5111-1111-1111-1118", "MasterCard", true) + testCardTypeByNumber("6111-1111-1111-1116", "Discover", false) + testCardTypeByNumber("3400-0000-0000-009", "AMEX", false); + testCardTypeByNumber("4111-1111-1111-1111", "VISA", false); +}); + +})(jQuery); \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/test/qunit/qunit.css b/app/assets/javascripts/jquery-validation/test/qunit/qunit.css new file mode 100644 index 0000000..88cdda9 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/qunit/qunit.css @@ -0,0 +1,205 @@ +/** Font Family and Sizes */ + +#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult { + font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial; +} + +#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } +#qunit-tests { font-size: smaller; } + + +/** Resets */ + +#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult { + margin: 0; + padding: 0; +} + + +/** Header */ + +#qunit-header { + padding: 0.5em 0 0.5em 1em; + + color: #8699a4; + background-color: #0d3349; + + font-size: 1.5em; + line-height: 1em; + font-weight: normal; + + border-radius: 15px 15px 0 0; + -moz-border-radius: 15px 15px 0 0; + -webkit-border-top-right-radius: 15px; + -webkit-border-top-left-radius: 15px; +} + +#qunit-header a { + text-decoration: none; + color: #c2ccd1; +} + +#qunit-header a:hover, +#qunit-header a:focus { + color: #fff; +} + +#qunit-banner { + height: 5px; +} + +#qunit-testrunner-toolbar { + padding: 0.5em 0 0.5em 2em; + color: #5E740B; + background-color: #eee; +} + +#qunit-userAgent { + padding: 0.5em 0 0.5em 2.5em; + background-color: #2b81af; + color: #fff; + text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; +} + + +/** Tests: Pass/Fail */ + +#qunit-tests { + list-style-position: inside; +} + +#qunit-tests li { + padding: 0.4em 0.5em 0.4em 2.5em; + border-bottom: 1px solid #fff; + list-style-position: inside; +} + +#qunit-tests.hidepass li.pass { + display: none; +} + +#qunit-tests li strong { + cursor: pointer; +} + +#qunit-tests ol { + margin-top: 0.5em; + padding: 0.5em; + + background-color: #fff; + + border-radius: 15px; + -moz-border-radius: 15px; + -webkit-border-radius: 15px; + + box-shadow: inset 0px 2px 13px #999; + -moz-box-shadow: inset 0px 2px 13px #999; + -webkit-box-shadow: inset 0px 2px 13px #999; +} + +#qunit-tests table { + border-collapse: collapse; + margin-top: .2em; +} + +#qunit-tests th { + text-align: right; + vertical-align: top; + padding: 0 .5em 0 0; +} + +#qunit-tests td { + vertical-align: top; +} + +#qunit-tests pre { + margin: 0; + white-space: pre-wrap; + word-wrap: break-word; +} + +#qunit-tests del { + background-color: #e0f2be; + color: #374e0c; + text-decoration: none; +} + +#qunit-tests ins { + background-color: #ffcaca; + color: #500; + text-decoration: none; +} + +/*** Test Counts */ + +#qunit-tests b.counts { color: black; } +#qunit-tests b.passed { color: #5E740B; } +#qunit-tests b.failed { color: #710909; } + +#qunit-tests li li { + margin: 0.5em; + padding: 0.4em 0.5em 0.4em 0.5em; + background-color: #fff; + border-bottom: none; + list-style-position: inside; +} + +/*** Passing Styles */ + +#qunit-tests li li.pass { + color: #5E740B; + background-color: #fff; + border-left: 26px solid #C6E746; +} + +#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; } +#qunit-tests .pass .test-name { color: #366097; } + +#qunit-tests .pass .test-actual, +#qunit-tests .pass .test-expected { color: #999999; } + +#qunit-banner.qunit-pass { background-color: #C6E746; } + +/*** Failing Styles */ + +#qunit-tests li li.fail { + color: #710909; + background-color: #fff; + border-left: 26px solid #EE5757; +} + +#qunit-tests > li:last-child { + border-radius: 0 0 15px 15px; + -moz-border-radius: 0 0 15px 15px; + -webkit-border-bottom-right-radius: 15px; + -webkit-border-bottom-left-radius: 15px; +} + +#qunit-tests .fail { color: #000000; background-color: #EE5757; } +#qunit-tests .fail .test-name, +#qunit-tests .fail .module-name { color: #000000; } + +#qunit-tests .fail .test-actual { color: #EE5757; } +#qunit-tests .fail .test-expected { color: green; } + +#qunit-banner.qunit-fail { background-color: #EE5757; } + + +/** Result */ + +#qunit-testresult { + padding: 0.5em 0.5em 0.5em 2.5em; + + color: #2b81af; + background-color: #D2E0E6; + + border-bottom: 1px solid white; +} + +/** Fixture */ + +#qunit-fixture { + position: absolute; + top: -10000px; + left: -10000px; +} diff --git a/app/assets/javascripts/jquery-validation/test/qunit/qunit.js b/app/assets/javascripts/jquery-validation/test/qunit/qunit.js new file mode 100644 index 0000000..272b93a --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/qunit/qunit.js @@ -0,0 +1,1428 @@ +/* + * QUnit - A JavaScript Unit Testing Framework + * + * http://docs.jquery.com/QUnit + * + * Copyright (c) 2011 John Resig, Jörn Zaefferer + * Dual licensed under the MIT (MIT-LICENSE.txt) + * or GPL (GPL-LICENSE.txt) licenses. + */ + +(function(window) { + +var defined = { + setTimeout: typeof window.setTimeout !== "undefined", + sessionStorage: (function() { + try { + return !!sessionStorage.getItem; + } catch(e){ + return false; + } + })() +}; + +var testId = 0; + +var Test = function(name, testName, expected, testEnvironmentArg, async, callback) { + this.name = name; + this.testName = testName; + this.expected = expected; + this.testEnvironmentArg = testEnvironmentArg; + this.async = async; + this.callback = callback; + this.assertions = []; +}; +Test.prototype = { + init: function() { + var tests = id("qunit-tests"); + if (tests) { + var b = document.createElement("strong"); + b.innerHTML = "Running " + this.name; + var li = document.createElement("li"); + li.appendChild( b ); + li.className = "running"; + li.id = this.id = "test-output" + testId++; + tests.appendChild( li ); + } + }, + setup: function() { + if (this.module != config.previousModule) { + if ( config.previousModule ) { + QUnit.moduleDone( { + name: config.previousModule, + failed: config.moduleStats.bad, + passed: config.moduleStats.all - config.moduleStats.bad, + total: config.moduleStats.all + } ); + } + config.previousModule = this.module; + config.moduleStats = { all: 0, bad: 0 }; + QUnit.moduleStart( { + name: this.module + } ); + } + + config.current = this; + this.testEnvironment = extend({ + setup: function() {}, + teardown: function() {} + }, this.moduleTestEnvironment); + if (this.testEnvironmentArg) { + extend(this.testEnvironment, this.testEnvironmentArg); + } + + QUnit.testStart( { + name: this.testName + } ); + + // allow utility functions to access the current test environment + // TODO why?? + QUnit.current_testEnvironment = this.testEnvironment; + + try { + if ( !config.pollution ) { + saveGlobal(); + } + + this.testEnvironment.setup.call(this.testEnvironment); + } catch(e) { + QUnit.ok( false, "Setup failed on " + this.testName + ": " + e.message ); + } + }, + run: function() { + if ( this.async ) { + QUnit.stop(); + } + + if ( config.notrycatch ) { + this.callback.call(this.testEnvironment); + return; + } + try { + this.callback.call(this.testEnvironment); + } catch(e) { + fail("Test " + this.testName + " died, exception and test follows", e, this.callback); + QUnit.ok( false, "Died on test #" + (this.assertions.length + 1) + ": " + e.message + " - " + QUnit.jsDump.parse(e) ); + // else next test will carry the responsibility + saveGlobal(); + + // Restart the tests if they're blocking + if ( config.blocking ) { + start(); + } + } + }, + teardown: function() { + try { + checkPollution(); + this.testEnvironment.teardown.call(this.testEnvironment); + } catch(e) { + QUnit.ok( false, "Teardown failed on " + this.testName + ": " + e.message ); + } + }, + finish: function() { + if ( this.expected && this.expected != this.assertions.length ) { + QUnit.ok( false, "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run" ); + } + + var good = 0, bad = 0, + tests = id("qunit-tests"); + + config.stats.all += this.assertions.length; + config.moduleStats.all += this.assertions.length; + + if ( tests ) { + var ol = document.createElement("ol"); + + for ( var i = 0; i < this.assertions.length; i++ ) { + var assertion = this.assertions[i]; + + var li = document.createElement("li"); + li.className = assertion.result ? "pass" : "fail"; + li.innerHTML = assertion.message || (assertion.result ? "okay" : "failed"); + ol.appendChild( li ); + + if ( assertion.result ) { + good++; + } else { + bad++; + config.stats.bad++; + config.moduleStats.bad++; + } + } + + // store result when possible + QUnit.config.reorder && defined.sessionStorage && sessionStorage.setItem("qunit-" + this.testName, bad); + + if (bad == 0) { + ol.style.display = "none"; + } + + var b = document.createElement("strong"); + b.innerHTML = this.name + " (" + bad + ", " + good + ", " + this.assertions.length + ")"; + + addEvent(b, "click", function() { + var next = b.nextSibling, display = next.style.display; + next.style.display = display === "none" ? "block" : "none"; + }); + + addEvent(b, "dblclick", function(e) { + var target = e && e.target ? e.target : window.event.srcElement; + if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) { + target = target.parentNode; + } + if ( window.location && target.nodeName.toLowerCase() === "strong" ) { + window.location = QUnit.url({ filter: getText([target]).replace(/\(.+\)$/, "").replace(/(^\s*|\s*$)/g, "") }); + } + }); + + var li = id(this.id); + li.className = bad ? "fail" : "pass"; + li.removeChild( li.firstChild ); + li.appendChild( b ); + li.appendChild( ol ); + + } else { + for ( var i = 0; i < this.assertions.length; i++ ) { + if ( !this.assertions[i].result ) { + bad++; + config.stats.bad++; + config.moduleStats.bad++; + } + } + } + + try { + QUnit.reset(); + } catch(e) { + fail("reset() failed, following Test " + this.testName + ", exception and reset fn follows", e, QUnit.reset); + } + + QUnit.testDone( { + name: this.testName, + failed: bad, + passed: this.assertions.length - bad, + total: this.assertions.length + } ); + }, + + queue: function() { + var test = this; + synchronize(function() { + test.init(); + }); + function run() { + // each of these can by async + synchronize(function() { + test.setup(); + }); + synchronize(function() { + test.run(); + }); + synchronize(function() { + test.teardown(); + }); + synchronize(function() { + test.finish(); + }); + } + // defer when previous test run passed, if storage is available + var bad = QUnit.config.reorder && defined.sessionStorage && +sessionStorage.getItem("qunit-" + this.testName); + if (bad) { + run(); + } else { + synchronize(run); + }; + } + +}; + +var QUnit = { + + // call on start of module test to prepend name to all tests + module: function(name, testEnvironment) { + config.currentModule = name; + config.currentModuleTestEnviroment = testEnvironment; + }, + + asyncTest: function(testName, expected, callback) { + if ( arguments.length === 2 ) { + callback = expected; + expected = 0; + } + + QUnit.test(testName, expected, callback, true); + }, + + test: function(testName, expected, callback, async) { + var name = '' + testName + '', testEnvironmentArg; + + if ( arguments.length === 2 ) { + callback = expected; + expected = null; + } + // is 2nd argument a testEnvironment? + if ( expected && typeof expected === 'object') { + testEnvironmentArg = expected; + expected = null; + } + + if ( config.currentModule ) { + name = '' + config.currentModule + ": " + name; + } + + if ( !validTest(config.currentModule + ": " + testName) ) { + return; + } + + var test = new Test(name, testName, expected, testEnvironmentArg, async, callback); + test.module = config.currentModule; + test.moduleTestEnvironment = config.currentModuleTestEnviroment; + test.queue(); + }, + + /** + * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through. + */ + expect: function(asserts) { + config.current.expected = asserts; + }, + + /** + * Asserts true. + * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); + */ + ok: function(a, msg) { + a = !!a; + var details = { + result: a, + message: msg + }; + msg = escapeHtml(msg); + QUnit.log(details); + config.current.assertions.push({ + result: a, + message: msg + }); + }, + + /** + * Checks that the first two arguments are equal, with an optional message. + * Prints out both actual and expected values. + * + * Prefered to ok( actual == expected, message ) + * + * @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." ); + * + * @param Object actual + * @param Object expected + * @param String message (optional) + */ + equal: function(actual, expected, message) { + QUnit.push(expected == actual, actual, expected, message); + }, + + notEqual: function(actual, expected, message) { + QUnit.push(expected != actual, actual, expected, message); + }, + + deepEqual: function(actual, expected, message) { + QUnit.push(QUnit.equiv(actual, expected), actual, expected, message); + }, + + notDeepEqual: function(actual, expected, message) { + QUnit.push(!QUnit.equiv(actual, expected), actual, expected, message); + }, + + strictEqual: function(actual, expected, message) { + QUnit.push(expected === actual, actual, expected, message); + }, + + notStrictEqual: function(actual, expected, message) { + QUnit.push(expected !== actual, actual, expected, message); + }, + + raises: function(block, expected, message) { + var actual, ok = false; + + if (typeof expected === 'string') { + message = expected; + expected = null; + } + + try { + block(); + } catch (e) { + actual = e; + } + + if (actual) { + // we don't want to validate thrown error + if (!expected) { + ok = true; + // expected is a regexp + } else if (QUnit.objectType(expected) === "regexp") { + ok = expected.test(actual); + // expected is a constructor + } else if (actual instanceof expected) { + ok = true; + // expected is a validation function which returns true is validation passed + } else if (expected.call({}, actual) === true) { + ok = true; + } + } + + QUnit.ok(ok, message); + }, + + start: function() { + config.semaphore--; + if (config.semaphore > 0) { + // don't start until equal number of stop-calls + return; + } + if (config.semaphore < 0) { + // ignore if start is called more often then stop + config.semaphore = 0; + } + // A slight delay, to avoid any current callbacks + if ( defined.setTimeout ) { + window.setTimeout(function() { + if ( config.timeout ) { + clearTimeout(config.timeout); + } + + config.blocking = false; + process(); + }, 13); + } else { + config.blocking = false; + process(); + } + }, + + stop: function(timeout) { + config.semaphore++; + config.blocking = true; + + if ( timeout && defined.setTimeout ) { + clearTimeout(config.timeout); + config.timeout = window.setTimeout(function() { + QUnit.ok( false, "Test timed out" ); + QUnit.start(); + }, timeout); + } + }, + + url: function( params ) { + params = extend( extend( {}, QUnit.urlParams ), params ); + var querystring = "?", + key; + for ( key in params ) { + querystring += encodeURIComponent( key ) + "=" + + encodeURIComponent( params[ key ] ) + "&"; + } + return window.location.pathname + querystring.slice( 0, -1 ); + } +}; + +// Backwards compatibility, deprecated +QUnit.equals = QUnit.equal; +QUnit.same = QUnit.deepEqual; + +// Maintain internal state +var config = { + // The queue of tests to run + queue: [], + + // block until document ready + blocking: true, + + // by default, run previously failed tests first + // very useful in combination with "Hide passed tests" checked + reorder: true, + + noglobals: false, + notrycatch: false +}; + +// Load paramaters +(function() { + var location = window.location || { search: "", protocol: "file:" }, + params = location.search.slice( 1 ).split( "&" ), + length = params.length, + urlParams = {}, + current; + + if ( params[ 0 ] ) { + for ( var i = 0; i < length; i++ ) { + current = params[ i ].split( "=" ); + current[ 0 ] = decodeURIComponent( current[ 0 ] ); + // allow just a key to turn on a flag, e.g., test.html?noglobals + current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true; + urlParams[ current[ 0 ] ] = current[ 1 ]; + if ( current[ 0 ] in config ) { + config[ current[ 0 ] ] = current[ 1 ]; + } + } + } + + QUnit.urlParams = urlParams; + config.filter = urlParams.filter; + + // Figure out if we're running the tests from a server or not + QUnit.isLocal = !!(location.protocol === 'file:'); +})(); + +// Expose the API as global variables, unless an 'exports' +// object exists, in that case we assume we're in CommonJS +if ( typeof exports === "undefined" || typeof require === "undefined" ) { + extend(window, QUnit); + window.QUnit = QUnit; +} else { + extend(exports, QUnit); + exports.QUnit = QUnit; +} + +// define these after exposing globals to keep them in these QUnit namespace only +extend(QUnit, { + config: config, + + // Initialize the configuration options + init: function() { + extend(config, { + stats: { all: 0, bad: 0 }, + moduleStats: { all: 0, bad: 0 }, + started: +new Date, + updateRate: 1000, + blocking: false, + autostart: true, + autorun: false, + filter: "", + queue: [], + semaphore: 0 + }); + + var tests = id( "qunit-tests" ), + banner = id( "qunit-banner" ), + result = id( "qunit-testresult" ); + + if ( tests ) { + tests.innerHTML = ""; + } + + if ( banner ) { + banner.className = ""; + } + + if ( result ) { + result.parentNode.removeChild( result ); + } + + if ( tests ) { + result = document.createElement( "p" ); + result.id = "qunit-testresult"; + result.className = "result"; + tests.parentNode.insertBefore( result, tests ); + result.innerHTML = 'Running...
               '; + } + }, + + /** + * Resets the test setup. Useful for tests that modify the DOM. + * + * If jQuery is available, uses jQuery's html(), otherwise just innerHTML. + */ + reset: function() { + if ( window.jQuery ) { + jQuery( "#main, #qunit-fixture" ).html( config.fixture ); + } else { + var main = id( 'main' ) || id( 'qunit-fixture' ); + if ( main ) { + main.innerHTML = config.fixture; + } + } + }, + + /** + * Trigger an event on an element. + * + * @example triggerEvent( document.body, "click" ); + * + * @param DOMElement elem + * @param String type + */ + triggerEvent: function( elem, type, event ) { + if ( document.createEvent ) { + event = document.createEvent("MouseEvents"); + event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, + 0, 0, 0, 0, 0, false, false, false, false, 0, null); + elem.dispatchEvent( event ); + + } else if ( elem.fireEvent ) { + elem.fireEvent("on"+type); + } + }, + + // Safe object type checking + is: function( type, obj ) { + return QUnit.objectType( obj ) == type; + }, + + objectType: function( obj ) { + if (typeof obj === "undefined") { + return "undefined"; + + // consider: typeof null === object + } + if (obj === null) { + return "null"; + } + + var type = Object.prototype.toString.call( obj ) + .match(/^\[object\s(.*)\]$/)[1] || ''; + + switch (type) { + case 'Number': + if (isNaN(obj)) { + return "nan"; + } else { + return "number"; + } + case 'String': + case 'Boolean': + case 'Array': + case 'Date': + case 'RegExp': + case 'Function': + return type.toLowerCase(); + } + if (typeof obj === "object") { + return "object"; + } + return undefined; + }, + + push: function(result, actual, expected, message) { + var details = { + result: result, + message: message, + actual: actual, + expected: expected + }; + + message = escapeHtml(message) || (result ? "okay" : "failed"); + message = '' + message + ""; + expected = escapeHtml(QUnit.jsDump.parse(expected)); + actual = escapeHtml(QUnit.jsDump.parse(actual)); + var output = message + ''; + if (actual != expected) { + output += ''; + output += ''; + } + if (!result) { + var source = sourceFromStacktrace(); + if (source) { + details.source = source; + output += ''; + } + } + output += "
              Expected:
              ' + expected + '
              Result:
              ' + actual + '
              Diff:
              ' + QUnit.diff(expected, actual) +'
              Source:
              ' + source +'
              "; + + QUnit.log(details); + + config.current.assertions.push({ + result: !!result, + message: output + }); + }, + + // Logging callbacks; all receive a single argument with the listed properties + // run test/logs.html for any related changes + begin: function() {}, + // done: { failed, passed, total, runtime } + done: function() {}, + // log: { result, actual, expected, message } + log: function() {}, + // testStart: { name } + testStart: function() {}, + // testDone: { name, failed, passed, total } + testDone: function() {}, + // moduleStart: { name } + moduleStart: function() {}, + // moduleDone: { name, failed, passed, total } + moduleDone: function() {} +}); + +if ( typeof document === "undefined" || document.readyState === "complete" ) { + config.autorun = true; +} + +addEvent(window, "load", function() { + QUnit.begin({}); + + // Initialize the config, saving the execution queue + var oldconfig = extend({}, config); + QUnit.init(); + extend(config, oldconfig); + + config.blocking = false; + + var userAgent = id("qunit-userAgent"); + if ( userAgent ) { + userAgent.innerHTML = navigator.userAgent; + } + var banner = id("qunit-header"); + if ( banner ) { + banner.innerHTML = ' ' + banner.innerHTML + ' ' + + '' + + ''; + addEvent( banner, "change", function( event ) { + var params = {}; + params[ event.target.name ] = event.target.checked ? true : undefined; + window.location = QUnit.url( params ); + }); + } + + var toolbar = id("qunit-testrunner-toolbar"); + if ( toolbar ) { + var filter = document.createElement("input"); + filter.type = "checkbox"; + filter.id = "qunit-filter-pass"; + addEvent( filter, "click", function() { + var ol = document.getElementById("qunit-tests"); + if ( filter.checked ) { + ol.className = ol.className + " hidepass"; + } else { + var tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " "; + ol.className = tmp.replace(/ hidepass /, " "); + } + if ( defined.sessionStorage ) { + sessionStorage.setItem("qunit-filter-passed-tests", filter.checked ? "true" : ""); + } + }); + if ( defined.sessionStorage && sessionStorage.getItem("qunit-filter-passed-tests") ) { + filter.checked = true; + var ol = document.getElementById("qunit-tests"); + ol.className = ol.className + " hidepass"; + } + toolbar.appendChild( filter ); + + var label = document.createElement("label"); + label.setAttribute("for", "qunit-filter-pass"); + label.innerHTML = "Hide passed tests"; + toolbar.appendChild( label ); + } + + var main = id('main') || id('qunit-fixture'); + if ( main ) { + config.fixture = main.innerHTML; + } + + if (config.autostart) { + QUnit.start(); + } +}); + +function done() { + config.autorun = true; + + // Log the last module results + if ( config.currentModule ) { + QUnit.moduleDone( { + name: config.currentModule, + failed: config.moduleStats.bad, + passed: config.moduleStats.all - config.moduleStats.bad, + total: config.moduleStats.all + } ); + } + + var banner = id("qunit-banner"), + tests = id("qunit-tests"), + runtime = +new Date - config.started, + passed = config.stats.all - config.stats.bad, + html = [ + 'Tests completed in ', + runtime, + ' milliseconds.
              ', + '', + passed, + ' tests of ', + config.stats.all, + ' passed, ', + config.stats.bad, + ' failed.' + ].join(''); + + if ( banner ) { + banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass"); + } + + if ( tests ) { + id( "qunit-testresult" ).innerHTML = html; + } + + QUnit.done( { + failed: config.stats.bad, + passed: passed, + total: config.stats.all, + runtime: runtime + } ); +} + +function validTest( name ) { + var filter = config.filter, + run = false; + + if ( !filter ) { + return true; + } + + not = filter.charAt( 0 ) === "!"; + if ( not ) { + filter = filter.slice( 1 ); + } + + if ( name.indexOf( filter ) !== -1 ) { + return !not; + } + + if ( not ) { + run = true; + } + + return run; +} + +// so far supports only Firefox, Chrome and Opera (buggy) +// could be extended in the future to use something like https://github.com/csnover/TraceKit +function sourceFromStacktrace() { + try { + throw new Error(); + } catch ( e ) { + if (e.stacktrace) { + // Opera + return e.stacktrace.split("\n")[6]; + } else if (e.stack) { + // Firefox, Chrome + return e.stack.split("\n")[4]; + } + } +} + +function escapeHtml(s) { + if (!s) { + return ""; + } + s = s + ""; + return s.replace(/[\&"<>\\]/g, function(s) { + switch(s) { + case "&": return "&"; + case "\\": return "\\\\"; + case '"': return '\"'; + case "<": return "<"; + case ">": return ">"; + default: return s; + } + }); +} + +function synchronize( callback ) { + config.queue.push( callback ); + + if ( config.autorun && !config.blocking ) { + process(); + } +} + +function process() { + var start = (new Date()).getTime(); + + while ( config.queue.length && !config.blocking ) { + if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) { + config.queue.shift()(); + } else { + window.setTimeout( process, 13 ); + break; + } + } + if (!config.blocking && !config.queue.length) { + done(); + } +} + +function saveGlobal() { + config.pollution = []; + + if ( config.noglobals ) { + for ( var key in window ) { + config.pollution.push( key ); + } + } +} + +function checkPollution( name ) { + var old = config.pollution; + saveGlobal(); + + var newGlobals = diff( old, config.pollution ); + if ( newGlobals.length > 0 ) { + ok( false, "Introduced global variable(s): " + newGlobals.join(", ") ); + config.current.expected++; + } + + var deletedGlobals = diff( config.pollution, old ); + if ( deletedGlobals.length > 0 ) { + ok( false, "Deleted global variable(s): " + deletedGlobals.join(", ") ); + config.current.expected++; + } +} + +// returns a new Array with the elements that are in a but not in b +function diff( a, b ) { + var result = a.slice(); + for ( var i = 0; i < result.length; i++ ) { + for ( var j = 0; j < b.length; j++ ) { + if ( result[i] === b[j] ) { + result.splice(i, 1); + i--; + break; + } + } + } + return result; +} + +function fail(message, exception, callback) { + if ( typeof console !== "undefined" && console.error && console.warn ) { + console.error(message); + console.error(exception); + console.warn(callback.toString()); + + } else if ( window.opera && opera.postError ) { + opera.postError(message, exception, callback.toString); + } +} + +function extend(a, b) { + for ( var prop in b ) { + if ( b[prop] === undefined ) { + delete a[prop]; + } else { + a[prop] = b[prop]; + } + } + + return a; +} + +function addEvent(elem, type, fn) { + if ( elem.addEventListener ) { + elem.addEventListener( type, fn, false ); + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, fn ); + } else { + fn(); + } +} + +function id(name) { + return !!(typeof document !== "undefined" && document && document.getElementById) && + document.getElementById( name ); +} + +// Test for equality any JavaScript type. +// Discussions and reference: http://philrathe.com/articles/equiv +// Test suites: http://philrathe.com/tests/equiv +// Author: Philippe Rathé +QUnit.equiv = function () { + + var innerEquiv; // the real equiv function + var callers = []; // stack to decide between skip/abort functions + var parents = []; // stack to avoiding loops from circular referencing + + // Call the o related callback with the given arguments. + function bindCallbacks(o, callbacks, args) { + var prop = QUnit.objectType(o); + if (prop) { + if (QUnit.objectType(callbacks[prop]) === "function") { + return callbacks[prop].apply(callbacks, args); + } else { + return callbacks[prop]; // or undefined + } + } + } + + var callbacks = function () { + + // for string, boolean, number and null + function useStrictEquality(b, a) { + if (b instanceof a.constructor || a instanceof b.constructor) { + // to catch short annotaion VS 'new' annotation of a declaration + // e.g. var i = 1; + // var j = new Number(1); + return a == b; + } else { + return a === b; + } + } + + return { + "string": useStrictEquality, + "boolean": useStrictEquality, + "number": useStrictEquality, + "null": useStrictEquality, + "undefined": useStrictEquality, + + "nan": function (b) { + return isNaN(b); + }, + + "date": function (b, a) { + return QUnit.objectType(b) === "date" && a.valueOf() === b.valueOf(); + }, + + "regexp": function (b, a) { + return QUnit.objectType(b) === "regexp" && + a.source === b.source && // the regex itself + a.global === b.global && // and its modifers (gmi) ... + a.ignoreCase === b.ignoreCase && + a.multiline === b.multiline; + }, + + // - skip when the property is a method of an instance (OOP) + // - abort otherwise, + // initial === would have catch identical references anyway + "function": function () { + var caller = callers[callers.length - 1]; + return caller !== Object && + typeof caller !== "undefined"; + }, + + "array": function (b, a) { + var i, j, loop; + var len; + + // b could be an object literal here + if ( ! (QUnit.objectType(b) === "array")) { + return false; + } + + len = a.length; + if (len !== b.length) { // safe and faster + return false; + } + + //track reference to avoid circular references + parents.push(a); + for (i = 0; i < len; i++) { + loop = false; + for(j=0;j= 0) { + type = "array"; + } else { + type = typeof obj; + } + return type; + }, + separator:function() { + return this.multiline ? this.HTML ? '
              ' : '\n' : this.HTML ? ' ' : ' '; + }, + indent:function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing + if ( !this.multiline ) + return ''; + var chr = this.indentChar; + if ( this.HTML ) + chr = chr.replace(/\t/g,' ').replace(/ /g,' '); + return Array( this._depth_ + (extra||0) ).join(chr); + }, + up:function( a ) { + this._depth_ += a || 1; + }, + down:function( a ) { + this._depth_ -= a || 1; + }, + setParser:function( name, parser ) { + this.parsers[name] = parser; + }, + // The next 3 are exposed so you can use them + quote:quote, + literal:literal, + join:join, + // + _depth_: 1, + // This is the list of parsers, to modify them, use jsDump.setParser + parsers:{ + window: '[Window]', + document: '[Document]', + error:'[ERROR]', //when no parser is found, shouldn't happen + unknown: '[Unknown]', + 'null':'null', + 'undefined':'undefined', + 'function':function( fn ) { + var ret = 'function', + name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE + if ( name ) + ret += ' ' + name; + ret += '('; + + ret = [ ret, QUnit.jsDump.parse( fn, 'functionArgs' ), '){'].join(''); + return join( ret, QUnit.jsDump.parse(fn,'functionCode'), '}' ); + }, + array: array, + nodelist: array, + arguments: array, + object:function( map ) { + var ret = [ ]; + QUnit.jsDump.up(); + for ( var key in map ) + ret.push( QUnit.jsDump.parse(key,'key') + ': ' + QUnit.jsDump.parse(map[key]) ); + QUnit.jsDump.down(); + return join( '{', ret, '}' ); + }, + node:function( node ) { + var open = QUnit.jsDump.HTML ? '<' : '<', + close = QUnit.jsDump.HTML ? '>' : '>'; + + var tag = node.nodeName.toLowerCase(), + ret = open + tag; + + for ( var a in QUnit.jsDump.DOMAttrs ) { + var val = node[QUnit.jsDump.DOMAttrs[a]]; + if ( val ) + ret += ' ' + a + '=' + QUnit.jsDump.parse( val, 'attribute' ); + } + return ret + close + open + '/' + tag + close; + }, + functionArgs:function( fn ) {//function calls it internally, it's the arguments part of the function + var l = fn.length; + if ( !l ) return ''; + + var args = Array(l); + while ( l-- ) + args[l] = String.fromCharCode(97+l);//97 is 'a' + return ' ' + args.join(', ') + ' '; + }, + key:quote, //object calls it internally, the key part of an item in a map + functionCode:'[code]', //function calls it internally, it's the content of the function + attribute:quote, //node calls it internally, it's an html attribute value + string:quote, + date:quote, + regexp:literal, //regex + number:literal, + 'boolean':literal + }, + DOMAttrs:{//attributes to dump from nodes, name=>realName + id:'id', + name:'name', + 'class':'className' + }, + HTML:false,//if true, entities are escaped ( <, >, \t, space and \n ) + indentChar:' ',//indentation unit + multiline:true //if true, items in a collection, are separated by a \n, else just a space. + }; + + return jsDump; +})(); + +// from Sizzle.js +function getText( elems ) { + var ret = "", elem; + + for ( var i = 0; elems[i]; i++ ) { + elem = elems[i]; + + // Get the text from text nodes and CDATA nodes + if ( elem.nodeType === 3 || elem.nodeType === 4 ) { + ret += elem.nodeValue; + + // Traverse everything else, except comment nodes + } else if ( elem.nodeType !== 8 ) { + ret += getText( elem.childNodes ); + } + } + + return ret; +}; + +/* + * Javascript Diff Algorithm + * By John Resig (http://ejohn.org/) + * Modified by Chu Alan "sprite" + * + * Released under the MIT license. + * + * More Info: + * http://ejohn.org/projects/javascript-diff-algorithm/ + * + * Usage: QUnit.diff(expected, actual) + * + * QUnit.diff("the quick brown fox jumped over", "the quick fox jumps over") == "the quick brown fox jumped jumps over" + */ +QUnit.diff = (function() { + function diff(o, n){ + var ns = new Object(); + var os = new Object(); + + for (var i = 0; i < n.length; i++) { + if (ns[n[i]] == null) + ns[n[i]] = { + rows: new Array(), + o: null + }; + ns[n[i]].rows.push(i); + } + + for (var i = 0; i < o.length; i++) { + if (os[o[i]] == null) + os[o[i]] = { + rows: new Array(), + n: null + }; + os[o[i]].rows.push(i); + } + + for (var i in ns) { + if (ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1) { + n[ns[i].rows[0]] = { + text: n[ns[i].rows[0]], + row: os[i].rows[0] + }; + o[os[i].rows[0]] = { + text: o[os[i].rows[0]], + row: ns[i].rows[0] + }; + } + } + + for (var i = 0; i < n.length - 1; i++) { + if (n[i].text != null && n[i + 1].text == null && n[i].row + 1 < o.length && o[n[i].row + 1].text == null && + n[i + 1] == o[n[i].row + 1]) { + n[i + 1] = { + text: n[i + 1], + row: n[i].row + 1 + }; + o[n[i].row + 1] = { + text: o[n[i].row + 1], + row: i + 1 + }; + } + } + + for (var i = n.length - 1; i > 0; i--) { + if (n[i].text != null && n[i - 1].text == null && n[i].row > 0 && o[n[i].row - 1].text == null && + n[i - 1] == o[n[i].row - 1]) { + n[i - 1] = { + text: n[i - 1], + row: n[i].row - 1 + }; + o[n[i].row - 1] = { + text: o[n[i].row - 1], + row: i - 1 + }; + } + } + + return { + o: o, + n: n + }; + } + + return function(o, n){ + o = o.replace(/\s+$/, ''); + n = n.replace(/\s+$/, ''); + var out = diff(o == "" ? [] : o.split(/\s+/), n == "" ? [] : n.split(/\s+/)); + + var str = ""; + + var oSpace = o.match(/\s+/g); + if (oSpace == null) { + oSpace = [" "]; + } + else { + oSpace.push(" "); + } + var nSpace = n.match(/\s+/g); + if (nSpace == null) { + nSpace = [" "]; + } + else { + nSpace.push(" "); + } + + if (out.n.length == 0) { + for (var i = 0; i < out.o.length; i++) { + str += '' + out.o[i] + oSpace[i] + ""; + } + } + else { + if (out.n[0].text == null) { + for (n = 0; n < out.o.length && out.o[n].text == null; n++) { + str += '' + out.o[n] + oSpace[n] + ""; + } + } + + for (var i = 0; i < out.n.length; i++) { + if (out.n[i].text == null) { + str += '' + out.n[i] + nSpace[i] + ""; + } + else { + var pre = ""; + + for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++) { + pre += '' + out.o[n] + oSpace[n] + ""; + } + str += " " + out.n[i].text + nSpace[i] + pre; + } + } + } + + return str; + }; +})(); + +})(this); diff --git a/app/assets/javascripts/jquery-validation/test/rules.js b/app/assets/javascripts/jquery-validation/test/rules.js new file mode 100644 index 0000000..3eaa377 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/rules.js @@ -0,0 +1,267 @@ +module("rules"); + +test("rules() - internal - input", function() { + var element = $('#firstname'); + var v = $('#testForm1').validate(); + same( element.rules(), { required: true, minlength: 2 } ); +}); + +test("rules(), ignore method:false", function() { + var element = $('#firstnamec'); + var v = $('#testForm1clean').validate({ + rules: { + firstname: { required: false, minlength: 2 } + } + }); + same( element.rules(), { minlength: 2 } ); +}); + +test("rules() - internal - select", function() { + var element = $('#meal'); + var v = $('#testForm3').validate(); + same( element.rules(), {required: true} ); +}); + +test("rules() - external", function() { + var element = $('#text1'); + var v = $('#form').validate({ + rules: { + action: {date: true, min: 5} + } + }); + same( element.rules(), {date: true, min: 5} ); +}); + +test("rules() - external - complete form", function() { + expect(1); + + var methods = $.extend({}, $.validator.methods); + var messages = $.extend({}, $.validator.messages); + + $.validator.addMethod("verifyTest", function() { + ok( true, "method executed" ); + return true; + }); + var v = $('#form').validate({ + rules: { + action: {verifyTest: true} + } + }); + v.form(); + + $.validator.methods = methods; + $.validator.messages = messages; +}); + +test("rules() - internal - input", function() { + var element = $('#form8input'); + var v = $('#testForm8').validate(); + same( element.rules(), {required: true, number: true, rangelength: [2, 8]}); +}); + +test("rules(), merge min/max to range, minlength/maxlength to rangelength", function() { + jQuery.validator.autoCreateRanges = true; + var v = $("#testForm1clean").validate({ + rules: { + firstname: { + min: 5, + max: 12 + }, + lastname: { + minlength: 2, + maxlength: 8 + } + } + }); + same( $("#firstnamec").rules(), {range: [5, 12]}); + + same( $("#lastnamec").rules(), {rangelength: [2, 8]} ); + jQuery.validator.autoCreateRanges = false; +}); + +test("rules(), gurantee that required is at front", function() { + $("#testForm1").validate(); + var v = $("#v2").validate(); + $("#subformRequired").validate(); + function flatRules(element) { + var result = []; + jQuery.each($(element).rules(), function(key, value) { result.push(key) }); + return result.join(" "); + } + equals( "required minlength", flatRules("#firstname") ); + equals( "required maxlength minlength", flatRules("#v2-i6") ); + equals( "required maxlength", flatRules("#co_name") ); + + QUnit.reset(); + jQuery.validator.autoCreateRanges = true; + v = $("#v2").validate(); + equals( "required rangelength", flatRules("#v2-i6") ); + + $("#subformRequired").validate({ + rules: { + co_name: "required" + } + }); + $("#co_name").removeClass(); + equals( "required maxlength", flatRules("#co_name") ); + jQuery.validator.autoCreateRanges = false; +}); + +test("rules(), evaluate dynamic parameters", function() { + expect(2); + var v = $("#testForm1clean").validate({ + rules: { + firstname: { + min: function(element) { + equals( $("#firstnamec")[0], element ); + return 12; + } + } + } + }); + same( $("#firstnamec").rules(), {min:12}); +}); + +test("rules(), class and attribute combinations", function() { + + $.validator.addMethod("customMethod1", function() { + return false; + }, ""); + $.validator.addMethod("customMethod2", function() { + return false; + }, ""); + var v = $("#v2").validate({ + rules: { + 'v2-i7': { + required: true, + minlength: 2, + customMethod: true + } + } + }); + same( $("#v2-i1").rules(), { required: true }); + same( $("#v2-i2").rules(), { required: true, email: true }); + same( $("#v2-i3").rules(), { url: true }); + same( $("#v2-i4").rules(), { required: true, minlength: 2 }); + same( $("#v2-i5").rules(), { required: true, minlength: 2, maxlength: 5, customMethod1: "123" }); + jQuery.validator.autoCreateRanges = true; + same( $("#v2-i5").rules(), { required: true, customMethod1: "123", rangelength: [2, 5] }); + same( $("#v2-i6").rules(), { required: true, customMethod2: true, rangelength: [2, 5] }); + jQuery.validator.autoCreateRanges = false; + same( $("#v2-i7").rules(), { required: true, minlength: 2, customMethod: true }); + + delete $.validator.methods.customMethod1; + delete $.validator.messages.customMethod1; + delete $.validator.methods.customMethod2; + delete $.validator.messages.customMethod2; +}); + +test("rules(), dependency checks", function() { + var v = $("#testForm1clean").validate({ + rules: { + firstname: { + min: { + param: 5, + depends: function(el) { + return /^a/.test($(el).val()); + } + } + }, + lastname: { + max: { + param: 12 + }, + email: { + depends: function() { return true; } + } + } + } + }); + + var rules = $("#firstnamec").rules(); + equals( 0, v.objectLength(rules) ); + + $("#firstnamec").val('ab'); + same( $("#firstnamec").rules(), {min:5}); + + same( $("#lastnamec").rules(), {max:12, email:true}); +}); + +test("rules(), add and remove", function() { + $.validator.addMethod("customMethod1", function() { + return false; + }, ""); + $("#v2").validate(); + var removedAttrs = $("#v2-i5").removeClass("required").removeAttrs("minlength maxlength"); + same( $("#v2-i5").rules(), { customMethod1: "123" }); + + $("#v2-i5").addClass("required").attr(removedAttrs); + same( $("#v2-i5").rules(), { required: true, minlength: 2, maxlength: 5, customMethod1: "123" }); + + $("#v2-i5").addClass("email").attr({min: 5}); + same( $("#v2-i5").rules(), { required: true, email: true, minlength: 2, maxlength: 5, min: 5, customMethod1: "123" }); + + $("#v2-i5").removeClass("required email").removeAttrs("minlength maxlength customMethod1 min"); + same( $("#v2-i5").rules(), {}); + + delete $.validator.methods.customMethod1; + delete $.validator.messages.customMethod1; +}); + +test("rules(), add and remove static rules", function() { + var v = $("#testForm1clean").validate({ + rules: { + firstname: "required date" + } + }); + same( $("#firstnamec").rules(), { required: true, date: true } ); + + $("#firstnamec").rules("remove", "date") + same( $("#firstnamec").rules(), { required: true } ); + $("#firstnamec").rules("add", "email"); + same( $("#firstnamec").rules(), { required: true, email: true } ); + + $("#firstnamec").rules("remove", "required"); + same( $("#firstnamec").rules(), { email: true } ); + + same( $("#firstnamec").rules("remove"), { email: true } ); + same( $("#firstnamec").rules(), { } ); + + $("#firstnamec").rules("add", "required email"); + same( $("#firstnamec").rules(), { required: true, email: true } ); + + + same( $("#lastnamec").rules(), {} ); + $("#lastnamec").rules("add", "required"); + $("#lastnamec").rules("add", { + minlength: 2 + }); + same( $("#lastnamec").rules(), { required: true, minlength: 2 } ); + + + var removedRules = $("#lastnamec").rules("remove", "required email"); + same( $("#lastnamec").rules(), { minlength: 2 } ); + $("#lastnamec").rules("add", removedRules); + same( $("#lastnamec").rules(), { required: true, minlength: 2 } ); +}); + +test("rules(), add messages", function() { + $("#firstnamec").attr("title", null); + var v = $("#testForm1clean").validate({ + rules: { + firstname: "required" + } + }); + $("#testForm1clean").valid(); + $("#firstnamec").valid(); + same( v.settings.messages.firstname, undefined ); + + $("#firstnamec").rules("add", { + messages: { + required: "required" + } + }); + + $("#firstnamec").valid(); + same( v.errorList[0] && v.errorList[0].message, "required" ); +}); diff --git a/app/assets/javascripts/jquery-validation/test/selects/index.html b/app/assets/javascripts/jquery-validation/test/selects/index.html new file mode 100644 index 0000000..8bc8f8f --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/selects/index.html @@ -0,0 +1,444 @@ + + + + + +Fun with jQuery + + + + + + + + + + + +Mission: + + +CODE + + + + + +
              + + + + + + + + + diff --git a/app/assets/javascripts/jquery-validation/test/tabs.html b/app/assets/javascripts/jquery-validation/test/tabs.html new file mode 100644 index 0000000..2fb8a00 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/tabs.html @@ -0,0 +1,78 @@ + + + + +Test for jQuery validate() plugin + + + + + + + + + + + + + + + + + +
              + +
              + +
              +
              + A simple comment form with submit validation and default messages +

              + + +

              + + +

              +

              + + +

              +

              + + +

              +
              + +
              +
              + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. +
              +
              + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. +
              +
              +

              + +

              + +
              + + + \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/test/test.js b/app/assets/javascripts/jquery-validation/test/test.js new file mode 100644 index 0000000..8a8611b --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/test.js @@ -0,0 +1,1124 @@ +window.sessionStorage && sessionStorage.clear(); +jQuery.validator.defaults.debug = true; + +module("validator"); + +test("Constructor", function() { + var v1 = $("#testForm1").validate(); + var v2 = $("#testForm1").validate(); + equals( v1, v2, "Calling validate() multiple times must return the same validator instance" ); + equals( v1.elements().length, 3, "validator elements" ); +}); + +test("validate() without elements, with non-form elements", function() { + $("#doesn'texist").validate(); +}); + +test("valid() plugin method", function() { + var form = $("#userForm"); + form.validate(); + ok ( !form.valid(), "Form isn't valid yet" ); + var input = $("#username"); + ok ( !input.valid(), "Input isn't valid either" ); + input.val("Hello world"); + ok ( form.valid(), "Form is now valid" ); + ok ( input.valid(), "Input is valid, too" ); +}); + +test("valid() plugin method", function() { + var form = $("#testForm1"); + form.validate(); + var inputs = form.find("input"); + ok( !inputs.valid(), "all invalid" ); + inputs.not(":first").val("ok"); + ok( !inputs.valid(), "just one invalid" ); + inputs.val("ok"); + ok( inputs.valid(), "all valid" ); +}); + +test("valid() plugin method, special handling for checkable groups", function() { + // rule is defined on first checkbox, must apply to others, too + var checkable = $("#checkable2"); + ok( !checkable.valid(), "must be invalid, not checked yet" ); + checkable.attr("checked", true); + ok( checkable.valid(), "valid, is now checked" ); + checkable.attr("checked", false); + ok( !checkable.valid(), "invalid again" ); + $("#checkable3").attr("checked", true); + ok( checkable.valid(), "valid, third box is checked" ); +}); + +test("addMethod", function() { + expect( 3 ); + $.validator.addMethod("hi", function(value) { + return value == "hi"; + }, "hi me too"); + var method = $.validator.methods.hi, + e = $('#text1')[0]; + ok( !method(e.value, e), "Invalid" ); + e.value = "hi"; + ok( method(e.value, e), "Invalid" ); + ok( jQuery.validator.messages.hi == "hi me too", "Check custom message" ); +}); + +test("addMethod2", function() { + expect( 4 ); + $.validator.addMethod("complicatedPassword", function(value, element, param) { + return this.optional(element) || /\D/.test(value) && /\d/.test(value) + }, "Your password must contain at least one number and one letter"); + var v = jQuery("#form").validate({ + rules: { + action: { complicatedPassword: true } + } + }); + var rule = $.validator.methods.complicatedPassword, + e = $('#text1')[0]; + e.value = ""; + ok( v.element(e) === undefined, "Rule is optional, valid" ); + equals( 0, v.size() ); + e.value = "ko"; + ok( !v.element(e), "Invalid, doesn't contain one of the required characters" ); + e.value = "ko1"; + ok( v.element(e) ); +}); + +test("form(): simple", function() { + expect( 2 ); + var form = $('#testForm1')[0]; + var v = $(form).validate(); + ok( !v.form(), 'Invalid form' ); + $('#firstname').val("hi"); + $('#lastname').val("hi"); + ok( v.form(), 'Valid form' ); +}); + +test("form(): checkboxes: min/required", function() { + expect( 3 ); + var form = $('#testForm6')[0]; + var v = $(form).validate(); + ok( !v.form(), 'Invalid form' ); + $('#form6check1').attr("checked", true); + ok( !v.form(), 'Invalid form' ); + $('#form6check2').attr("checked", true); + ok( v.form(), 'Valid form' ); +}); +test("form(): selects: min/required", function() { + expect( 3 ); + var form = $('#testForm7')[0]; + var v = $(form).validate(); + ok( !v.form(), 'Invalid form' ); + $("#optionxa").attr("selected", true); + ok( !v.form(), 'Invalid form' ); + $("#optionxb").attr("selected", true); + ok( v.form(), 'Valid form' ); +}); + +test("form(): with equalTo", function() { + expect( 2 ); + var form = $('#testForm5')[0]; + var v = $(form).validate(); + ok( !v.form(), 'Invalid form' ); + $('#x1, #x2').val("hi"); + ok( v.form(), 'Valid form' ); +}); + +test("check(): simple", function() { + expect( 3 ); + var element = $('#firstname')[0]; + var v = $('#testForm1').validate(); + ok( v.size() == 0, 'No errors yet' ); + v.check(element); + ok( v.size() == 1, 'error exists' ); + v.errorList = []; + $('#firstname').val("hi"); + v.check(element); + ok( !v.size() == 1, 'No more errors' ); +}); + +test("hide(): input", function() { + expect( 3 ); + var errorLabel = $('#errorFirstname'); + var element = $('#firstname')[0]; + element.value ="bla"; + var v = $('#testForm1').validate(); + errorLabel.show(); + ok( errorLabel.is(":visible"), "Error label visible before validation" ); + ok( v.element(element) ); + ok( errorLabel.is(":hidden"), "Error label not visible after validation" ); +}); + +test("hide(): radio", function() { + expect( 2 ); + var errorLabel = $('#agreeLabel'); + var element = $('#agb')[0]; + element.checked = true; + var v = $('#testForm2').validate({ errorClass: "xerror" }); + errorLabel.show(); + ok( errorLabel.is(":visible"), "Error label visible after validation" ); + v.element(element); + ok( errorLabel.is(":hidden"), "Error label not visible after hiding it" ); +}); + +test("hide(): errorWrapper", function() { + expect(2); + var errorLabel = $('#errorWrapper'); + var element = $('#meal')[0]; + element.selectedIndex = 1; + + errorLabel.show(); + ok( errorLabel.is(":visible"), "Error label visible after validation" ); + var v = $('#testForm3').validate({ wrapper: "li", errorLabelContainer: $("#errorContainer") }); + v.element(element); + ok( errorLabel.is(":hidden"), "Error label not visible after hiding it" ); +}); + +test("hide(): container", function() { + expect(4); + var errorLabel = $('#errorContainer'); + var element = $('#testForm3')[0]; + var v = $('#testForm3').validate({ errorWrapper: "li", errorContainer: $("#errorContainer") }); + v.form(); + ok( errorLabel.is(":visible"), "Error label visible after validation" ); + $('#meal')[0].selectedIndex = 1; + v.form(); + ok( errorLabel.is(":hidden"), "Error label not visible after hiding it" ); + $('#meal')[0].selectedIndex = -1; + v.element("#meal"); + ok( errorLabel.is(":visible"), "Error label visible after validation" ); + $('#meal')[0].selectedIndex = 1; + v.element("#meal"); + ok( errorLabel.is(":hidden"), "Error label not visible after hiding it" ); +}); + +test("valid()", function() { + expect(4); + var errorList = [{name:"meal",message:"foo", element:$("#meal")[0]}]; + var v = $('#testForm3').validate(); + ok( v.valid(), "No errors, must be valid" ); + v.errorList = errorList; + ok( !v.valid(), "One error, must be invalid" ); + QUnit.reset(); + v = $('#testForm3').validate({ submitHandler: function() { + ok( false, "Submit handler was called" ); + }}); + ok( v.valid(), "No errors, must be valid and returning true, even with the submit handler" ); + v.errorList = errorList; + ok( !v.valid(), "One error, must be invalid, no call to submit handler" ); +}); + +test("submitHandler keeps submitting button", function() { + $("#userForm").validate({ + debug: true, + submitHandler: function(form) { + // dunno how to test this better; this tests the implementation that uses a hidden input + var hidden = $(form).find("input:hidden")[0]; + same(hidden.value, button.value) + same(hidden.name, button.name) + } + }); + $("#username").val("bla"); + var button = $("#userForm :submit")[0] + $(button).triggerHandler("click"); + $("#userForm").submit(); +}); + +test("showErrors()", function() { + expect( 4 ); + var errorLabel = $('#errorFirstname').hide(); + var element = $('#firstname')[0]; + var v = $('#testForm1').validate(); + ok( errorLabel.is(":hidden") ); + equals( 0, $("label.error[for=lastname]").size() ); + v.showErrors({"firstname": "required", "lastname": "bla"}); + equals( true, errorLabel.is(":visible") ); + equals( true, $("label.error[for=lastname]").is(":visible") ); +}); + +test("showErrors(), allow empty string and null as default message", function() { + $("#userForm").validate({ + rules: { + username: { + required: true, + minlength: 3 + } + }, + messages: { + username: { + required: "", + minlength: "too short" + } + } + }); + ok( !$("#username").valid() ); + equals( "", $("label.error[for=username]").text() ); + + $("#username").val("ab"); + ok( !$("#username").valid() ); + equals( "too short", $("label.error[for=username]").text() ); + + $("#username").val("abc"); + ok( $("#username").valid() ); + ok( $("label.error[for=username]").is(":hidden") ); +}); + +test("showErrors() - external messages", function() { + expect( 4 ); + var methods = $.extend({}, $.validator.methods); + var messages = $.extend({}, $.validator.messages); + $.validator.addMethod("foo", function() { return false; }); + $.validator.addMethod("bar", function() { return false; }); + equals( 0, $("#testForm4 label.error[for=f1]").size() ); + equals( 0, $("#testForm4 label.error[for=f2]").size() ); + var form = $('#testForm4')[0]; + var v = $(form).validate({ + messages: { + f1: "Please!", + f2: "Wohoo!" + } + }); + v.form(); + equals( $("#testForm4 label.error[for=f1]").text(), "Please!" ); + equals( $("#testForm4 label.error[for=f2]").text(), "Wohoo!" ); + + $.validator.methods = methods; + $.validator.messages = messages; +}); + +test("showErrors() - custom handler", function() { + expect(5); + var v = $('#testForm1').validate({ + showErrors: function(errorMap, errorList) { + equals( v, this ); + equals( v.errorList, errorList ); + equals( v.errorMap, errorMap ); + equals( "buga", errorMap.firstname ); + equals( "buga", errorMap.lastname ); + } + }); + v.form(); +}); + +test("option: (un)highlight, default", function() { + $("#testForm1").validate(); + var e = $("#firstname") + ok( !e.hasClass("error") ); + ok( !e.hasClass("valid") ); + e.valid() + ok( e.hasClass("error") ); + ok( !e.hasClass("valid") ); + e.val("hithere").valid() + ok( !e.hasClass("error") ); + ok( e.hasClass("valid") ); +}); + +test("option: (un)highlight, nothing", function() { + expect(3); + $("#testForm1").validate({ + highlight: false, + unhighlight: false + }); + var e = $("#firstname") + ok( !e.hasClass("error") ); + e.valid() + ok( !e.hasClass("error") ); + e.valid() + ok( !e.hasClass("error") ); +}); + +test("option: (un)highlight, custom", function() { + expect(5); + $("#testForm1clean").validate({ + highlight: function(element, errorClass) { + equals( "invalid", errorClass ); + $(element).hide(); + }, + unhighlight: function(element, errorClass) { + equals( "invalid", errorClass ) + $(element).show(); + }, + errorClass: "invalid", + rules: { + firstname: "required" + } + }); + var e = $("#firstnamec") + ok( e.is(":visible") ); + e.valid() + ok( !e.is(":visible") ); + e.val("hithere").valid() + ok( e.is(":visible") ); +}); + +test("option: (un)highlight, custom2", function() { + expect(6); + $("#testForm1").validate({ + highlight: function(element, errorClass) { + $(element).addClass(errorClass); + $(element.form).find("label[for=" + element.id + "]").addClass(errorClass); + }, + unhighlight: function(element, errorClass) { + $(element).removeClass(errorClass); + $(element.form).find("label[for=" + element.id + "]").removeClass(errorClass); + }, + errorClass: "invalid" + }); + var e = $("#firstname") + var l = $("#errorFirstname") + ok( !e.is(".invalid") ); + ok( !l.is(".invalid") ); + e.valid() + ok( e.is(".invalid") ); + ok( l.is(".invalid") ); + e.val("hithere").valid() + ok( !e.is(".invalid") ); + ok( !l.is(".invalid") ); +}); + +test("option: focusCleanup default false", function() { + var form = $("#userForm") + form.validate(); + form.valid(); + ok( form.is(":has(label.error[for=username]:visible)")); + $("#username").focus(); + ok( form.is(":has(label.error[for=username]:visible)")); +}); + +test("option: focusCleanup true", function() { + var form = $("#userForm") + form.validate({ + focusCleanup: true + }); + form.valid(); + ok( form.is(":has(label.error[for=username]:visible)") ); + $("#username").focus().trigger("focusin"); + ok( !form.is(":has(label.error[for=username]:visible)") ); +}); + +test("option: focusCleanup with wrapper", function() { + var form = $("#userForm") + form.validate({ + focusCleanup: true, + wrapper: "span" + }); + form.valid(); + ok( form.is(":has(span:visible:has(label.error[for=username]))") ); + $("#username").focus().trigger("focusin"); + ok( !form.is(":has(span:visible:has(label.error[for=username]))") ); +}); + +test("elements() order", function() { + var container = $("#orderContainer"); + var v = $("#elementsOrder").validate({ + errorLabelContainer: container, + wrap: "li" + }); + deepEqual( v.elements().map(function() { + return $(this).attr("id"); + }).get(), ["order1", "order2", "order3", "order4", "order5", "order6"], "elements must be in document order" ); + v.form(); + deepEqual( container.children().map(function() { + return $(this).attr("for"); + }).get(), ["order1", "order2", "order3", "order4", "order5", "order6"], "labels in error container must be in document order" ); +}); + +test("defaultMessage(), empty title is ignored", function() { + var v = $("#userForm").validate(); + equals( "This field is required.", v.defaultMessage($("#username")[0], "required") ); +}); + +test("formatAndAdd", function() { + expect(4); + var v = $("#form").validate(); + var fakeElement = { form: $("#form")[0], name: "bar" }; + v.formatAndAdd(fakeElement, {method: "maxlength", parameters: 2}) + equals( "Please enter no more than 2 characters.", v.errorList[0].message ); + equals( "bar", v.errorList[0].element.name ); + + v.formatAndAdd(fakeElement, {method: "range", parameters:[2,4]}) + equals( "Please enter a value between 2 and 4.", v.errorList[1].message ); + + v.formatAndAdd(fakeElement, {method: "range", parameters:[0,4]}) + equals( "Please enter a value between 0 and 4.", v.errorList[2].message ); +}); + +test("formatAndAdd2", function() { + expect(3); + var v = $("#form").validate(); + var fakeElement = { form: $("#form")[0], name: "bar" }; + jQuery.validator.messages.test1 = function(param, element) { + equals( v, this ); + equals( 0, param ); + return "element " + element.name + " is not valid"; + }; + v.formatAndAdd(fakeElement, {method: "test1", parameters: 0}) + equals( "element bar is not valid", v.errorList[0].message ); +}); + +test("formatAndAdd, auto detect substitution string", function() { + var v = $("#testForm1clean").validate({ + rules: { + firstname: { + required: true, + rangelength: [5, 10] + } + }, + messages: { + firstname: { + rangelength: "at least ${0}, up to {1}" + } + } + }); + $("#firstnamec").val("abc"); + v.form(); + equals( "at least 5, up to 10", v.errorList[0].message ); +}) + +test("error containers, simple", function() { + expect(14); + var container = $("#simplecontainer"); + var v = $("#form").validate({ + errorLabelContainer: container, + showErrors: function() { + container.find("h3").html( jQuery.validator.format("There are {0} errors in your form.", this.size()) ); + this.defaultShowErrors(); + } + }); + + v.prepareForm(); + ok( v.valid(), "form is valid" ); + equals( 0, container.find("label").length, "There should be no error labels" ); + equals( "", container.find("h3").html() ); + + v.prepareForm(); + v.errorList = [{message:"bar", element: {name:"foo"}}, {message: "necessary", element: {name:"required"}}]; + ok( !v.valid(), "form is not valid after adding errors manually" ); + v.showErrors(); + equals( container.find("label").length, 2, "There should be two error labels" ); + ok( container.is(":visible"), "Check that the container is visible" ); + container.find("label").each(function() { + ok( $(this).is(":visible"), "Check that each label is visible" ); + }); + equals( "There are 2 errors in your form.", container.find("h3").html() ); + + v.prepareForm(); + ok( v.valid(), "form is valid after a reset" ); + v.showErrors(); + equals( container.find("label").length, 2, "There should still be two error labels" ); + ok( container.is(":hidden"), "Check that the container is hidden" ); + container.find("label").each(function() { + ok( $(this).is(":hidden"), "Check that each label is hidden" ); + }); +}); + +test("error containers, with labelcontainer I", function() { + expect(16); + var container = $("#container"), + labelcontainer = $("#labelcontainer"); + var v = $("#form").validate({ + errorContainer: container, + errorLabelContainer: labelcontainer, + wrapper: "li" + }); + + ok( v.valid(), "form is valid" ); + equals( 0, container.find("label").length, "There should be no error labels in the container" ); + equals( 0, labelcontainer.find("label").length, "There should be no error labels in the labelcontainer" ); + equals( 0, labelcontainer.find("li").length, "There should be no lis labels in the labelcontainer" ); + + v.errorList = [{message:"bar", element: {name:"foo"}}, {name: "required", message: "necessary", element: {name:"required"}}]; + ok( !v.valid(), "form is not valid after adding errors manually" ); + v.showErrors(); + equals( 0, container.find("label").length, "There should be no error label in the container" ); + equals( 2, labelcontainer.find("label").length, "There should be two error labels in the labelcontainer" ); + equals( 2, labelcontainer.find("li").length, "There should be two error lis in the labelcontainer" ); + ok( container.is(":visible"), "Check that the container is visible" ); + ok( labelcontainer.is(":visible"), "Check that the labelcontainer is visible" ); + var labels = labelcontainer.find("label").each(function() { + ok( $(this).is(":visible"), "Check that each label is visible1" ); + equals( "li", $(this).parent()[0].tagName.toLowerCase(), "Check that each label is wrapped in an li" ); + ok( $(this).parent("li").is(":visible"), "Check that each parent li is visible" ); + }); +}); + +test("errorcontainer, show/hide only on submit", function() { + expect(14); + var container = $("#container"); + var labelContainer = $("#labelcontainer"); + var v = $("#testForm1").bind("invalid-form.validate", function() { + ok( true, "invalid-form event triggered called" ); + }).validate({ + errorContainer: container, + errorLabelContainer: labelContainer, + showErrors: function() { + container.html( jQuery.validator.format("There are {0} errors in your form.", this.numberOfInvalids()) ); + ok( true, "showErrors called" ); + this.defaultShowErrors(); + } + }); + equals( "", container.html(), "must be empty" ); + equals( "", labelContainer.html(), "must be empty" ); + // validate whole form, both showErrors and invalidHandler must be called once + // preferably invalidHandler first, showErrors second + ok( !v.form(), "invalid form" ); + equals( 2, labelContainer.find("label").length ); + equals( "There are 2 errors in your form.", container.html() ); + ok( labelContainer.is(":visible"), "must be visible" ); + ok( container.is(":visible"), "must be visible" ); + + $("#firstname").val("hix").keyup(); + $("#testForm1").triggerHandler("keyup", [jQuery.event.fix({ type: "keyup", target: $("#firstname")[0] })]); + equals( 1, labelContainer.find("label:visible").length ); + equals( "There are 1 errors in your form.", container.html() ); + + $("#lastname").val("abc"); + ok( v.form(), "Form now valid, trigger showErrors but not invalid-form" ); +}); + +test("option invalidHandler", function() { + expect(1); + var v = $("#testForm1clean").validate({ + invalidHandler: function() { + ok( true, "invalid-form event triggered called" ); + start(); + } + }); + $("#usernamec").val("asdf").rules("add", { required: true, remote: "users.php" }); + stop(); + $("#testForm1clean").submit(); +}); + +test("findByName()", function() { + deepEqual( new $.validator({}, document.getElementById("form")).findByName(document.getElementById("radio1").name).get(), $("#form").find("[name=radio1]").get() ); +}); + +test("focusInvalid()", function() { + // TODO when using custom focusin, this is triggered just once + // TODO when using 1.4 focusin, triggered twice; fix once not testing against 1.3 anymore + // expect(1); + var inputs = $("#testForm1 input").focus(function() { + equals( inputs[0], this, "focused first element" ); + }); + var v = $("#testForm1").validate(); + v.form(); + v.focusInvalid(); +}); + +test("findLastActive()", function() { + expect(3); + var v = $("#testForm1").validate(); + ok( !v.findLastActive() ); + v.form(); + v.focusInvalid(); + equals( v.findLastActive(), $("#firstname")[0] ); + var lastActive = $("#lastname").trigger("focus").trigger("focusin")[0]; + equals( v.lastActive, lastActive ); +}); + +test("validating multiple checkboxes with 'required'", function() { + expect(3); + var checkboxes = $("#form input[name=check3]").attr("checked", false); + equal(checkboxes.size(), 5); + var v = $("#form").validate({ + rules: { + check3: "required" + } + }); + v.form(); + equal(v.size(), 1); + checkboxes.filter(":last").attr("checked", true); + v.form(); + equal(v.size(), 0); +}); + +test("dynamic form", function() { + var counter = 0; + function add() { + $("").appendTo("#testForm2"); + } + function errors(expected, message) { + equals(expected, v.size(), message ); + } + var v = $("#testForm2").validate(); + v.form(); + errors(1); + add(); + v.form(); + errors(2); + add(); + v.form(); + errors(3); + $("#testForm2 input[name=list1]").remove(); + v.form(); + errors(2); + add(); + v.form(); + errors(3); + $("#testForm2 input[name^=list]").remove(); + v.form(); + errors(1); + $("#agb").attr("disabled", true); + v.form(); + errors(0); + $("#agb").attr("disabled", false); + v.form(); + errors(1); +}); + +test("idOrName()", function() { + expect(4); + var v = $("#testForm1").validate(); + equals( "form8input", v.idOrName( $("#form8input")[0] ) ); + equals( "check", v.idOrName( $("#form6check1")[0] ) ); + equals( "agree", v.idOrName( $("#agb")[0] ) ); + equals( "button", v.idOrName( $("#form :button")[0] ) ); +}); + +test("resetForm()", function() { + function errors(expected, message) { + equals(expected, v.size(), message ); + } + var v = $("#testForm1").validate(); + v.form(); + errors(2); + $("#firstname").val("hiy"); + v.resetForm(); + errors(0); + equals("", $("#firstname").val(), "form plugin is included, therefor resetForm must also reset inputs, not only errors"); +}); + +test("message from title", function() { + var v = $("#withTitle").validate(); + v.checkForm(); + equals(v.errorList[0].message, "fromtitle", "title not used"); +}); + +test("ignoreTitle", function() { + var v = $("#withTitle").validate({ignoreTitle:true}); + v.checkForm(); + equals(v.errorList[0].message, $.validator.messages["required"], "title used when it should have been ignored"); +}); + +test("ajaxSubmit", function() { + expect(1); + stop(); + $("#user").val("Peter"); + $("#password").val("foobar"); + jQuery("#signupForm").validate({ + submitHandler: function(form) { + jQuery(form).ajaxSubmit({ + success: function(response) { + equals("Hi Peter, welcome back.", response); + start(); + } + }); + } + }); + jQuery("#signupForm").triggerHandler("submit"); +}); + + +module("misc"); + +test("success option", function() { + expect(7); + equals( "", $("#firstname").val() ); + var v = $("#testForm1").validate({ + success: "valid" + }); + var label = $("#testForm1 label"); + ok( label.is(".error") ); + ok( !label.is(".valid") ); + v.form(); + ok( label.is(".error") ); + ok( !label.is(".valid") ); + $("#firstname").val("hi"); + v.form(); + ok( label.is(".error") ); + ok( label.is(".valid") ); +}); + +test("success option2", function() { + expect(5); + equals( "", $("#firstname").val() ); + var v = $("#testForm1").validate({ + success: "valid" + }); + var label = $("#testForm1 label"); + ok( label.is(".error") ); + ok( !label.is(".valid") ); + $("#firstname").val("hi"); + v.form(); + ok( label.is(".error") ); + ok( label.is(".valid") ); +}); + +test("success option3", function() { + expect(5); + equals( "", $("#firstname").val() ); + $("#errorFirstname").remove(); + var v = $("#testForm1").validate({ + success: "valid" + }); + equals( 0, $("#testForm1 label").size() ); + $("#firstname").val("hi"); + v.form(); + var labels = $("#testForm1 label"); + equals( 3, labels.size() ); + ok( labels.eq(0).is(".valid") ); + ok( !labels.eq(1).is(".valid") ); +}); + +test("successlist", function() { + var v = $("#form").validate({ success: "xyz" }); + v.form(); + equals(0, v.successList.length); +}); + +test("success isn't called for optional elements", function() { + expect(4); + equals( "", $("#firstname").removeClass().val() ); + $("#something").remove(); + $("#lastname").remove(); + $("#errorFirstname").remove(); + var v = $("#testForm1").validate({ + success: function() { + ok( false, "don't call success for optional elements!" ); + }, + rules: { + firstname: "email" + } + }); + equals( 0, $("#testForm1 label").size() ); + v.form(); + equals( 0, $("#testForm1 label").size() ); + $("#firstname").valid(); + equals( 0, $("#testForm1 label").size() ); +}); + +test("all rules are evaluated even if one returns a dependency-mistmatch", function() { + expect(6); + equals( "", $("#firstname").removeClass().val() ); + $("#lastname").remove(); + $("#errorFirstname").remove(); + $.validator.addMethod("custom1", function() { + ok( true, "custom method must be evaluated" ); + return true; + }, ""); + var v = $("#testForm1").validate({ + rules: { + firstname: {email:true, custom1: true} + } + }); + equals( 0, $("#testForm1 label").size() ); + v.form(); + equals( 0, $("#testForm1 label").size() ); + $("#firstname").valid(); + equals( 0, $("#testForm1 label").size() ); + + delete $.validator.methods.custom1; + delete $.validator.messages.custom1; +}); + +test("messages", function() { + var m = jQuery.validator.messages; + equals( "Please enter no more than 0 characters.", m.maxlength(0) ); + equals( "Please enter at least 1 characters.", m.minlength(1) ); + equals( "Please enter a value between 1 and 2 characters long.", m.rangelength([1, 2]) ); + equals( "Please enter a value less than or equal to 1.", m.max(1) ); + equals( "Please enter a value greater than or equal to 0.", m.min(0) ); + equals( "Please enter a value between 1 and 2.", m.range([1, 2]) ); +}); + +test("jQuery.validator.format", function() { + equals( "Please enter a value between 0 and 1.", jQuery.validator.format("Please enter a value between {0} and {1}.", 0, 1) ); + equals( "0 is too fast! Enter a value smaller then 0 and at least -15", jQuery.validator.format("{0} is too fast! Enter a value smaller then {0} and at least {1}", 0, -15) ); + var template = jQuery.validator.format("{0} is too fast! Enter a value smaller then {0} and at least {1}"); + equals( "0 is too fast! Enter a value smaller then 0 and at least -15", template(0, -15) ); + template = jQuery.validator.format("Please enter a value between {0} and {1}."); + equals( "Please enter a value between 1 and 2.", template([1, 2]) ); +}); + +test("option: ignore", function() { + var v = $("#testForm1").validate({ + ignore: "[name=lastname]" + }); + v.form(); + equals( 1, v.size() ); +}); + +test("option: subformRequired", function() { + jQuery.validator.addMethod("billingRequired", function(value, element) { + if ($("#bill_to_co").is(":checked")) + return $(element).parents("#subform").length; + return !this.optional(element); + }, ""); + var v = $("#subformRequired").validate(); + v.form(); + equals( 1, v.size() ); + $("#bill_to_co").attr("checked", false); + v.form(); + equals( 2, v.size() ); + + delete $.validator.methods.billingRequired; + delete $.validator.messages.billingRequired; +}); + +module("expressions"); + +test("expression: :blank", function() { + var e = $("#lastname")[0]; + equals( 1, $(e).filter(":blank").length ); + e.value = " "; + equals( 1, $(e).filter(":blank").length ); + e.value = " " + equals( 1, $(e).filter(":blank").length ); + e.value= " a "; + equals( 0, $(e).filter(":blank").length ); +}); + +test("expression: :filled", function() { + var e = $("#lastname")[0]; + equals( 0, $(e).filter(":filled").length ); + e.value = " "; + equals( 0, $(e).filter(":filled").length ); + e.value = " " + equals( 0, $(e).filter(":filled").length ); + e.value= " a "; + equals( 1, $(e).filter(":filled").length ); +}); + +test("expression: :unchecked", function() { + var e = $("#check2")[0]; + equals( 1, $(e).filter(":unchecked").length ); + e.checked = true; + equals( 0, $(e).filter(":unchecked").length ); + e.checked = false; + equals( 1, $(e).filter(":unchecked").length ); +}); + +module("events"); + +test("validate on blur", function() { + function errors(expected, message) { + equals(v.size(), expected, message ); + } + function labels(expected) { + equals(v.errors().filter(":visible").size(), expected); + } + function blur(target) { + target.trigger("blur").trigger("focusout"); + } + $("#errorFirstname").hide(); + var e = $("#firstname"); + var v = $("#testForm1").validate(); + $("#something").val(""); + blur(e); + errors(0, "No value yet, required is skipped on blur"); + labels(0); + e.val("h"); + blur(e); + errors(1, "Required was ignored, but as something was entered, check other rules, minlength isn't met"); + labels(1); + e.val("hh"); + blur(e); + errors(0, "All is fine"); + labels(0); + e.val(""); + v.form(); + errors(3, "Submit checks all rules, both fields invalid"); + labels(3); + blur(e); + errors(1, "Blurring the field results in emptying the error list first, then checking the invalid field: its still invalid, don't remove the error" ); + labels(3); + e.val("h"); + blur(e); + errors(1, "Entering a single character fulfills required, but not minlength: 2, still invalid"); + labels(3); + e.val("hh"); + blur(e); + errors(0, "Both required and minlength are met, no errors left"); + labels(2); +}); + +test("validate on keyup", function() { + function errors(expected, message) { + equals(expected, v.size(), message ); + } + function keyup(target) { + target.trigger("keyup"); + } + var e = $("#firstname"); + var v = $("#testForm1").validate(); + keyup(e); + errors(0, "No value, no errors"); + e.val("a"); + keyup(e); + errors(0, "Value, but not invalid"); + e.val(""); + v.form(); + errors(2, "Both invalid"); + keyup(e); + errors(1, "Only one field validated, still invalid"); + e.val("hh"); + keyup(e); + errors(0, "Not invalid anymore"); + e.val("h"); + keyup(e); + errors(1, "Field didn't loose focus, so validate again, invalid"); + e.val("hh"); + keyup(e); + errors(0, "Valid"); +}); + +test("validate on not keyup, only blur", function() { + function errors(expected, message) { + equals(expected, v.size(), message ); + } + var e = $("#firstname"); + var v = $("#testForm1").validate({ + onkeyup: false + }); + errors(0); + e.val("a"); + e.trigger("keyup"); + e.keyup(); + errors(0); + e.trigger("blur").trigger("focusout"); + errors(1); +}); + +test("validate on keyup and blur", function() { + function errors(expected, message) { + equals(expected, v.size(), message ); + } + var e = $("#firstname"); + var v = $("#testForm1").validate(); + errors(0); + e.val("a"); + e.trigger("keyup"); + errors(0); + e.trigger("blur").trigger("focusout"); + errors(1); +}); + +test("validate email on keyup and blur", function() { + function errors(expected, message) { + equals(expected, v.size(), message ); + } + var e = $("#firstname"); + var v = $("#testForm1").validate(); + v.form(); + errors(2); + e.val("a"); + e.trigger("keyup"); + errors(1); + e.val("aa"); + e.trigger("keyup"); + errors(0); +}); + +test("validate checkbox on click", function() { + function errors(expected, message) { + equals(expected, v.size(), message ); + } + function trigger(element) { + element.click(); + // triggered click event screws up checked-state in 1.4 + element.valid(); + } + var e = $("#check2"); + var v = $("#form").validate({ + rules: { + check2: "required" + } + }); + trigger(e); + errors(0); + trigger(e); + equals( false, v.form() ); + errors(1); + trigger(e); + errors(0); + trigger(e); + errors(1); +}); + +test("validate multiple checkbox on click", function() { + function errors(expected, message) { + equals(expected, v.size(), message ); + } + function trigger(element) { + element.click(); + // triggered click event screws up checked-state in 1.4 + element.valid(); + } + var e1 = $("#check1").attr("checked", false); + var e2 = $("#check1b"); + var v = $("#form").validate({ + rules: { + check: { + required: true, + minlength: 2 + } + } + }); + trigger(e1); + trigger(e2); + errors(0); + trigger(e2); + equals( false, v.form() ); + errors(1); + trigger(e2); + errors(0); + trigger(e2); + errors(1); +}); + +test("validate radio on click", function() { + function errors(expected, message) { + equals(expected, v.size(), message ); + } + function trigger(element) { + element.click(); + // triggered click event screws up checked-state in 1.4 + element.valid(); + } + var e1 = $("#radio1"); + var e2 = $("#radio1a"); + var v = $("#form").validate({ + rules: { + radio1: "required" + } + }); + errors(0); + equals( false, v.form() ); + errors(1); + trigger(e2); + errors(0); + trigger(e1); + errors(0); +}); + +module("ajax"); + +test("check the serverside script works", function() { + stop(); + $.getJSON("users.php", {value: 'asd'}, function(response) { + ok( response, "yet available" ); + $.getJSON("users.php", {username: "asdf"}, function(response) { + ok( !response, "already taken" ); + start(); + }); + }); +}); + +test("check the serverside script works2", function() { + stop(); + $.getJSON("users2.php", {value: 'asd'}, function(response) { + ok( response, "yet available" ); + $.getJSON("users.php", {username: "asdf"}, function(response) { + ok( !response, "asdf is already taken, please try something else" ); + start(); + }); + }); +}); diff --git a/app/assets/javascripts/jquery-validation/test/users.php b/app/assets/javascripts/jquery-validation/test/users.php new file mode 100644 index 0000000..08b8fd5 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/users.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/test/users2.php b/app/assets/javascripts/jquery-validation/test/users2.php new file mode 100644 index 0000000..3a185cd --- /dev/null +++ b/app/assets/javascripts/jquery-validation/test/users2.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/todo b/app/assets/javascripts/jquery-validation/todo new file mode 100644 index 0000000..702a496 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/todo @@ -0,0 +1,172 @@ +1.3 +--- + +- checkout datejs.com for a proper date implementation -> complete but very heavy parser, currently overkill + +- rewrite required-method to use jQuery's extended val() on selects[/radios/checkboxes] +- consider a field-validator object that encapsulates a single element and all methods working on it +- export API browser +- add example/support for other URL schemes like svn://.... +- document min/max/range methods for checkboxes/selects + +/** + * Return false, if the element is + * + * - some kind of text input and its value is too short + * + * - a set of checkboxes has not enough boxes checked + * + * - a select and has not enough options selected + * + * Works with all kind of text inputs, checkboxes and select. + * + * @example + * @desc Declares an optional input element with at least 5 characters (or none at all). + * + * @example + * @desc Declares an input element that must have at least 5 characters. + * + * @example
              + * Spam + * + * + * + * + *
              + * @desc Specifies a group of checkboxes. To validate, at least two checkboxes must be selected. + * + * @param Number min + * @name jQuery.validator.methods.minLength + * @type Boolean + * @cat Plugins/Validate/Methods + */ + + /** + * Return false, if the element is + * + * - some kind of text input and its value is too short or too long + * + * - a set of checkboxes has not enough or too many boxes checked + * + * - a select and has not enough or too many options selected + * + * Works with all kind of text inputs, checkboxes and selects. + * + * @example + * @desc Declares an optional input element with at least 3 and at most 5 characters (or none at all). + * + * @example + * @desc Declares an input element that must have at least 3 and at most 5 characters. + * + * @example + * @desc Specifies a select that must have at least two but no more than three options selected. + * + * @param Array min/max + * @name jQuery.validator.methods.rangeLength + * @type Boolean + * @cat Plugins/Validate/Methods + */ + +- document numberOfInvalids and hideErrors + +/** + * Returns the number of invalid elements in the form. + * + * @example $("#myform").validate({ + * showErrors: function() { + * $("#summary").html("Your form contains " + this.numberOfInvalids() + " errors, see details below."); + * this.defaultShowErrors(); + * } + * }); + * @desc Specifies a custom showErrors callback that updates the number of invalid elements each + * time the form or a single element is validated. + * + * @name jQuery.validator.prototype.numberOfInvalids + * @type Number + */ + + /** + * Hides all error messages in this form. + * + * @example var validator = $("#myform").validate(); + * $(".cancel").click(function() { + * validator.hideErrors(); + * }); + * @desc Specifies a custom showErrors callback that updates the number of invalid elements each + * time the form or a single element is validated. + * + * @name jQuery.validator.prototype.hideErrors + */ + +- remove deprecated methods + +- css references + - http://test5.caribmedia.com/CSS/Secrets/members/michiel/floating-forms.html + - http://paularmstrongdesigns.com/projects/awesomeform/ + - http://dnevnikeklektika.com/uni-form/ + +- consider validation on page load, disabling required-checks +- completely rework showErrors: manually settings errors is currently extremely flawed and utterly useless, eg. errors disappear if some other validation is triggered +- add custom event to remote validation for adding more parameters + +- document focusInvalid() +- document validation lifecycle: setup (add event handlers), run validation (prepare form, validate elements, display errors/submit form) + -> show where the user can hook in via callbacks + +- AND depedency: specify multiple expressions as an array + +- add custom events for form and elements instead of more callbacks (additional options/callbacks) + - beforeValidation: Callback, called before doing any validation + - beforeSubmit: Callback, called before submitting the form (default submit or calling submitHandler, if specified) + +- animations!! +- ajax validation: + - in combination with autocomplete (mustmatch company name, fill out address details, validate required) + - validate zip code in comparison to address, if match and state is missing, fill out state +- strong password check/integration: http://phiras.wordpress.com/2007/04/08/password-strength-meter-a-jquery-plugin/ + +- stop firefox password manager to popup before validation - check mozilla bug tracker? + +- overload addMethod with a Option-variant: +$.validator.addMethod({ + name: "custom", + message: "blablabla", + parameteres: false, + handler: function() { ... } +}); + + Examples: + - wordpress comment form, make it a drop-in method + - ajaxForm() integration + - ajaxSubmit with rules-option, more/less options to ajaxSubmit + - watermark integration http://digitalbush.com/projects/watermark-input-plugin + - datepicker integration + - timepicker integration ( http://labs.perifer.se/timedatepicker/ ) + - integration with CakePHP ( https://trac.cakephp.org/ticket/2359 ) + - integration with tabs: http://www.netix.sk/forms/test.html + - intergration with rich-text-editors (FCKEditor, Codepress) + http://www.fyneworks.com/jquery/FCKEditor/ + +2.0 +--- +- attachValidation, removeValidation, validate (with UI), valid (without UI) +- (re)move current addMethod implementation +- move rules plugin option +- move metadata support +- make validate method chainable + -> provide an accessor for the validator if necessary at all +- move a few default methods to additionals, eg. dateXXX, creditcard, definitely accept \ No newline at end of file diff --git a/app/assets/javascripts/jquery-validation/version.txt b/app/assets/javascripts/jquery-validation/version.txt new file mode 100644 index 0000000..27f9cd3 --- /dev/null +++ b/app/assets/javascripts/jquery-validation/version.txt @@ -0,0 +1 @@ +1.8.0 diff --git a/app/assets/javascripts/jquery.ba-bbq.min.js b/app/assets/javascripts/jquery.ba-bbq.min.js new file mode 100644 index 0000000..bcbf248 --- /dev/null +++ b/app/assets/javascripts/jquery.ba-bbq.min.js @@ -0,0 +1,18 @@ +/* + * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010 + * http://benalman.com/projects/jquery-bbq-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this); \ No newline at end of file diff --git a/app/assets/javascripts/jquery.ba-hashchange.js b/app/assets/javascripts/jquery.ba-hashchange.js new file mode 100644 index 0000000..47105f4 --- /dev/null +++ b/app/assets/javascripts/jquery.ba-hashchange.js @@ -0,0 +1,390 @@ +/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ + +// Script: jQuery hashchange event +// +// *Version: 1.3, Last updated: 7/21/2010* +// +// Project Home - http://benalman.com/projects/jquery-hashchange-plugin/ +// GitHub - http://github.com/cowboy/jquery-hashchange/ +// Source - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.js +// (Minified) - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.min.js (0.8kb gzipped) +// +// About: License +// +// Copyright (c) 2010 "Cowboy" Ben Alman, +// Dual licensed under the MIT and GPL licenses. +// http://benalman.com/about/license/ +// +// About: Examples +// +// These working examples, complete with fully commented code, illustrate a few +// ways in which this plugin can be used. +// +// hashchange event - http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/ +// document.domain - http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/ +// +// About: Support and Testing +// +// Information about what version or versions of jQuery this plugin has been +// tested with, what browsers it has been tested in, and where the unit tests +// reside (so you can test it yourself). +// +// jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2 +// Browsers Tested - Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5, +// Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5. +// Unit Tests - http://benalman.com/code/projects/jquery-hashchange/unit/ +// +// About: Known issues +// +// While this jQuery hashchange event implementation is quite stable and +// robust, there are a few unfortunate browser bugs surrounding expected +// hashchange event-based behaviors, independent of any JavaScript +// window.onhashchange abstraction. See the following examples for more +// information: +// +// Chrome: Back Button - http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/ +// Firefox: Remote XMLHttpRequest - http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/ +// WebKit: Back Button in an Iframe - http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/ +// Safari: Back Button from a different domain - http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/ +// +// Also note that should a browser natively support the window.onhashchange +// event, but not report that it does, the fallback polling loop will be used. +// +// About: Release History +// +// 1.3 - (7/21/2010) Reorganized IE6/7 Iframe code to make it more +// "removable" for mobile-only development. Added IE6/7 document.title +// support. Attempted to make Iframe as hidden as possible by using +// techniques from http://www.paciellogroup.com/blog/?p=604. Added +// support for the "shortcut" format $(window).hashchange( fn ) and +// $(window).hashchange() like jQuery provides for built-in events. +// Renamed jQuery.hashchangeDelay to and +// lowered its default value to 50. Added +// and properties plus document-domain.html +// file to address access denied issues when setting document.domain in +// IE6/7. +// 1.2 - (2/11/2010) Fixed a bug where coming back to a page using this plugin +// from a page on another domain would cause an error in Safari 4. Also, +// IE6/7 Iframe is now inserted after the body (this actually works), +// which prevents the page from scrolling when the event is first bound. +// Event can also now be bound before DOM ready, but it won't be usable +// before then in IE6/7. +// 1.1 - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug +// where browser version is incorrectly reported as 8.0, despite +// inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag. +// 1.0 - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special +// window.onhashchange functionality into a separate plugin for users +// who want just the basic event & back button support, without all the +// extra awesomeness that BBQ provides. This plugin will be included as +// part of jQuery BBQ, but also be available separately. + +(function($,window,undefined){ + '$:nomunge'; // Used by YUI compressor. + + // Reused string. + var str_hashchange = 'hashchange', + + // Method / object references. + doc = document, + fake_onhashchange, + special = $.event.special, + + // Does the browser support window.onhashchange? Note that IE8 running in + // IE7 compatibility mode reports true for 'onhashchange' in window, even + // though the event isn't supported, so also test document.documentMode. + doc_mode = doc.documentMode, + supports_onhashchange = 'on' + str_hashchange in window && ( doc_mode === undefined || doc_mode > 7 ); + + // Get location.hash (or what you'd expect location.hash to be) sans any + // leading #. Thanks for making this necessary, Firefox! + function get_fragment( url ) { + url = url || location.href; + return '#' + url.replace( /^[^#]*#?(.*)$/, '$1' ); + }; + + // Method: jQuery.fn.hashchange + // + // Bind a handler to the window.onhashchange event or trigger all bound + // window.onhashchange event handlers. This behavior is consistent with + // jQuery's built-in event handlers. + // + // Usage: + // + // > jQuery(window).hashchange( [ handler ] ); + // + // Arguments: + // + // handler - (Function) Optional handler to be bound to the hashchange + // event. This is a "shortcut" for the more verbose form: + // jQuery(window).bind( 'hashchange', handler ). If handler is omitted, + // all bound window.onhashchange event handlers will be triggered. This + // is a shortcut for the more verbose + // jQuery(window).trigger( 'hashchange' ). These forms are described in + // the section. + // + // Returns: + // + // (jQuery) The initial jQuery collection of elements. + + // Allow the "shortcut" format $(elem).hashchange( fn ) for binding and + // $(elem).hashchange() for triggering, like jQuery does for built-in events. + $.fn[ str_hashchange ] = function( fn ) { + return fn ? this.bind( str_hashchange, fn ) : this.trigger( str_hashchange ); + }; + + // Property: jQuery.fn.hashchange.delay + // + // The numeric interval (in milliseconds) at which the + // polling loop executes. Defaults to 50. + + // Property: jQuery.fn.hashchange.domain + // + // If you're setting document.domain in your JavaScript, and you want hash + // history to work in IE6/7, not only must this property be set, but you must + // also set document.domain BEFORE jQuery is loaded into the page. This + // property is only applicable if you are supporting IE6/7 (or IE8 operating + // in "IE7 compatibility" mode). + // + // In addition, the property must be set to the + // path of the included "document-domain.html" file, which can be renamed or + // modified if necessary (note that the document.domain specified must be the + // same in both your main JavaScript as well as in this file). + // + // Usage: + // + // jQuery.fn.hashchange.domain = document.domain; + + // Property: jQuery.fn.hashchange.src + // + // If, for some reason, you need to specify an Iframe src file (for example, + // when setting document.domain as in ), you can + // do so using this property. Note that when using this property, history + // won't be recorded in IE6/7 until the Iframe src file loads. This property + // is only applicable if you are supporting IE6/7 (or IE8 operating in "IE7 + // compatibility" mode). + // + // Usage: + // + // jQuery.fn.hashchange.src = 'path/to/file.html'; + + $.fn[ str_hashchange ].delay = 50; + /* + $.fn[ str_hashchange ].domain = null; + $.fn[ str_hashchange ].src = null; + */ + + // Event: hashchange event + // + // Fired when location.hash changes. In browsers that support it, the native + // HTML5 window.onhashchange event is used, otherwise a polling loop is + // initialized, running every milliseconds to + // see if the hash has changed. In IE6/7 (and IE8 operating in "IE7 + // compatibility" mode), a hidden Iframe is created to allow the back button + // and hash-based history to work. + // + // Usage as described in : + // + // > // Bind an event handler. + // > jQuery(window).hashchange( function(e) { + // > var hash = location.hash; + // > ... + // > }); + // > + // > // Manually trigger the event handler. + // > jQuery(window).hashchange(); + // + // A more verbose usage that allows for event namespacing: + // + // > // Bind an event handler. + // > jQuery(window).bind( 'hashchange', function(e) { + // > var hash = location.hash; + // > ... + // > }); + // > + // > // Manually trigger the event handler. + // > jQuery(window).trigger( 'hashchange' ); + // + // Additional Notes: + // + // * The polling loop and Iframe are not created until at least one handler + // is actually bound to the 'hashchange' event. + // * If you need the bound handler(s) to execute immediately, in cases where + // a location.hash exists on page load, via bookmark or page refresh for + // example, use jQuery(window).hashchange() or the more verbose + // jQuery(window).trigger( 'hashchange' ). + // * The event can be bound before DOM ready, but since it won't be usable + // before then in IE6/7 (due to the necessary Iframe), recommended usage is + // to bind it inside a DOM ready handler. + + // Override existing $.event.special.hashchange methods (allowing this plugin + // to be defined after jQuery BBQ in BBQ's source code). + special[ str_hashchange ] = $.extend( special[ str_hashchange ], { + + // Called only when the first 'hashchange' event is bound to window. + setup: function() { + // If window.onhashchange is supported natively, there's nothing to do.. + if ( supports_onhashchange ) { return false; } + + // Otherwise, we need to create our own. And we don't want to call this + // until the user binds to the event, just in case they never do, since it + // will create a polling loop and possibly even a hidden Iframe. + $( fake_onhashchange.start ); + }, + + // Called only when the last 'hashchange' event is unbound from window. + teardown: function() { + // If window.onhashchange is supported natively, there's nothing to do.. + if ( supports_onhashchange ) { return false; } + + // Otherwise, we need to stop ours (if possible). + $( fake_onhashchange.stop ); + } + + }); + + // fake_onhashchange does all the work of triggering the window.onhashchange + // event for browsers that don't natively support it, including creating a + // polling loop to watch for hash changes and in IE 6/7 creating a hidden + // Iframe to enable back and forward. + fake_onhashchange = (function(){ + var self = {}, + timeout_id, + + // Remember the initial hash so it doesn't get triggered immediately. + last_hash = get_fragment(), + + fn_retval = function(val){ return val; }, + history_set = fn_retval, + history_get = fn_retval; + + // Start the polling loop. + self.start = function() { + timeout_id || poll(); + }; + + // Stop the polling loop. + self.stop = function() { + timeout_id && clearTimeout( timeout_id ); + timeout_id = undefined; + }; + + // This polling loop checks every $.fn.hashchange.delay milliseconds to see + // if location.hash has changed, and triggers the 'hashchange' event on + // window when necessary. + function poll() { + var hash = get_fragment(), + history_hash = history_get( last_hash ); + + if ( hash !== last_hash ) { + history_set( last_hash = hash, history_hash ); + + $(window).trigger( str_hashchange ); + + } else if ( history_hash !== last_hash ) { + location.href = location.href.replace( /#.*/, '' ) + history_hash; + } + + timeout_id = setTimeout( poll, $.fn[ str_hashchange ].delay ); + }; + + // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + // vvvvvvvvvvvvvvvvvvv REMOVE IF NOT SUPPORTING IE6/7/8 vvvvvvvvvvvvvvvvvvv + // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + $.browser.msie && !supports_onhashchange && (function(){ + // Not only do IE6/7 need the "magical" Iframe treatment, but so does IE8 + // when running in "IE7 compatibility" mode. + + var iframe, + iframe_src; + + // When the event is bound and polling starts in IE 6/7, create a hidden + // Iframe for history handling. + self.start = function(){ + if ( !iframe ) { + iframe_src = $.fn[ str_hashchange ].src; + iframe_src = iframe_src && iframe_src + get_fragment(); + + // Create hidden Iframe. Attempt to make Iframe as hidden as possible + // by using techniques from http://www.paciellogroup.com/blog/?p=604. + iframe = $('').appendTo(j); +f.show();h=false;b.fancybox.center();d.onComplete(l,p,d);var a,c;if(l.length-1>p){a=l[p+1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}if(p>0){a=l[p-1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}},T=function(a){var c={width:parseInt(r.width+(i.width-r.width)*a,10),height:parseInt(r.height+(i.height-r.height)*a,10),top:parseInt(r.top+(i.top-r.top)*a,10),left:parseInt(r.left+(i.left-r.left)*a,10)};if(typeof i.opacity!=="undefined")c.opacity=a<0.5?0.5:a;f.css(c); +j.css({width:c.width-d.padding*2,height:c.height-y*a-d.padding*2})},U=function(){return[b(window).width()-d.margin*2,b(window).height()-d.margin*2,b(document).scrollLeft()+d.margin,b(document).scrollTop()+d.margin]},X=function(){var a=U(),c={},g=d.autoScale,k=d.padding*2;c.width=d.width.toString().indexOf("%")>-1?parseInt(a[0]*parseFloat(d.width)/100,10):d.width+k;c.height=d.height.toString().indexOf("%")>-1?parseInt(a[1]*parseFloat(d.height)/100,10):d.height+k;if(g&&(c.width>a[0]||c.height>a[1]))if(e.type== +"image"||e.type=="swf"){g=d.width/d.height;if(c.width>a[0]){c.width=a[0];c.height=parseInt((c.width-k)/g+k,10)}if(c.height>a[1]){c.height=a[1];c.width=parseInt((c.height-k)*g+k,10)}}else{c.width=Math.min(c.width,a[0]);c.height=Math.min(c.height,a[1])}c.top=parseInt(Math.max(a[3]-20,a[3]+(a[1]-c.height-40)*0.5),10);c.left=parseInt(Math.max(a[2]-20,a[2]+(a[0]-c.width-40)*0.5),10);return c},V=function(){var a=e.orig?b(e.orig):false,c={};if(a&&a.length){c=a.offset();c.top+=parseInt(a.css("paddingTop"), +10)||0;c.left+=parseInt(a.css("paddingLeft"),10)||0;c.top+=parseInt(a.css("border-top-width"),10)||0;c.left+=parseInt(a.css("border-left-width"),10)||0;c.width=a.width();c.height=a.height();c={width:c.width+d.padding*2,height:c.height+d.padding*2,top:c.top-d.padding-20,left:c.left-d.padding-20}}else{a=U();c={width:d.padding*2,height:d.padding*2,top:parseInt(a[3]+a[1]*0.5,10),left:parseInt(a[2]+a[0]*0.5,10)}}return c},Z=function(){if(t.is(":visible")){b("div",t).css("top",L*-40+"px");L=(L+1)%12}else clearInterval(K)}; +b.fn.fancybox=function(a){if(!b(this).length)return this;b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(c){c.preventDefault();if(!h){h=true;b(this).blur();o=[];q=0;c=b(this).attr("rel")||"";if(!c||c==""||c==="nofollow")o.push(this);else{o=b("a[rel="+c+"], area[rel="+c+"]");q=o.index(this)}I()}});return this};b.fancybox=function(a,c){var g;if(!h){h=true;g=typeof c!=="undefined"?c:{};o=[];q=parseInt(g.index,10)||0;if(b.isArray(a)){for(var k= +0,C=a.length;ko.length||q<0)q=0;I()}};b.fancybox.showActivity=function(){clearInterval(K);t.show();K=setInterval(Z,66)};b.fancybox.hideActivity=function(){t.hide()};b.fancybox.next=function(){return b.fancybox.pos(p+ +1)};b.fancybox.prev=function(){return b.fancybox.pos(p-1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a);o=l;if(a>-1&&a1){q=a>=l.length?0:l.length-1;I()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");N();e.onCancel(o,q,e);h=false}};b.fancybox.close=function(){function a(){u.fadeOut("fast");n.empty().hide();f.hide();b.event.trigger("fancybox-cleanup");j.empty();d.onClosed(l,p,d);l=e=[];p=q=0;d=e={};h=false}if(!(h||f.is(":hidden"))){h= +true;if(d&&false===d.onCleanup(l,p,d))h=false;else{N();b(E.add(z).add(A)).hide();b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");j.find("iframe").attr("src",M&&/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank");d.titlePosition!=="inside"&&n.empty();f.stop();if(d.transitionOut=="elastic"){r=V();var c=f.position();i={top:c.top,left:c.left,width:f.width(),height:f.height()};if(d.opacity)i.opacity=1;n.empty().hide();B.prop=1; +b(B).animate({prop:0},{duration:d.speedOut,easing:d.easingOut,step:T,complete:a})}else f.fadeOut(d.transitionOut=="none"?0:d.speedOut,a)}}};b.fancybox.resize=function(){u.is(":visible")&&u.css("height",b(document).height());b.fancybox.center(true)};b.fancybox.center=function(a){var c,g;if(!h){g=a===true?1:0;c=U();!g&&(f.width()>c[0]||f.height()>c[1])||f.stop().animate({top:parseInt(Math.max(c[3]-20,c[3]+(c[1]-j.height()-40)*0.5-d.padding)),left:parseInt(Math.max(c[2]-20,c[2]+(c[0]-j.width()-40)*0.5- +d.padding))},typeof a=="number"?a:200)}};b.fancybox.init=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('
              '),t=b('
              '),u=b('
              '),f=b('
              '));D=b('
              ').append('
              ').appendTo(f); +D.append(j=b('
              '),E=b(''),n=b('
              '),z=b(''),A=b(''));E.click(b.fancybox.close);t.click(b.fancybox.cancel);z.click(function(a){a.preventDefault();b.fancybox.prev()});A.click(function(a){a.preventDefault();b.fancybox.next()}); +b.fn.mousewheel&&f.bind("mousewheel.fb",function(a,c){if(h)a.preventDefault();else if(b(a.target).get(0).clientHeight==0||b(a.target).get(0).scrollHeight===b(a.target).get(0).clientHeight){a.preventDefault();b.fancybox[c>0?"prev":"next"]()}});b.support.opacity||f.addClass("fancybox-ie");if(M){t.addClass("fancybox-ie6");f.addClass("fancybox-ie6");b('').prependTo(D)}}}; +b.fn.fancybox.defaults={padding:10,margin:40,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.7,overlayColor:"#777",titleShow:true,titlePosition:"float",titleFormat:null,titleFromAlt:false,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing", +easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,enableKeyboardNav:true,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}};b(document).ready(function(){b.fancybox.init()})})(jQuery); diff --git a/app/assets/javascripts/jquery.form.js b/app/assets/javascripts/jquery.form.js new file mode 100644 index 0000000..b1916b5 --- /dev/null +++ b/app/assets/javascripts/jquery.form.js @@ -0,0 +1,1076 @@ +/*! + * jQuery Form Plugin + * version: 3.10 (20-JUL-2012) + * @requires jQuery v1.3.2 or later + * + * Examples and documentation at: http://malsup.com/jquery/form/ + * Project repository: https://github.com/malsup/form + * Dual licensed under the MIT and GPL licenses: + * http://malsup.github.com/mit-license.txt + * http://malsup.github.com/gpl-license-v2.txt + */ +/*global ActiveXObject alert */ +;(function($) { +"use strict"; + +/* + Usage Note: + ----------- + Do not use both ajaxSubmit and ajaxForm on the same form. These + functions are mutually exclusive. Use ajaxSubmit if you want + to bind your own submit handler to the form. For example, + + $(document).ready(function() { + $('#myForm').on('submit', function(e) { + e.preventDefault(); // <-- important + $(this).ajaxSubmit({ + target: '#output' + }); + }); + }); + + Use ajaxForm when you want the plugin to manage all the event binding + for you. For example, + + $(document).ready(function() { + $('#myForm').ajaxForm({ + target: '#output' + }); + }); + + You can also use ajaxForm with delegation (requires jQuery v1.7+), so the + form does not have to exist when you invoke ajaxForm: + + $('#myForm').ajaxForm({ + delegation: true, + target: '#output' + }); + + When using ajaxForm, the ajaxSubmit function will be invoked for you + at the appropriate time. +*/ + +/** + * Feature detection + */ +var feature = {}; +feature.fileapi = $("").get(0).files !== undefined; +feature.formdata = window.FormData !== undefined; + +/** + * ajaxSubmit() provides a mechanism for immediately submitting + * an HTML form using AJAX. + */ +$.fn.ajaxSubmit = function(options) { + /*jshint scripturl:true */ + + // fast fail if nothing selected (http://dev.jquery.com/ticket/2752) + if (!this.length) { + log('ajaxSubmit: skipping submit process - no element selected'); + return this; + } + + var method, action, url, $form = this; + + if (typeof options == 'function') { + options = { success: options }; + } + + method = this.attr('method'); + action = this.attr('action'); + url = (typeof action === 'string') ? $.trim(action) : ''; + url = url || window.location.href || ''; + if (url) { + // clean url (don't include hash vaue) + url = (url.match(/^([^#]+)/)||[])[1]; + } + + options = $.extend(true, { + url: url, + success: $.ajaxSettings.success, + type: method || 'GET', + iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank' + }, options); + + // hook for manipulating the form data before it is extracted; + // convenient for use with rich editors like tinyMCE or FCKEditor + var veto = {}; + this.trigger('form-pre-serialize', [this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); + return this; + } + + // provide opportunity to alter form data before it is serialized + if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSerialize callback'); + return this; + } + + var traditional = options.traditional; + if ( traditional === undefined ) { + traditional = $.ajaxSettings.traditional; + } + + var elements = []; + var qx, a = this.formToArray(options.semantic, elements); + if (options.data) { + options.extraData = options.data; + qx = $.param(options.data, traditional); + } + + // give pre-submit callback an opportunity to abort the submit + if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSubmit callback'); + return this; + } + + // fire vetoable 'validate' event + this.trigger('form-submit-validate', [a, this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); + return this; + } + + var q = $.param(a, traditional); + if (qx) { + q = ( q ? (q + '&' + qx) : qx ); + } + if (options.type.toUpperCase() == 'GET') { + options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; + options.data = null; // data is null for 'get' + } + else { + options.data = q; // data is the query string for 'post' + } + + var callbacks = []; + if (options.resetForm) { + callbacks.push(function() { $form.resetForm(); }); + } + if (options.clearForm) { + callbacks.push(function() { $form.clearForm(options.includeHidden); }); + } + + // perform a load on the target only if dataType is not provided + if (!options.dataType && options.target) { + var oldSuccess = options.success || function(){}; + callbacks.push(function(data) { + var fn = options.replaceTarget ? 'replaceWith' : 'html'; + $(options.target)[fn](data).each(oldSuccess, arguments); + }); + } + else if (options.success) { + callbacks.push(options.success); + } + + options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg + var context = options.context || options; // jQuery 1.4+ supports scope context + for (var i=0, max=callbacks.length; i < max; i++) { + callbacks[i].apply(context, [data, status, xhr || $form, $form]); + } + }; + + // are there files to upload? + var fileInputs = $('input:file:enabled[value]', this); // [value] (issue #113) + var hasFileInputs = fileInputs.length > 0; + var mp = 'multipart/form-data'; + var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp); + + var fileAPI = feature.fileapi && feature.formdata; + log("fileAPI :" + fileAPI); + var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI; + + // options.iframe allows user to force iframe mode + // 06-NOV-09: now defaulting to iframe mode if file input is detected + if (options.iframe !== false && (options.iframe || shouldUseFrame)) { + // hack to fix Safari hang (thanks to Tim Molendijk for this) + // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d + if (options.closeKeepAlive) { + $.get(options.closeKeepAlive, function() { + fileUploadIframe(a); + }); + } + else { + fileUploadIframe(a); + } + } + else if ((hasFileInputs || multipart) && fileAPI) { + fileUploadXhr(a); + } + else { + $.ajax(options); + } + + // clear element array + for (var k=0; k < elements.length; k++) + elements[k] = null; + + // fire 'notify' event + this.trigger('form-submit-notify', [this, options]); + return this; + + // XMLHttpRequest Level 2 file uploads (big hat tip to francois2metz) + function fileUploadXhr(a) { + var formdata = new FormData(); + + for (var i=0; i < a.length; i++) { + formdata.append(a[i].name, a[i].value); + } + + if (options.extraData) { + for (var p in options.extraData) + if (options.extraData.hasOwnProperty(p)) + formdata.append(p, options.extraData[p]); + } + + options.data = null; + + var s = $.extend(true, {}, $.ajaxSettings, options, { + contentType: false, + processData: false, + cache: false, + type: 'POST' + }); + + if (options.uploadProgress) { + // workaround because jqXHR does not expose upload property + s.xhr = function() { + var xhr = jQuery.ajaxSettings.xhr(); + if (xhr.upload) { + xhr.upload.onprogress = function(event) { + var percent = 0; + var position = event.loaded || event.position; /*event.position is deprecated*/ + var total = event.total; + if (event.lengthComputable) { + percent = Math.ceil(position / total * 100); + } + options.uploadProgress(event, position, total, percent); + }; + } + return xhr; + }; + } + + s.data = null; + var beforeSend = s.beforeSend; + s.beforeSend = function(xhr, o) { + o.data = formdata; + if(beforeSend) + beforeSend.call(this, xhr, o); + }; + $.ajax(s); + } + + // private function for handling file uploads (hat tip to YAHOO!) + function fileUploadIframe(a) { + var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle; + var useProp = !!$.fn.prop; + + if ($(':input[name=submit],:input[id=submit]', form).length) { + // if there is an input with a name or id of 'submit' then we won't be + // able to invoke the submit fn on the form (at least not x-browser) + alert('Error: Form elements must not have name or id of "submit".'); + return; + } + + if (a) { + // ensure that every serialized input is still enabled + for (i=0; i < elements.length; i++) { + el = $(elements[i]); + if ( useProp ) + el.prop('disabled', false); + else + el.removeAttr('disabled'); + } + } + + s = $.extend(true, {}, $.ajaxSettings, options); + s.context = s.context || s; + id = 'jqFormIO' + (new Date().getTime()); + if (s.iframeTarget) { + $io = $(s.iframeTarget); + n = $io.attr('name'); + if (!n) + $io.attr('name', id); + else + id = n; + } + else { + $io = $('Close + + + \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/index.html b/app/assets/javascripts/strophejs-1.0.1/doc/index.html new file mode 100644 index 0000000..6c1a278 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/javascript/main.js b/app/assets/javascripts/strophejs-1.0.1/doc/javascript/main.js new file mode 100644 index 0000000..91991f5 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/javascript/main.js @@ -0,0 +1,836 @@ +// This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure +// Natural Docs is licensed under the GPL + + +// +// Browser Styles +// ____________________________________________________________________________ + +var agt=navigator.userAgent.toLowerCase(); +var browserType; +var browserVer; + +if (agt.indexOf("opera") != -1) + { + browserType = "Opera"; + + if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) + { browserVer = "Opera7"; } + else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1) + { browserVer = "Opera8"; } + else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1) + { browserVer = "Opera9"; } + } + +else if (agt.indexOf("applewebkit") != -1) + { + browserType = "Safari"; + + if (agt.indexOf("version/3") != -1) + { browserVer = "Safari3"; } + else if (agt.indexOf("safari/4") != -1) + { browserVer = "Safari2"; } + } + +else if (agt.indexOf("khtml") != -1) + { + browserType = "Konqueror"; + } + +else if (agt.indexOf("msie") != -1) + { + browserType = "IE"; + + if (agt.indexOf("msie 6") != -1) + { browserVer = "IE6"; } + else if (agt.indexOf("msie 7") != -1) + { browserVer = "IE7"; } + } + +else if (agt.indexOf("gecko") != -1) + { + browserType = "Firefox"; + + if (agt.indexOf("rv:1.7") != -1) + { browserVer = "Firefox1"; } + else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1) + { browserVer = "Firefox15"; } + else if (agt.indexOf("rv:1.8.1") != -1) + { browserVer = "Firefox2"; } + } + + +// +// Support Functions +// ____________________________________________________________________________ + + +function GetXPosition(item) + { + var position = 0; + + if (item.offsetWidth != null) + { + while (item != document.body && item != null) + { + position += item.offsetLeft; + item = item.offsetParent; + }; + }; + + return position; + }; + + +function GetYPosition(item) + { + var position = 0; + + if (item.offsetWidth != null) + { + while (item != document.body && item != null) + { + position += item.offsetTop; + item = item.offsetParent; + }; + }; + + return position; + }; + + +function MoveToPosition(item, x, y) + { + // Opera 5 chokes on the px extension, so it can use the Microsoft one instead. + + if (item.style.left != null) + { + item.style.left = x + "px"; + item.style.top = y + "px"; + } + else if (item.style.pixelLeft != null) + { + item.style.pixelLeft = x; + item.style.pixelTop = y; + }; + }; + + +// +// Menu +// ____________________________________________________________________________ + + +function ToggleMenu(id) + { + if (!window.document.getElementById) + { return; }; + + var display = window.document.getElementById(id).style.display; + + if (display == "none") + { display = "block"; } + else + { display = "none"; } + + window.document.getElementById(id).style.display = display; + } + +function HideAllBut(ids, max) + { + if (document.getElementById) + { + ids.sort( function(a,b) { return a - b; } ); + var number = 1; + + while (number < max) + { + if (ids.length > 0 && number == ids[0]) + { ids.shift(); } + else + { + document.getElementById("MGroupContent" + number).style.display = "none"; + }; + + number++; + }; + }; + } + + +// +// Tooltips +// ____________________________________________________________________________ + + +var tooltipTimer = 0; + +function ShowTip(event, tooltipID, linkID) + { + if (tooltipTimer) + { clearTimeout(tooltipTimer); }; + + var docX = event.clientX + window.pageXOffset; + var docY = event.clientY + window.pageYOffset; + + var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")"; + + tooltipTimer = setTimeout(showCommand, 1000); + } + +function ReallyShowTip(tooltipID, linkID, docX, docY) + { + tooltipTimer = 0; + + var tooltip; + var link; + + if (document.getElementById) + { + tooltip = document.getElementById(tooltipID); + link = document.getElementById(linkID); + } +/* else if (document.all) + { + tooltip = eval("document.all['" + tooltipID + "']"); + link = eval("document.all['" + linkID + "']"); + } +*/ + if (tooltip) + { + var left = GetXPosition(link); + var top = GetYPosition(link); + top += link.offsetHeight; + + + // The fallback method is to use the mouse X and Y relative to the document. We use a separate if and test if its a number + // in case some browser snuck through the above if statement but didn't support everything. + + if (!isFinite(top) || top == 0) + { + left = docX; + top = docY; + } + + // Some spacing to get it out from under the cursor. + + top += 10; + + // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the + // page. We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right. + + if (tooltip.offsetWidth != null) + { + var width = tooltip.offsetWidth; + var docWidth = document.body.clientWidth; + + if (left + width > docWidth) + { left = docWidth - width - 1; } + + // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width. + if (left < 0) + { left = 0; }; + } + + MoveToPosition(tooltip, left, top); + tooltip.style.visibility = "visible"; + } + } + +function HideTip(tooltipID) + { + if (tooltipTimer) + { + clearTimeout(tooltipTimer); + tooltipTimer = 0; + } + + var tooltip; + + if (document.getElementById) + { tooltip = document.getElementById(tooltipID); } + else if (document.all) + { tooltip = eval("document.all['" + tooltipID + "']"); } + + if (tooltip) + { tooltip.style.visibility = "hidden"; } + } + + +// +// Blockquote fix for IE +// ____________________________________________________________________________ + + +function NDOnLoad() + { + if (browserVer == "IE6") + { + var scrollboxes = document.getElementsByTagName('blockquote'); + + if (scrollboxes.item(0)) + { + NDDoResize(); + window.onresize=NDOnResize; + }; + }; + }; + + +var resizeTimer = 0; + +function NDOnResize() + { + if (resizeTimer != 0) + { clearTimeout(resizeTimer); }; + + resizeTimer = setTimeout(NDDoResize, 250); + }; + + +function NDDoResize() + { + var scrollboxes = document.getElementsByTagName('blockquote'); + + var i; + var item; + + i = 0; + while (item = scrollboxes.item(i)) + { + item.style.width = 100; + i++; + }; + + i = 0; + while (item = scrollboxes.item(i)) + { + item.style.width = item.parentNode.offsetWidth; + i++; + }; + + clearTimeout(resizeTimer); + resizeTimer = 0; + } + + + +/* ________________________________________________________________________________________________________ + + Class: SearchPanel + ________________________________________________________________________________________________________ + + A class handling everything associated with the search panel. + + Parameters: + + name - The name of the global variable that will be storing this instance. Is needed to be able to set timeouts. + mode - The mode the search is going to work in. Pass CommandLineOption()>, so the + value will be something like "HTML" or "FramedHTML". + + ________________________________________________________________________________________________________ +*/ + + +function SearchPanel(name, mode, resultsPath) + { + if (!name || !mode || !resultsPath) + { alert("Incorrect parameters to SearchPanel."); }; + + + // Group: Variables + // ________________________________________________________________________ + + /* + var: name + The name of the global variable that will be storing this instance of the class. + */ + this.name = name; + + /* + var: mode + The mode the search is going to work in, such as "HTML" or "FramedHTML". + */ + this.mode = mode; + + /* + var: resultsPath + The relative path from the current HTML page to the results page directory. + */ + this.resultsPath = resultsPath; + + /* + var: keyTimeout + The timeout used between a keystroke and when a search is performed. + */ + this.keyTimeout = 0; + + /* + var: keyTimeoutLength + The length of in thousandths of a second. + */ + this.keyTimeoutLength = 500; + + /* + var: lastSearchValue + The last search string executed, or an empty string if none. + */ + this.lastSearchValue = ""; + + /* + var: lastResultsPage + The last results page. The value is only relevant if is set. + */ + this.lastResultsPage = ""; + + /* + var: deactivateTimeout + + The timeout used between when a control is deactivated and when the entire panel is deactivated. Is necessary + because a control may be deactivated in favor of another control in the same panel, in which case it should stay + active. + */ + this.deactivateTimout = 0; + + /* + var: deactivateTimeoutLength + The length of in thousandths of a second. + */ + this.deactivateTimeoutLength = 200; + + + + + // Group: DOM Elements + // ________________________________________________________________________ + + + // Function: DOMSearchField + this.DOMSearchField = function() + { return document.getElementById("MSearchField"); }; + + // Function: DOMSearchType + this.DOMSearchType = function() + { return document.getElementById("MSearchType"); }; + + // Function: DOMPopupSearchResults + this.DOMPopupSearchResults = function() + { return document.getElementById("MSearchResults"); }; + + // Function: DOMPopupSearchResultsWindow + this.DOMPopupSearchResultsWindow = function() + { return document.getElementById("MSearchResultsWindow"); }; + + // Function: DOMSearchPanel + this.DOMSearchPanel = function() + { return document.getElementById("MSearchPanel"); }; + + + + + // Group: Event Handlers + // ________________________________________________________________________ + + + /* + Function: OnSearchFieldFocus + Called when focus is added or removed from the search field. + */ + this.OnSearchFieldFocus = function(isActive) + { + this.Activate(isActive); + }; + + + /* + Function: OnSearchFieldChange + Called when the content of the search field is changed. + */ + this.OnSearchFieldChange = function() + { + if (this.keyTimeout) + { + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + }; + + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + + if (searchValue != this.lastSearchValue) + { + if (searchValue != "") + { + this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength); + } + else + { + if (this.mode == "HTML") + { this.DOMPopupSearchResultsWindow().style.display = "none"; }; + this.lastSearchValue = ""; + }; + }; + }; + + + /* + Function: OnSearchTypeFocus + Called when focus is added or removed from the search type. + */ + this.OnSearchTypeFocus = function(isActive) + { + this.Activate(isActive); + }; + + + /* + Function: OnSearchTypeChange + Called when the search type is changed. + */ + this.OnSearchTypeChange = function() + { + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + + if (searchValue != "") + { + this.Search(); + }; + }; + + + + // Group: Action Functions + // ________________________________________________________________________ + + + /* + Function: CloseResultsWindow + Closes the results window. + */ + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = "none"; + this.Activate(false, true); + }; + + + /* + Function: Search + Performs a search. + */ + this.Search = function() + { + this.keyTimeout = 0; + + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + var searchTopic = this.DOMSearchType().value; + + var pageExtension = searchValue.substr(0,1); + + if (pageExtension.match(/^[a-z]/i)) + { pageExtension = pageExtension.toUpperCase(); } + else if (pageExtension.match(/^[0-9]/)) + { pageExtension = 'Numbers'; } + else + { pageExtension = "Symbols"; }; + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + // indexSectionsWithContent is defined in searchdata.js + if (indexSectionsWithContent[searchTopic][pageExtension] == true) + { + resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else + { + resultsPage = this.resultsPath + '/NoResults.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + }; + + var resultsFrame; + if (this.mode == "HTML") + { resultsFrame = window.frames.MSearchResults; } + else if (this.mode == "FramedHTML") + { resultsFrame = window.top.frames['Content']; }; + + + if (resultsPage != this.lastResultsPage || + + // Bug in IE. If everything becomes hidden in a run, none of them will be able to be reshown in the next for some + // reason. It counts the right number of results, and you can even read the display as "block" after setting it, but it + // just doesn't work in IE 6 or IE 7. So if we're on the right page but the previous search had no results, reload the + // page anyway to get around the bug. + (browserType == "IE" && hasResultsPage && + (!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) ) + + { + resultsFrame.location.href = resultsPageWithSearch; + } + + // So if the results page is right and there's no IE bug, reperform the search on the existing page. We have to check if there + // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even + // if it did. + else if (hasResultsPage) + { + // We need to check if this exists in case the frame is present but didn't finish loading. + if (resultsFrame.searchResults) + { resultsFrame.searchResults.Search(searchValue); } + + // Otherwise just reload instead of waiting. + else + { resultsFrame.location.href = resultsPageWithSearch; }; + }; + + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block") + { + var domSearchType = this.DOMSearchType(); + + var left = GetXPosition(domSearchType); + var top = GetYPosition(domSearchType) + domSearchType.offsetHeight; + + MoveToPosition(domPopupSearchResultsWindow, left, top); + domPopupSearchResultsWindow.style.display = 'block'; + }; + + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + }; + + + + // Group: Activation Functions + // Functions that handle whether the entire panel is active or not. + // ________________________________________________________________________ + + + /* + Function: Activate + + Activates or deactivates the search panel, resetting things to their default values if necessary. You can call this on every + control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently. + + Parameters: + + isActive - Whether you're activating or deactivating the panel. + ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay. + */ + this.Activate = function(isActive, ignoreDeactivateDelay) + { + // We want to ignore isActive being false while the results window is open. + if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block")) + { + if (this.inactivateTimeout) + { + clearTimeout(this.inactivateTimeout); + this.inactivateTimeout = 0; + }; + + this.DOMSearchPanel().className = 'MSearchPanelActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == 'Search') + { searchField.value = ""; } + } + else if (!ignoreDeactivateDelay) + { + this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength); + } + else + { + this.InactivateAfterTimeout(); + }; + }; + + + /* + Function: InactivateAfterTimeout + + Called by , which is set by . Inactivation occurs on a timeout because a control may + receive OnBlur() when focus is really transferring to another control in the search panel. In this case we don't want to + actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value. + So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation. + */ + this.InactivateAfterTimeout = function() + { + this.inactivateTimeout = 0; + + this.DOMSearchPanel().className = 'MSearchPanelInactive'; + this.DOMSearchField().value = "Search"; + + this.lastSearchValue = ""; + this.lastResultsPage = ""; + }; + }; + + + + +/* ________________________________________________________________________________________________________ + + Class: SearchResults + _________________________________________________________________________________________________________ + + The class that handles everything on the search results page. + _________________________________________________________________________________________________________ +*/ + + +function SearchResults(name, mode) + { + /* + var: mode + The mode the search is going to work in, such as "HTML" or "FramedHTML". + */ + this.mode = mode; + + /* + var: lastMatchCount + The number of matches from the last run of . + */ + this.lastMatchCount = 0; + + + /* + Function: Toggle + Toggles the visibility of the passed element ID. + */ + this.Toggle = function(id) + { + if (this.mode == "FramedHTML") + { return; }; + + var parentElement = document.getElementById(id); + + var element = parentElement.firstChild; + + while (element && element != parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'ISubIndex') + { + if (element.style.display == 'block') + { element.style.display = "none"; } + else + { element.style.display = 'block'; } + }; + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { element = element.firstChild; } + else if (element.nextSibling) + { element = element.nextSibling; } + else + { + do + { + element = element.parentNode; + } + while (element && element != parentElement && !element.nextSibling); + + if (element && element != parentElement) + { element = element.nextSibling; }; + }; + }; + }; + + + /* + Function: Search + + Searches for the passed string. If there is no parameter, it takes it from the URL query. + + Always returns true, since other documents may try to call it and that may or may not be possible. + */ + this.Search = function(search) + { + if (!search) + { + search = window.location.search; + search = search.substring(1); // Remove the leading ? + search = unescape(search); + }; + + search = search.replace(/^ +/, ""); + search = search.replace(/ +$/, ""); + search = search.toLowerCase(); + + if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily. + { + search = search.replace(/\_/g, "_und"); + search = search.replace(/\ +/gi, "_spc"); + search = search.replace(/\~/g, "_til"); + search = search.replace(/\!/g, "_exc"); + search = search.replace(/\@/g, "_att"); + search = search.replace(/\#/g, "_num"); + search = search.replace(/\$/g, "_dol"); + search = search.replace(/\%/g, "_pct"); + search = search.replace(/\^/g, "_car"); + search = search.replace(/\&/g, "_amp"); + search = search.replace(/\*/g, "_ast"); + search = search.replace(/\(/g, "_lpa"); + search = search.replace(/\)/g, "_rpa"); + search = search.replace(/\-/g, "_min"); + search = search.replace(/\+/g, "_plu"); + search = search.replace(/\=/g, "_equ"); + search = search.replace(/\{/g, "_lbc"); + search = search.replace(/\}/g, "_rbc"); + search = search.replace(/\[/g, "_lbk"); + search = search.replace(/\]/g, "_rbk"); + search = search.replace(/\:/g, "_col"); + search = search.replace(/\;/g, "_sco"); + search = search.replace(/\"/g, "_quo"); + search = search.replace(/\'/g, "_apo"); + search = search.replace(/\/g, "_ran"); + search = search.replace(/\,/g, "_com"); + search = search.replace(/\./g, "_per"); + search = search.replace(/\?/g, "_que"); + search = search.replace(/\//g, "_sla"); + search = search.replace(/[^a-z0-9\_]i/gi, "_zzz"); + }; + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); + + if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search) + { + row.style.display = "block"; + matches++; + } + else + { row.style.display = "none"; }; + }; + + i++; + }; + + document.getElementById("Searching").style.display="none"; + + if (matches == 0) + { document.getElementById("NoMatches").style.display="block"; } + else + { document.getElementById("NoMatches").style.display="none"; } + + this.lastMatchCount = matches; + + return true; + }; + }; + diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/javascript/searchdata.js b/app/assets/javascripts/strophejs-1.0.1/doc/javascript/searchdata.js new file mode 100644 index 0000000..544e6b8 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/javascript/searchdata.js @@ -0,0 +1,152 @@ +var indexSectionsWithContent = { + "General": { + "Symbols": true, + "Numbers": false, + "A": true, + "B": true, + "C": true, + "D": true, + "E": true, + "F": true, + "G": true, + "H": true, + "I": true, + "J": false, + "K": false, + "L": true, + "M": true, + "N": false, + "O": false, + "P": true, + "Q": false, + "R": true, + "S": true, + "T": true, + "U": true, + "V": true, + "W": true, + "X": true, + "Y": false, + "Z": false + }, + "Functions": { + "Symbols": true, + "Numbers": false, + "A": true, + "B": true, + "C": true, + "D": true, + "E": true, + "F": true, + "G": true, + "H": false, + "I": true, + "J": false, + "K": false, + "L": true, + "M": false, + "N": false, + "O": false, + "P": true, + "Q": false, + "R": true, + "S": true, + "T": true, + "U": true, + "V": false, + "W": true, + "X": true, + "Y": false, + "Z": false + }, + "Files": { + "Symbols": false, + "Numbers": false, + "A": false, + "B": false, + "C": false, + "D": false, + "E": false, + "F": false, + "G": false, + "H": false, + "I": false, + "J": false, + "K": false, + "L": false, + "M": false, + "N": false, + "O": false, + "P": false, + "Q": false, + "R": false, + "S": true, + "T": false, + "U": false, + "V": false, + "W": false, + "X": false, + "Y": false, + "Z": false + }, + "Constants": { + "Symbols": false, + "Numbers": false, + "A": true, + "B": true, + "C": true, + "D": true, + "E": true, + "F": true, + "G": false, + "H": true, + "I": true, + "J": false, + "K": false, + "L": true, + "M": true, + "N": false, + "O": false, + "P": true, + "Q": false, + "R": true, + "S": true, + "T": false, + "U": false, + "V": true, + "W": true, + "X": true, + "Y": false, + "Z": false + }, + "Classes": { + "Symbols": false, + "Numbers": false, + "A": false, + "B": false, + "C": false, + "D": false, + "E": false, + "F": false, + "G": false, + "H": false, + "I": false, + "J": false, + "K": false, + "L": false, + "M": false, + "N": false, + "O": false, + "P": false, + "Q": false, + "R": false, + "S": true, + "T": false, + "U": false, + "V": false, + "W": false, + "X": false, + "Y": false, + "Z": false + } + } \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ClassesS.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ClassesS.html new file mode 100644 index 0000000..28b7b8f --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ClassesS.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsA.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsA.html new file mode 100644 index 0000000..9a055ea --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsA.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              ATTACHED, Strophe.Status
              AUTH, Strophe.NS
              AUTHENTICATING, Strophe.Status
              AUTHFAIL, Strophe.Status
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsB.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsB.html new file mode 100644 index 0000000..744e30e --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsB.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              BIND, Strophe.NS
              BOSH, Strophe.NS
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsC.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsC.html new file mode 100644 index 0000000..c29394d --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsC.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              CLIENT, Strophe.NS
              CONNECTED, Strophe.Status
              CONNECTING, Strophe.Status
              CONNFAIL, Strophe.Status
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsD.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsD.html new file mode 100644 index 0000000..09e62fe --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsD.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              DEBUG, Strophe.LogLevel
              DISCO_INFO, Strophe.NS
              DISCO_ITEMS, Strophe.NS
              DISCONNECTED, Strophe.Status
              DISCONNECTING, Strophe.Status
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsE.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsE.html new file mode 100644 index 0000000..a1d6a0e --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsE.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsF.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsF.html new file mode 100644 index 0000000..ced88b3 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsF.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              FATAL, Strophe.LogLevel
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsH.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsH.html new file mode 100644 index 0000000..7ac8386 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsH.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              HTTPBIND, Strophe.NS
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsI.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsI.html new file mode 100644 index 0000000..72e02a1 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsI.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              INFO, Strophe.LogLevel
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsL.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsL.html new file mode 100644 index 0000000..f0b7edf --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsL.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsM.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsM.html new file mode 100644 index 0000000..83eabe9 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsM.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              MUC, Strophe.NS
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsP.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsP.html new file mode 100644 index 0000000..1fd637b --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsP.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              PROFILE, Strophe.NS
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsR.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsR.html new file mode 100644 index 0000000..e960e4a --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsR.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              ROSTER, Strophe.NS
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsS.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsS.html new file mode 100644 index 0000000..07dfabf --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsS.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              SASL, Strophe.NS
              SESSION, Strophe.NS
              STREAM, Strophe.NS
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsV.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsV.html new file mode 100644 index 0000000..d9454e9 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsV.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              VERSION, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsW.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsW.html new file mode 100644 index 0000000..2eb92d5 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsW.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              WARN, Strophe.LogLevel
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsX.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsX.html new file mode 100644 index 0000000..8347a8b --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/ConstantsX.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FilesS.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FilesS.html new file mode 100644 index 0000000..8bc8b7f --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FilesS.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsA.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsA.html new file mode 100644 index 0000000..a1609ee --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsA.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              addHandler, Strophe.Connection
              addNamespace, Strophe
              addTimedHandler, Strophe.Connection
              attach, Strophe.Connection
              attrs, Strophe.Builder
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsB.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsB.html new file mode 100644 index 0000000..a7b6ca1 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsB.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              Builder, Strophe.Builder.Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsC.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsC.html new file mode 100644 index 0000000..1f94a41 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsC.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              c, Strophe.Builder
              cnode, Strophe.Builder
              connect, Strophe.Connection
              Connection, Strophe.Connection.Strophe
              copyElement, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsD.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsD.html new file mode 100644 index 0000000..14da49e --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsD.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              debug, Strophe
              deleteHandler, Strophe.Connection
              deleteTimedHandler, Strophe.Connection
              disconnect, Strophe.Connection
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsE.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsE.html new file mode 100644 index 0000000..c6bd5a0 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsE.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              error, Strophe
              escapeNode, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsF.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsF.html new file mode 100644 index 0000000..1a60173 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsF.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              fatal, Strophe
              flush, Strophe.Connection
              forEachChild, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsG.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsG.html new file mode 100644 index 0000000..1d31191 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsG.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              getText, Strophe
              getUniqueId, Strophe.Connection
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsI.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsI.html new file mode 100644 index 0000000..2bf8815 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsI.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              info, Strophe
              isTagEqual, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsL.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsL.html new file mode 100644 index 0000000..b53a03a --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsL.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              log, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsP.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsP.html new file mode 100644 index 0000000..6ae461b --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsP.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              pause, Strophe.Connection
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsR.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsR.html new file mode 100644 index 0000000..c248d26 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsR.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              rawInput, Strophe.Connection
              rawOutput, Strophe.Connection
              reset, Strophe.Connection
              resume, Strophe.Connection
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsS.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsS.html new file mode 100644 index 0000000..1c05b76 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsS.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              send, Strophe.Connection
              sendIQ, Strophe.Connection
              serialize, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsSymbols.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsSymbols.html new file mode 100644 index 0000000..51ade8c --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsSymbols.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsT.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsT.html new file mode 100644 index 0000000..9df6375 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsT.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              t, Strophe.Builder
              toString, Strophe.Builder
              tree, Strophe.Builder
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsU.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsU.html new file mode 100644 index 0000000..cb31959 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsU.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              unescapeNode, Strophe
              up, Strophe.Builder
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsW.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsW.html new file mode 100644 index 0000000..37b4354 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsW.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              warn, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsX.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsX.html new file mode 100644 index 0000000..04b517c --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/FunctionsX.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              xmlElement, Strophe
              xmlescape, Strophe
              xmlInput, Strophe.Connection
              xmlOutput, Strophe.Connection
              xmlTextNode, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralA.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralA.html new file mode 100644 index 0000000..19b69bf --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralA.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              addHandler, Strophe.Connection
              addNamespace, Strophe
              addTimedHandler, Strophe.Connection
              attach, Strophe.Connection
              ATTACHED, Strophe.Status
              attrs, Strophe.Builder
              AUTH, Strophe.NS
              AUTHENTICATING, Strophe.Status
              AUTHFAIL, Strophe.Status
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralB.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralB.html new file mode 100644 index 0000000..e32d8ce --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralB.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              BIND, Strophe.NS
              BOSH, Strophe.NS
              Builder, Strophe.Builder.Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralC.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralC.html new file mode 100644 index 0000000..a0f954b --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralC.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              c, Strophe.Builder
              CLIENT, Strophe.NS
              cnode, Strophe.Builder
              connect, Strophe.Connection
              CONNECTED, Strophe.Status
              CONNECTING, Strophe.Status
              Connection, Strophe.Connection.Strophe
              CONNFAIL, Strophe.Status
              Constants, Strophe
              copyElement, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralD.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralD.html new file mode 100644 index 0000000..a47438c --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralD.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              debug, Strophe
              DEBUG, Strophe.LogLevel
              deleteHandler, Strophe.Connection
              deleteTimedHandler, Strophe.Connection
              DISCO_INFO, Strophe.NS
              DISCO_ITEMS, Strophe.NS
              disconnect, Strophe.Connection
              DISCONNECTED, Strophe.Status
              DISCONNECTING, Strophe.Status
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralE.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralE.html new file mode 100644 index 0000000..420a7a9 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralE.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              error, Strophe
              escapeNode, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralF.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralF.html new file mode 100644 index 0000000..74d1ab0 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralF.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              fatal, Strophe
              FATAL, Strophe.LogLevel
              flush, Strophe.Connection
              forEachChild, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralG.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralG.html new file mode 100644 index 0000000..1d31191 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralG.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              getText, Strophe
              getUniqueId, Strophe.Connection
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralH.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralH.html new file mode 100644 index 0000000..7ac8386 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralH.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              HTTPBIND, Strophe.NS
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralI.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralI.html new file mode 100644 index 0000000..58a1e8d --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralI.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              info, Strophe
              INFO, Strophe.LogLevel
              isTagEqual, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralL.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralL.html new file mode 100644 index 0000000..c40427e --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralL.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              log, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralM.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralM.html new file mode 100644 index 0000000..83eabe9 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralM.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              MUC, Strophe.NS
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralP.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralP.html new file mode 100644 index 0000000..9284aa6 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralP.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              pause, Strophe.Connection
              PROFILE, Strophe.NS
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralR.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralR.html new file mode 100644 index 0000000..02a819b --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralR.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              rawInput, Strophe.Connection
              rawOutput, Strophe.Connection
              reset, Strophe.Connection
              resume, Strophe.Connection
              ROSTER, Strophe.NS
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralS.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralS.html new file mode 100644 index 0000000..28884a3 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralS.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              SASL, Strophe.NS
              send, Strophe.Connection
              sendIQ, Strophe.Connection
              serialize, Strophe
              SESSION, Strophe.NS
              STREAM, Strophe.NS
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralSymbols.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralSymbols.html new file mode 100644 index 0000000..51ade8c --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralSymbols.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralT.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralT.html new file mode 100644 index 0000000..9df6375 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralT.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              t, Strophe.Builder
              toString, Strophe.Builder
              tree, Strophe.Builder
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralU.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralU.html new file mode 100644 index 0000000..cb31959 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralU.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              unescapeNode, Strophe
              up, Strophe.Builder
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralV.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralV.html new file mode 100644 index 0000000..d9454e9 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralV.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              VERSION, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralW.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralW.html new file mode 100644 index 0000000..57e332b --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralW.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              warn, Strophe
              WARN, Strophe.LogLevel
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralX.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralX.html new file mode 100644 index 0000000..8ba0857 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/GeneralX.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
              Loading...
              xmlElement, Strophe
              xmlescape, Strophe
              xmlInput, Strophe.Connection
              xmlOutput, Strophe.Connection
              xmlTextNode, Strophe
              Searching...
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/search/NoResults.html b/app/assets/javascripts/strophejs-1.0.1/doc/search/NoResults.html new file mode 100644 index 0000000..02ce888 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/search/NoResults.html @@ -0,0 +1,15 @@ + + + + + + + + + + + + +
              No Matches
              \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/doc/styles/main.css b/app/assets/javascripts/strophejs-1.0.1/doc/styles/main.css new file mode 100644 index 0000000..134199a --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/doc/styles/main.css @@ -0,0 +1,767 @@ +/* + IMPORTANT: If you're editing this file in the output directory of one of + your projects, your changes will be overwritten the next time you run + Natural Docs. Instead, copy this file to your project directory, make your + changes, and you can use it with -s. Even better would be to make a CSS + file in your project directory with only your changes, which you can then + use with -s [original style] [your changes]. + + On the other hand, if you're editing this file in the Natural Docs styles + directory, the changes will automatically be applied to all your projects + that use this style the next time Natural Docs is run on them. + + This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure + Natural Docs is licensed under the GPL +*/ + +body { + font: 10pt Verdana, Arial, sans-serif; + color: #000000; + margin: 0; padding: 0; + } + +.ContentPage, +.IndexPage, +.FramedMenuPage { + background-color: #E8E8E8; + } +.FramedContentPage, +.FramedIndexPage, +.FramedSearchResultsPage, +.PopupSearchResultsPage { + background-color: #FFFFFF; + } + + +a:link, +a:visited { color: #900000; text-decoration: none } +a:hover { color: #900000; text-decoration: underline } +a:active { color: #FF0000; text-decoration: underline } + +td { + vertical-align: top } + +img { border: 0; } + + +/* + Comment out this line to use web-style paragraphs (blank line between + paragraphs, no indent) instead of print-style paragraphs (no blank line, + indented.) +*/ +p { + text-indent: 5ex; margin: 0 } + + +/* Opera doesn't break with just wbr, but will if you add this. */ +.Opera wbr:after { + content: "\00200B"; + } + + +/* Blockquotes are used as containers for things that may need to scroll. */ +blockquote { + padding: 0; + margin: 0; + overflow: auto; + } + + +.Firefox1 blockquote { + padding-bottom: .5em; + } + +/* Turn off scrolling when printing. */ +@media print { + blockquote { + overflow: visible; + } + .IE blockquote { + width: auto; + } + } + + + +#Menu { + font-size: 9pt; + padding: 10px 0 0 0; + } +.ContentPage #Menu, +.IndexPage #Menu { + position: absolute; + top: 0; + left: 0; + width: 31ex; + overflow: hidden; + } +.ContentPage .Firefox #Menu, +.IndexPage .Firefox #Menu { + width: 27ex; + } + + + .MTitle { + font-size: 16pt; font-weight: bold; font-variant: small-caps; + text-align: center; + padding: 5px 10px 15px 10px; + border-bottom: 1px dotted #000000; + margin-bottom: 15px } + + .MSubTitle { + font-size: 9pt; font-weight: normal; font-variant: normal; + margin-top: 1ex; margin-bottom: 5px } + + + .MEntry a:link, + .MEntry a:hover, + .MEntry a:visited { color: #606060; margin-right: 0 } + .MEntry a:active { color: #A00000; margin-right: 0 } + + + .MGroup { + font-variant: small-caps; font-weight: bold; + margin: 1em 0 1em 10px; + } + + .MGroupContent { + font-variant: normal; font-weight: normal } + + .MGroup a:link, + .MGroup a:hover, + .MGroup a:visited { color: #545454; margin-right: 10px } + .MGroup a:active { color: #A00000; margin-right: 10px } + + + .MFile, + .MText, + .MLink, + .MIndex { + padding: 1px 17px 2px 10px; + margin: .25em 0 .25em 0; + } + + .MText { + font-size: 8pt; font-style: italic } + + .MLink { + font-style: italic } + + #MSelected { + color: #000000; background-color: #FFFFFF; + /* Replace padding with border. */ + padding: 0 10px 0 10px; + border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000; + margin-right: 5px; + } + + /* Close off the left side when its in a group. */ + .MGroup #MSelected { + padding-left: 9px; border-left-width: 1px } + + /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ + .Firefox #MSelected { + -moz-border-radius-topright: 10px; + -moz-border-radius-bottomright: 10px } + .Firefox .MGroup #MSelected { + -moz-border-radius-topleft: 10px; + -moz-border-radius-bottomleft: 10px } + + + #MSearchPanel { + padding: 0px 6px; + margin: .25em 0; + } + + + #MSearchField { + font: italic 9pt Verdana, sans-serif; + color: #606060; + background-color: #E8E8E8; + border: none; + padding: 2px 4px; + width: 100%; + } + /* Only Opera gets it right. */ + .Firefox #MSearchField, + .IE #MSearchField, + .Safari #MSearchField { + width: 94%; + } + .Opera9 #MSearchField, + .Konqueror #MSearchField { + width: 97%; + } + .FramedMenuPage .Firefox #MSearchField, + .FramedMenuPage .Safari #MSearchField, + .FramedMenuPage .Konqueror #MSearchField { + width: 98%; + } + + /* Firefox doesn't do this right in frames without #MSearchPanel added on. + It's presence doesn't hurt anything other browsers. */ + #MSearchPanel.MSearchPanelInactive:hover #MSearchField { + background-color: #FFFFFF; + border: 1px solid #C0C0C0; + padding: 1px 3px; + } + .MSearchPanelActive #MSearchField { + background-color: #FFFFFF; + border: 1px solid #C0C0C0; + font-style: normal; + padding: 1px 3px; + } + + #MSearchType { + visibility: hidden; + font: 8pt Verdana, sans-serif; + width: 98%; + padding: 0; + border: 1px solid #C0C0C0; + } + .MSearchPanelActive #MSearchType, + /* As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */ + #MSearchPanel.MSearchPanelInactive:hover #MSearchType, + #MSearchType:focus { + visibility: visible; + color: #606060; + } + #MSearchType option#MSearchEverything { + font-weight: bold; + } + + .Opera8 .MSearchPanelInactive:hover, + .Opera8 .MSearchPanelActive { + margin-left: -1px; + } + + + iframe#MSearchResults { + width: 60ex; + height: 15em; + } + #MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000000; + background-color: #E8E8E8; + } + #MSearchResultsWindowClose { + font-weight: bold; + font-size: 8pt; + display: block; + padding: 2px 5px; + } + #MSearchResultsWindowClose:link, + #MSearchResultsWindowClose:visited { + color: #000000; + text-decoration: none; + } + #MSearchResultsWindowClose:active, + #MSearchResultsWindowClose:hover { + color: #800000; + text-decoration: none; + background-color: #F4F4F4; + } + + + + +#Content { + padding-bottom: 15px; + } + +.ContentPage #Content { + border-width: 0 0 1px 1px; + border-style: solid; + border-color: #000000; + background-color: #FFFFFF; + font-size: 9pt; /* To make 31ex match the menu's 31ex. */ + margin-left: 31ex; + } +.ContentPage .Firefox #Content { + margin-left: 27ex; + } + + + + .CTopic { + font-size: 10pt; + margin-bottom: 3em; + } + + + .CTitle { + font-size: 12pt; font-weight: bold; + border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0; + margin: 0 15px .5em 15px } + + .CGroup .CTitle { + font-size: 16pt; font-variant: small-caps; + padding-left: 15px; padding-right: 15px; + border-width: 0 0 2px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + .CClass .CTitle, + .CInterface .CTitle, + .CDatabase .CTitle, + .CDatabaseTable .CTitle, + .CSection .CTitle { + font-size: 18pt; + color: #FFFFFF; background-color: #A0A0A0; + padding: 10px 15px 10px 15px; + border-width: 2px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + #MainTopic .CTitle { + font-size: 20pt; + color: #FFFFFF; background-color: #7070C0; + padding: 10px 15px 10px 15px; + border-width: 0 0 3px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + .CBody { + margin-left: 15px; margin-right: 15px } + + + .CToolTip { + position: absolute; visibility: hidden; + left: 0; top: 0; + background-color: #FFFFE0; + padding: 5px; + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000; + font-size: 8pt; + } + + .Opera .CToolTip { + max-width: 98%; + } + + /* Scrollbars would be useless. */ + .CToolTip blockquote { + overflow: hidden; + } + .IE6 .CToolTip blockquote { + overflow: visible; + } + + .CHeading { + font-weight: bold; font-size: 10pt; + margin: 1.5em 0 .5em 0; + } + + .CBody pre { + font: 10pt "Courier New", Courier, monospace; + margin: 1em 0; + } + + .CBody ul { + /* I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever. + Reapply it here as padding. */ + padding-left: 15px; padding-right: 15px; + margin: .5em 5ex .5em 5ex; + } + + .CDescriptionList { + margin: .5em 5ex 0 5ex } + + .CDLEntry { + font: 10pt "Courier New", Courier, monospace; color: #808080; + padding-bottom: .25em; + white-space: nowrap } + + .CDLDescription { + font-size: 10pt; /* For browsers that don't inherit correctly, like Opera 5. */ + padding-bottom: .5em; padding-left: 5ex } + + + .CTopic img { + text-align: center; + display: block; + margin: 1em auto; + } + .CImageCaption { + font-variant: small-caps; + font-size: 8pt; + color: #808080; + text-align: center; + position: relative; + top: 1em; + } + + .CImageLink { + color: #808080; + font-style: italic; + } + a.CImageLink:link, + a.CImageLink:visited, + a.CImageLink:hover { color: #808080 } + + + + + +.Prototype { + font: 10pt "Courier New", Courier, monospace; + padding: 5px 3ex; + border-width: 1px; border-style: solid; + margin: 0 5ex 1.5em 5ex; + } + + .Prototype td { + font-size: 10pt; + } + + .PDefaultValue, + .PDefaultValuePrefix, + .PTypePrefix { + color: #8F8F8F; + } + .PTypePrefix { + text-align: right; + } + .PAfterParameters { + vertical-align: bottom; + } + + .IE .Prototype table { + padding: 0; + } + + .CFunction .Prototype { + background-color: #F4F4F4; border-color: #D0D0D0 } + .CProperty .Prototype { + background-color: #F4F4FF; border-color: #C0C0E8 } + .CVariable .Prototype { + background-color: #FFFFF0; border-color: #E0E0A0 } + + .CClass .Prototype { + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0; + background-color: #F4F4F4; + } + .CInterface .Prototype { + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0; + background-color: #F4F4FF; + } + + .CDatabaseIndex .Prototype, + .CConstant .Prototype { + background-color: #D0D0D0; border-color: #000000 } + .CType .Prototype, + .CEnumeration .Prototype { + background-color: #FAF0F0; border-color: #E0B0B0; + } + .CDatabaseTrigger .Prototype, + .CEvent .Prototype, + .CDelegate .Prototype { + background-color: #F0FCF0; border-color: #B8E4B8 } + + .CToolTip .Prototype { + margin: 0 0 .5em 0; + white-space: nowrap; + } + + + + + +.Summary { + margin: 1.5em 5ex 0 5ex } + + .STitle { + font-size: 12pt; font-weight: bold; + margin-bottom: .5em } + + + .SBorder { + background-color: #FFFFF0; + padding: 15px; + border: 1px solid #C0C060 } + + /* In a frame IE 6 will make them too long unless you set the width to 100%. Without frames it will be correct without a width + or slightly too long (but not enough to scroll) with a width. This arbitrary weirdness simply astounds me. IE 7 has the same + problem with frames, haven't tested it without. */ + .FramedContentPage .IE .SBorder { + width: 100% } + + /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ + .Firefox .SBorder { + -moz-border-radius: 20px } + + + .STable { + font-size: 9pt; width: 100% } + + .SEntry { + width: 30% } + .SDescription { + width: 70% } + + + .SMarked { + background-color: #F8F8D8 } + + .SDescription { padding-left: 2ex } + .SIndent1 .SEntry { padding-left: 1.5ex } .SIndent1 .SDescription { padding-left: 3.5ex } + .SIndent2 .SEntry { padding-left: 3.0ex } .SIndent2 .SDescription { padding-left: 5.0ex } + .SIndent3 .SEntry { padding-left: 4.5ex } .SIndent3 .SDescription { padding-left: 6.5ex } + .SIndent4 .SEntry { padding-left: 6.0ex } .SIndent4 .SDescription { padding-left: 8.0ex } + .SIndent5 .SEntry { padding-left: 7.5ex } .SIndent5 .SDescription { padding-left: 9.5ex } + + .SDescription a { color: #800000} + .SDescription a:active { color: #A00000 } + + .SGroup td { + padding-top: .5em; padding-bottom: .25em } + + .SGroup .SEntry { + font-weight: bold; font-variant: small-caps } + + .SGroup .SEntry a { color: #800000 } + .SGroup .SEntry a:active { color: #F00000 } + + + .SMain td, + .SClass td, + .SDatabase td, + .SDatabaseTable td, + .SSection td { + font-size: 10pt; + padding-bottom: .25em } + + .SClass td, + .SDatabase td, + .SDatabaseTable td, + .SSection td { + padding-top: 1em } + + .SMain .SEntry, + .SClass .SEntry, + .SDatabase .SEntry, + .SDatabaseTable .SEntry, + .SSection .SEntry { + font-weight: bold; + } + + .SMain .SEntry a, + .SClass .SEntry a, + .SDatabase .SEntry a, + .SDatabaseTable .SEntry a, + .SSection .SEntry a { color: #000000 } + + .SMain .SEntry a:active, + .SClass .SEntry a:active, + .SDatabase .SEntry a:active, + .SDatabaseTable .SEntry a:active, + .SSection .SEntry a:active { color: #A00000 } + + + + + +.ClassHierarchy { + margin: 0 15px 1em 15px } + + .CHEntry { + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0; + margin-bottom: 3px; + padding: 2px 2ex; + font-size: 10pt; + background-color: #F4F4F4; color: #606060; + } + + .Firefox .CHEntry { + -moz-border-radius: 4px; + } + + .CHCurrent .CHEntry { + font-weight: bold; + border-color: #000000; + color: #000000; + } + + .CHChildNote .CHEntry { + font-style: italic; + font-size: 8pt; + } + + .CHIndent { + margin-left: 3ex; + } + + .CHEntry a:link, + .CHEntry a:visited, + .CHEntry a:hover { + color: #606060; + } + .CHEntry a:active { + color: #800000; + } + + + + + +#Index { + background-color: #FFFFFF; + } + +/* As opposed to .PopupSearchResultsPage #Index */ +.IndexPage #Index, +.FramedIndexPage #Index, +.FramedSearchResultsPage #Index { + padding: 15px; + } + +.IndexPage #Index { + border-width: 0 0 1px 1px; + border-style: solid; + border-color: #000000; + font-size: 9pt; /* To make 27ex match the menu's 27ex. */ + margin-left: 27ex; + } + + + .IPageTitle { + font-size: 20pt; font-weight: bold; + color: #FFFFFF; background-color: #7070C0; + padding: 10px 15px 10px 15px; + border-width: 0 0 3px 0; border-color: #000000; border-style: solid; + margin: -15px -15px 0 -15px } + + .FramedSearchResultsPage .IPageTitle { + margin-bottom: 15px; + } + + .INavigationBar { + font-size: 10pt; + text-align: center; + background-color: #FFFFF0; + padding: 5px; + border-bottom: solid 1px black; + margin: 0 -15px 15px -15px; + } + + .INavigationBar a { + font-weight: bold } + + .IHeading { + font-size: 16pt; font-weight: bold; + padding: 2.5em 0 .5em 0; + text-align: center; + width: 3.5ex; + } + #IFirstHeading { + padding-top: 0; + } + + .IEntry { + font-size: 10pt; + padding-left: 1ex; + } + .PopupSearchResultsPage .IEntry { + font-size: 8pt; + padding: 1px 5px; + } + .PopupSearchResultsPage .Opera9 .IEntry, + .FramedSearchResultsPage .Opera9 .IEntry { + text-align: left; + } + .FramedSearchResultsPage .IEntry { + padding: 0; + } + + .ISubIndex { + padding-left: 3ex; padding-bottom: .5em } + .PopupSearchResultsPage .ISubIndex { + display: none; + } + + /* While it may cause some entries to look like links when they aren't, I found it's much easier to read the + index if everything's the same color. */ + .ISymbol { + font-weight: bold; color: #900000 } + + .IndexPage .ISymbolPrefix, + .FramedIndexPage .ISymbolPrefix { + font-size: 10pt; + text-align: right; + color: #C47C7C; + background-color: #F8F8F8; + border-right: 3px solid #E0E0E0; + border-left: 1px solid #E0E0E0; + padding: 0 1px 0 2px; + } + .PopupSearchResultsPage .ISymbolPrefix, + .FramedSearchResultsPage .ISymbolPrefix { + color: #900000; + } + .PopupSearchResultsPage .ISymbolPrefix { + font-size: 8pt; + } + + .IndexPage #IFirstSymbolPrefix, + .FramedIndexPage #IFirstSymbolPrefix { + border-top: 1px solid #E0E0E0; + } + .IndexPage #ILastSymbolPrefix, + .FramedIndexPage #ILastSymbolPrefix { + border-bottom: 1px solid #E0E0E0; + } + .IndexPage #IOnlySymbolPrefix, + .FramedIndexPage #IOnlySymbolPrefix { + border-top: 1px solid #E0E0E0; + border-bottom: 1px solid #E0E0E0; + } + + a.IParent, + a.IFile { + display: block; + } + + .PopupSearchResultsPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + } + .FramedSearchResultsPage .SRStatus { + font-size: 10pt; + font-style: italic; + } + + .SRResult { + display: none; + } + + + +#Footer { + font-size: 8pt; + color: #989898; + text-align: right; + } + +#Footer p { + text-indent: 0; + margin-bottom: .5em; + } + +.ContentPage #Footer, +.IndexPage #Footer { + text-align: right; + margin: 2px; + } + +.FramedMenuPage #Footer { + text-align: center; + margin: 5em 10px 10px 10px; + padding-top: 1em; + border-top: 1px solid #C8C8C8; + } + + #Footer a:link, + #Footer a:hover, + #Footer a:visited { color: #989898 } + #Footer a:active { color: #A00000 } + diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/attach/README b/app/assets/javascripts/strophejs-1.0.1/examples/attach/README new file mode 100644 index 0000000..3b190aa --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/attach/README @@ -0,0 +1,37 @@ +This is an example of Strophe attaching to a pre-existing BOSH session +that is created externally. This example requires a bit more than +HTML and JavaScript. Specifically it contains a very simple Web +application written in Django which creates a BOSH session before +rendering the page. + +Requirements: + +* Django 1.0 (http://www.djangoproject.com) +* Twisted 8.1.x (http://twistedmatrix.com) +* Punjab 0.3 (http://code.stanziq.com/punjab) + +Note that Twisted and Punjab are only used for small functions related +to JID and BOSH parsing. + +How It Works: + +The Django app contains one view which is tied to the root URL. This +view uses the BOSHClient class to start a BOSH session using the +settings from settings.py. + +Once the connection is established, Django passes the JID, SID, and +RID for the BOSH session into the template engine and renders the +page. + +The template assigns the JID, SID, and RID to global vars like so: + + var BOSH_JID = {{ jid }}; + var BOSH_SID = {{ sid }}; + var BOSH_RID = {{ rid }}; + +The connection is attached to Strophe by calling +Strophe.Connection.attach() with this data and a connection callback +handler. + +To show that the session is attached and works, a disco info ping is +done to jabber.org. diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/attach/__init__.py b/app/assets/javascripts/strophejs-1.0.1/examples/attach/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/attach/__init__.py diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/attach/attacher/__init__.py b/app/assets/javascripts/strophejs-1.0.1/examples/attach/attacher/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/attach/attacher/__init__.py diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/attach/attacher/views.py b/app/assets/javascripts/strophejs-1.0.1/examples/attach/attacher/views.py new file mode 100644 index 0000000..c495cab --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/attach/attacher/views.py @@ -0,0 +1,18 @@ +from django.http import HttpResponse +from django.template import Context, loader + +from attach.settings import BOSH_SERVICE, JABBERID, PASSWORD +from attach.boshclient import BOSHClient + +def index(request): + bc = BOSHClient(JABBERID, PASSWORD, BOSH_SERVICE) + bc.startSessionAndAuth() + + t = loader.get_template("attacher/index.html") + c = Context({ + 'jid': bc.jabberid.full(), + 'sid': bc.sid, + 'rid': bc.rid, + }) + + return HttpResponse(t.render(c)) diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/attach/boshclient.py b/app/assets/javascripts/strophejs-1.0.1/examples/attach/boshclient.py new file mode 100644 index 0000000..7d797ef --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/attach/boshclient.py @@ -0,0 +1,152 @@ +import sys, os +import httplib, urllib +import random, binascii +from urlparse import urlparse + +from punjab.httpb import HttpbParse + +from twisted.words.xish import domish +from twisted.words.protocols.jabber import jid + +TLS_XMLNS = 'urn:ietf:params:xml:ns:xmpp-tls' +SASL_XMLNS = 'urn:ietf:params:xml:ns:xmpp-sasl' +BIND_XMLNS = 'urn:ietf:params:xml:ns:xmpp-bind' +SESSION_XMLNS = 'urn:ietf:params:xml:ns:xmpp-session' + + +class BOSHClient: + def __init__(self, jabberid, password, bosh_service): + self.rid = random.randint(0, 10000000) + self.jabberid = jid.internJID(jabberid) + self.password = password + + self.authid = None + self.sid = None + self.logged_in = False + self.headers = {"Content-type": "text/xml", + "Accept": "text/xml"} + + self.bosh_service = urlparse(bosh_service) + + def buildBody(self, child=None): + """Build a BOSH body. + """ + + body = domish.Element(("http://jabber.org/protocol/httpbind", "body")) + body['content'] = 'text/xml; charset=utf-8' + self.rid = self.rid + 1 + body['rid'] = str(self.rid) + body['sid'] = str(self.sid) + body['xml:lang'] = 'en' + + if child is not None: + body.addChild(child) + + return body + + def sendBody(self, body): + """Send the body. + """ + + parser = HttpbParse(True) + + # start new session + conn = httplib.HTTPConnection(self.bosh_service.netloc) + conn.request("POST", self.bosh_service.path, + body.toXml(), self.headers) + + response = conn.getresponse() + data = '' + if response.status == 200: + data = response.read() + conn.close() + + return parser.parse(data) + + def startSessionAndAuth(self, hold='1', wait='70'): + # Create a session + # create body + body = domish.Element(("http://jabber.org/protocol/httpbind", "body")) + + body['content'] = 'text/xml; charset=utf-8' + body['hold'] = hold + body['rid'] = str(self.rid) + body['to'] = self.jabberid.host + body['wait'] = wait + body['window'] = '5' + body['xml:lang'] = 'en' + + + retb, elems = self.sendBody(body) + if type(retb) != str and retb.hasAttribute('authid') and \ + retb.hasAttribute('sid'): + self.authid = retb['authid'] + self.sid = retb['sid'] + + # go ahead and auth + auth = domish.Element((SASL_XMLNS, 'auth')) + auth['mechanism'] = 'PLAIN' + + # TODO: add authzid + if auth['mechanism'] == 'PLAIN': + auth_str = "" + auth_str += "\000" + auth_str += self.jabberid.user.encode('utf-8') + auth_str += "\000" + try: + auth_str += self.password.encode('utf-8').strip() + except UnicodeDecodeError: + auth_str += self.password.decode('latin1') \ + .encode('utf-8').strip() + + auth.addContent(binascii.b2a_base64(auth_str)) + + retb, elems = self.sendBody(self.buildBody(auth)) + if len(elems) == 0: + # poll for data + retb, elems = self.sendBody(self.buildBody()) + + if len(elems) > 0: + if elems[0].name == 'success': + retb, elems = self.sendBody(self.buildBody()) + + if elems[0].firstChildElement().name == 'bind': + iq = domish.Element(('jabber:client', 'iq')) + iq['type'] = 'set' + iq.addUniqueId() + iq.addElement('bind') + iq.bind['xmlns'] = BIND_XMLNS + if self.jabberid.resource: + iq.bind.addElement('resource') + iq.bind.resource.addContent( + self.jabberid.resource) + + retb, elems = self.sendBody(self.buildBody(iq)) + if type(retb) != str and retb.name == 'body': + # send session + iq = domish.Element(('jabber:client', 'iq')) + iq['type'] = 'set' + iq.addUniqueId() + iq.addElement('session') + iq.session['xmlns'] = SESSION_XMLNS + + retb, elems = self.sendBody(self.buildBody(iq)) + + # did not bind, TODO - add a retry? + if type(retb) != str and retb.name == 'body': + self.logged_in = True + # bump up the rid, punjab already + # received self.rid + self.rid += 1 + + +if __name__ == '__main__': + USERNAME = sys.argv[1] + PASSWORD = sys.argv[2] + SERVICE = sys.argv[3] + + c = BOSHClient(USERNAME, PASSWORD, SERVICE) + c.startSessionAndAuth() + + print c.logged_in + diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/attach/manage.py b/app/assets/javascripts/strophejs-1.0.1/examples/attach/manage.py new file mode 100755 index 0000000..5e78ea9 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/attach/manage.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python +from django.core.management import execute_manager +try: + import settings # Assumed to be in the same directory. +except ImportError: + import sys + sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__) + sys.exit(1) + +if __name__ == "__main__": + execute_manager(settings) diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/attach/settings.py b/app/assets/javascripts/strophejs-1.0.1/examples/attach/settings.py new file mode 100644 index 0000000..419ec36 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/attach/settings.py @@ -0,0 +1,85 @@ +# Django settings for attach project. + +DEBUG = True +TEMPLATE_DEBUG = DEBUG + +ADMINS = ( + ('Some Body', 'romeo@example.com'), +) + +MANAGERS = ADMINS + +DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. +DATABASE_NAME = '/path/to/attach.db' # Or path to database file if using sqlite3. +DATABASE_USER = '' # Not used with sqlite3. +DATABASE_PASSWORD = '' # Not used with sqlite3. +DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. +DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3. + +# Local time zone for this installation. Choices can be found here: +# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name +# although not all choices may be available on all operating systems. +# If running in a Windows environment this must be set to the same as your +# system time zone. +TIME_ZONE = 'America/Denver' + +# Language code for this installation. All choices can be found here: +# http://www.i18nguy.com/unicode/language-identifiers.html +LANGUAGE_CODE = 'en-us' + +SITE_ID = 1 + +# If you set this to False, Django will make some optimizations so as not +# to load the internationalization machinery. +USE_I18N = True + +# Absolute path to the directory that holds media. +# Example: "/home/media/media.lawrence.com/" +MEDIA_ROOT = '' + +# URL that handles the media served from MEDIA_ROOT. Make sure to use a +# trailing slash if there is a path component (optional in other cases). +# Examples: "http://media.lawrence.com", "http://example.com/media/" +MEDIA_URL = '' + +# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a +# trailing slash. +# Examples: "http://foo.com/media/", "/media/". +ADMIN_MEDIA_PREFIX = '/media/' + +# Make this unique, and don't share it with anybody. +SECRET_KEY = 'asdf' + +# List of callables that know how to import templates from various sources. +TEMPLATE_LOADERS = ( + 'django.template.loaders.filesystem.load_template_source', + 'django.template.loaders.app_directories.load_template_source', +# 'django.template.loaders.eggs.load_template_source', +) + +MIDDLEWARE_CLASSES = ( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', +) + +ROOT_URLCONF = 'attach.urls' + +TEMPLATE_DIRS = ( + # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". + # Always use forward slashes, even on Windows. + # Don't forget to use absolute paths, not relative paths. + '/path/to/attach/templates', +) + +INSTALLED_APPS = ( + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.sites', + 'attach.attacher', +) + +BOSH_SERVICE = 'http://example.com/xmpp-httpbind' +JABBERID = 'romeo@example.com/bosh' +PASSWORD = 'juliet.is.hawt' diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/attach/templates/attacher/index.html b/app/assets/javascripts/strophejs-1.0.1/examples/attach/templates/attacher/index.html new file mode 100644 index 0000000..14a7590 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/attach/templates/attacher/index.html @@ -0,0 +1,88 @@ + + + + Strophe Attach Example + + + + + + + + +

              Strophe Attach Example

              +

              This example shows how to attach to an existing BOSH session with + Strophe.

              +

              Log

              +
              +
              + + \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/attach/urls.py b/app/assets/javascripts/strophejs-1.0.1/examples/attach/urls.py new file mode 100644 index 0000000..387eb08 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/attach/urls.py @@ -0,0 +1,19 @@ +from django.conf.urls.defaults import * + +# Uncomment the next two lines to enable the admin: +# from django.contrib import admin +# admin.autodiscover() + +urlpatterns = patterns('', + # Example: + # (r'^attach/', include('attach.foo.urls')), + + # Uncomment the admin/doc line below and add 'django.contrib.admindocs' + # to INSTALLED_APPS to enable admin documentation: + # (r'^admin/doc/', include('django.contrib.admindocs.urls')), + + # Uncomment the next line to enable the admin: + # (r'^admin/(.*)', admin.site.root), + + (r'^$', 'attach.attacher.views.index'), +) diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/basic.html b/app/assets/javascripts/strophejs-1.0.1/examples/basic.html new file mode 100644 index 0000000..0b1985d --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/basic.html @@ -0,0 +1,25 @@ + + + + Strophe.js Basic Example + + + + + +
              +
              + + + + + +
              +
              +
              +
              + + diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/basic.js b/app/assets/javascripts/strophejs-1.0.1/examples/basic.js new file mode 100644 index 0000000..0746ec1 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/basic.js @@ -0,0 +1,55 @@ +var BOSH_SERVICE = '/xmpp-httpbind' +var connection = null; + +function log(msg) +{ + $('#log').append('
              ').append(document.createTextNode(msg)); +} + +function rawInput(data) +{ + log('RECV: ' + data); +} + +function rawOutput(data) +{ + log('SENT: ' + data); +} + +function onConnect(status) +{ + if (status == Strophe.Status.CONNECTING) { + log('Strophe is connecting.'); + } else if (status == Strophe.Status.CONNFAIL) { + log('Strophe failed to connect.'); + $('#connect').get(0).value = 'connect'; + } else if (status == Strophe.Status.DISCONNECTING) { + log('Strophe is disconnecting.'); + } else if (status == Strophe.Status.DISCONNECTED) { + log('Strophe is disconnected.'); + $('#connect').get(0).value = 'connect'; + } else if (status == Strophe.Status.CONNECTED) { + log('Strophe is connected.'); + connection.disconnect(); + } +} + +$(document).ready(function () { + connection = new Strophe.Connection(BOSH_SERVICE); + connection.rawInput = rawInput; + connection.rawOutput = rawOutput; + + $('#connect').bind('click', function () { + var button = $('#connect').get(0); + if (button.value == 'connect') { + button.value = 'disconnect'; + + connection.connect($('#jid').get(0).value, + $('#pass').get(0).value, + onConnect); + } else { + button.value = 'connect'; + connection.disconnect(); + } + }); +}); \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.html b/app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.html new file mode 100644 index 0000000..4de9a93 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.html @@ -0,0 +1,32 @@ + + + + Strophe.js Basic Cross-Domain Example + + + + + + + + + + +
              +
              + + + + + +
              +
              +
              +
              + + diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.js b/app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.js new file mode 100644 index 0000000..50a7f79 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.js @@ -0,0 +1,62 @@ +// The BOSH_SERVICE here doesn't need to be on the same domain/port, but +// it must have a /crossdomain.xml policy file that allows access from +// wherever crossdomain.html lives. +// +// Most BOSH connection managers can serve static html files, so you should +// be able to configure them to serve a /crossdomain.xml file to allow +// access. +var BOSH_SERVICE = 'http://localhost:5281/xmpp-httpbind' +var connection = null; + +function log(msg) +{ + $('#log').append('
              ').append(document.createTextNode(msg)); +} + +function rawInput(data) +{ + log('RECV: ' + data); +} + +function rawOutput(data) +{ + log('SENT: ' + data); +} + +function onConnect(status) +{ + if (status == Strophe.Status.CONNECTING) { + log('Strophe is connecting.'); + } else if (status == Strophe.Status.CONNFAIL) { + log('Strophe failed to connect.'); + $('#connect').get(0).value = 'connect'; + } else if (status == Strophe.Status.DISCONNECTING) { + log('Strophe is disconnecting.'); + } else if (status == Strophe.Status.DISCONNECTED) { + log('Strophe is disconnected.'); + $('#connect').get(0).value = 'connect'; + } else if (status == Strophe.Status.CONNECTED) { + log('Strophe is connected.'); + connection.disconnect(); + } +} + +$(document).ready(function () { + connection = new Strophe.Connection(BOSH_SERVICE); + connection.rawInput = rawInput; + connection.rawOutput = rawOutput; + + $('#connect').bind('click', function () { + var button = $('#connect').get(0); + if (button.value == 'connect') { + button.value = 'disconnect'; + + connection.connect($('#jid').get(0).value, + $('#pass').get(0).value, + onConnect); + } else { + button.value = 'connect'; + connection.disconnect(); + } + }); +}); \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.xml b/app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.xml new file mode 100644 index 0000000..3dce209 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/crossdomain.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/dojo-ping.html b/app/assets/javascripts/strophejs-1.0.1/examples/dojo-ping.html new file mode 100644 index 0000000..53a2cb3 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/dojo-ping.html @@ -0,0 +1,27 @@ + + + + Strophe.js Dojo Ping Example + + + + + + +
              +
              +
              + + + + + +
              +
              +
              + +
              + +
              + + diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/dojo-ping.js b/app/assets/javascripts/strophejs-1.0.1/examples/dojo-ping.js new file mode 100644 index 0000000..0e3bddf --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/dojo-ping.js @@ -0,0 +1,56 @@ +var DojoPing = { + BOSH_SERVICE: '/xmpp-httpbind', + TARGET: 'jabber.org', + connection: null +}; + +dojo.addOnLoad(function () { + dojo.connect(dojo.byId('connect'), "click", function (e) { + var jid = dojo.attr(dojo.byId('jid'), 'value'); + var pass_node = dojo.byId('pass'); + var pass = dojo.attr(pass_node, 'value'); + dojo.attr(pass_node, 'value', ''); + + DojoPing.connection = new Strophe.Connection(DojoPing.BOSH_SERVICE); + + dojo.place("

              Connecting...

              ", "log"); + + DojoPing.connection.connect(jid, pass, function (status) { + if (status === Strophe.Status.CONNECTED) { + dojo.publish('connected'); + } else if (status === Strophe.Status.DISCONNECTED) { + dojo.publish('disconnected'); + } + }); + }); + + dojo.subscribe('connected', function () { + dojo.place("

              Connected.

              ", "log"); + + var ping = $iq({to: DojoPing.TARGET, type: 'get'}) + .c('query', {xmlns: Strophe.NS.DISCO_ITEMS}); + + var sent_stamp = new Date(); + DojoPing.connection.sendIQ(ping, function (iq) { + var elapsed = new Date() - sent_stamp; + + // use dojo.query on incoming stanza + var items = dojo.query('items', iq); + console.log(items); + + dojo.place("

              Disco#items response received after " + + elapsed + "ms." + DojoPing.TARGET + " reports " + + "it has " + items + " disco items.

              ", "log"); + + DojoPing.connection.disconnect(); + }); + + DojoPing.connection.send(ping); + + dojo.place("

              Ping sent to " + DojoPing.TARGET + ".

              ", "log"); + }); + + dojo.subscribe('disconnected', function () { + dojo.place("

              Disconnected.

              ", "log"); + }); +}); \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/echobot.html b/app/assets/javascripts/strophejs-1.0.1/examples/echobot.html new file mode 100644 index 0000000..07f97f5 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/echobot.html @@ -0,0 +1,25 @@ + + + + Strophe.js Echobot Example + + + + + +
              +
              + + + + + +
              +
              +
              +
              + + diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/echobot.js b/app/assets/javascripts/strophejs-1.0.1/examples/echobot.js new file mode 100644 index 0000000..02ffc2a --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/echobot.js @@ -0,0 +1,79 @@ +var BOSH_SERVICE = '/http-bind'; +var connection = null; + +function log(msg) +{ + $('#log').append('
              ').append(document.createTextNode(msg)); +} + +function onConnect(status) +{ + if (status == Strophe.Status.CONNECTING) { + log('Strophe is connecting.'); + } else if (status == Strophe.Status.CONNFAIL) { + log('Strophe failed to connect.'); + $('#connect').get(0).value = 'connect'; + } else if (status == Strophe.Status.DISCONNECTING) { + log('Strophe is disconnecting.'); + } else if (status == Strophe.Status.DISCONNECTED) { + log('Strophe is disconnected.'); + $('#connect').get(0).value = 'connect'; + } else if (status == Strophe.Status.CONNECTED) { + log('Strophe is connected.'); + log('ECHOBOT: Send a message to ' + connection.jid + + ' to talk to me.'); + + connection.addHandler(onMessage, null, 'message', null, null, null); + connection.send($pres().tree()); + } +} + +function onMessage(msg) { + var to = msg.getAttribute('to'); + var from = msg.getAttribute('from'); + var type = msg.getAttribute('type'); + var elems = msg.getElementsByTagName('body'); + + if (type == "chat" && elems.length > 0) { + var body = elems[0]; + + log('ECHOBOT: I got a message from ' + from + ': ' + + Strophe.getText(body)); + + var reply = $msg({to: from, from: to, type: 'chat'}) + .cnode(Strophe.copyElement(body)); + connection.send(reply.tree()); + + log('ECHOBOT: I sent ' + from + ': ' + Strophe.getText(body)); + } + + // we must return true to keep the handler alive. + // returning false would remove it after it finishes. + return true; +} + +$(document).ready(function () { + connection = new Strophe.Connection(BOSH_SERVICE); + + // Uncomment the following lines to spy on the wire traffic. + //connection.rawInput = function (data) { log('RECV: ' + data); }; + //connection.rawOutput = function (data) { log('SEND: ' + data); }; + + // Uncomment the following line to see all the debug output. + //Strophe.log = function (level, msg) { log('LOG: ' + msg); }; + + + $('#connect').bind('click', function () { + var button = $('#connect').get(0); + if (button.value == 'connect') { + button.value = 'disconnect'; + + connection.connect($('#jid').get(0).value, + $('#pass').get(0).value, + onConnect); + } else { + button.value = 'connect'; + connection.disconnect(); + } + }); +}); diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/prebind.html b/app/assets/javascripts/strophejs-1.0.1/examples/prebind.html new file mode 100644 index 0000000..b9d4a34 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/prebind.html @@ -0,0 +1,39 @@ + + + + + + Strophe.js Pre-Bind Example + + + + + + +
              +
              + + + + + +
              +
              + +
              + +
              + + diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/prebind.js b/app/assets/javascripts/strophejs-1.0.1/examples/prebind.js new file mode 100644 index 0000000..009ac7d --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/prebind.js @@ -0,0 +1,103 @@ +// http-pre-bind example +// This example works with mod_http_pre_bind found here: +// http://github.com/thepug/Mod-Http-Pre-Bind +// +// It expects both /xmpp-httpbind to be proxied and /http-pre-bind +// +// If you want to test this out without setting it up, you can use Collecta's +// at http://www.collecta.com/xmpp-httpbind and +// http://www.collecta.com/http-pre-bind +// Use a JID of 'guest.collecta.com' to test. + +var BOSH_SERVICE = '/xmpp-httpbind'; +var PREBIND_SERVICE = '/http-pre-bind'; +var connection = null; + +function log(msg) +{ + $('#log').append('
              ').append(document.createTextNode(msg)); +} + +function rawInput(data) +{ + log('RECV: ' + data); +} + +function rawOutput(data) +{ + log('SENT: ' + data); +} + +function onConnect(status) +{ + if (status === Strophe.Status.CONNECTING) { + log('Strophe is connecting.'); + } else if (status === Strophe.Status.CONNFAIL) { + log('Strophe failed to connect.'); + $('#connect').get(0).value = 'connect'; + } else if (status === Strophe.Status.DISCONNECTING) { + log('Strophe is disconnecting.'); + } else if (status === Strophe.Status.DISCONNECTED) { + log('Strophe is disconnected.'); + $('#connect').get(0).value = 'connect'; + } else if (status === Strophe.Status.CONNECTED) { + log('Strophe is connected.'); + connection.disconnect(); + } else if (status === Strophe.Status.ATTACHED) { + log('Strophe is attached.'); + connection.disconnect(); + } +} + +function normal_connect() { + log('Prebind failed. Connecting normally...'); + + connection = new Strophe.Connection(BOSH_SERVICE); + connection.rawInput = rawInput; + connection.rawOutput = rawOutput; + + connection.connect($('#jid').val(), $('#pass').val(), onConnect); +} + +function attach(data) { + log('Prebind succeeded. Attaching...'); + + connection = new Strophe.Connection(BOSH_SERVICE); + connection.rawInput = rawInput; + connection.rawOutput = rawOutput; + + var $body = $(data.documentElement); + connection.attach($body.find('jid').text(), + $body.attr('sid'), + parseInt($body.attr('rid'), 10) + 1, + onConnect); +} + +$(document).ready(function () { + $('#connect').bind('click', function () { + var button = $('#connect').get(0); + if (button.value == 'connect') { + button.value = 'disconnect'; + + // attempt prebind + $.ajax({ + type: 'POST', + url: PREBIND_SERVICE, + contentType: 'text/xml', + processData: false, + data: $build('body', { + to: Strophe.getDomainFromJid($('#jid').val()), + rid: '' + Math.floor(Math.random() * 4294967295), + wait: '60', + hold: '1'}).toString(), + dataType: 'xml', + error: normal_connect, + success: attach}); + } else { + button.value = 'connect'; + if (connection) { + connection.disconnect(); + } + } + }); +}); \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/prototype-ping.html b/app/assets/javascripts/strophejs-1.0.1/examples/prototype-ping.html new file mode 100644 index 0000000..990cc41 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/prototype-ping.html @@ -0,0 +1,27 @@ + + + + Strophe.js Prototype Ping Example + + + + + + +
              +
              +
              + + + + + +
              +
              +
              + +
              + +
              + + diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/prototype-ping.js b/app/assets/javascripts/strophejs-1.0.1/examples/prototype-ping.js new file mode 100644 index 0000000..db2b423 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/prototype-ping.js @@ -0,0 +1,56 @@ +var ProtoPing = { + BOSH_SERVICE: '/xmpp-httpbind', + TARGET: 'jabber.org', + connection: null +}; + +document.observe('dom:loaded', function () { + var log = $('log'); + + $('connect').observe('click', function () { + var jid = $F('jid'); + var pass = $F('pass'); + Form.Element.setValue('pass', ''); + + ProtoPing.connection = new Strophe.Connection(ProtoPing.BOSH_SERVICE); + + log.insert("

              Connecting...

              "); + + ProtoPing.connection.connect(jid, pass, function (status) { + if (status === Strophe.Status.CONNECTED) { + document.fire('strophe:connected'); + } else if (status === Strophe.Status.DISCONNECTED) { + document.fire('strophe:disconnected'); + } + }); + }); + + document.observe('strophe:connected', function () { + log.insert('

              Connected.

              '); + + var ping = $iq({to: ProtoPing.TARGET, type: 'get'}) + .c('query', {xmlns: Strophe.NS.DISCO_ITEMS}); + + var sent_stamp = new Date(); + ProtoPing.connection.sendIQ(ping, function (iq) { + var elapsed = new Date() - sent_stamp; + + // use Prototype's selectors to access XMPP stanza + var items = Selector.findChildElements(iq, ['item']); + + log.insert("

              Disco#items response received after " + + elapsed + "ms." + ProtoPing.TARGET + " reports " + + "it has " + items + " disco items.

              "); + + ProtoPing.connection.disconnect(); + }); + + ProtoPing.connection.send(ping); + + log.insert("

              Ping sent to " + ProtoPing.TARGET + ".

              "); + }); + + document.observe('strophe:disconnected', function () { + log.insert('

              Disconnected.

              '); + }); +}); \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/yui-ping.html b/app/assets/javascripts/strophejs-1.0.1/examples/yui-ping.html new file mode 100644 index 0000000..05ee3bd --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/yui-ping.html @@ -0,0 +1,26 @@ + + + + Strophe.js YUI3 Ping Example + + + + + +
              +
              +
              + + + + + +
              +
              +
              + +
              + +
              + + diff --git a/app/assets/javascripts/strophejs-1.0.1/examples/yui-ping.js b/app/assets/javascripts/strophejs-1.0.1/examples/yui-ping.js new file mode 100644 index 0000000..6441009 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/examples/yui-ping.js @@ -0,0 +1,58 @@ +YUI().use('node', function (Y) { + var BOSH_SERVICE = '/xmpp-httpbind'; + var connection = null; + + var log = Y.one('#log'); + + Y.augment(Strophe.Connection, Y.EventTarget); + + Y.one('#connect').on('click', function (e) { + var jid = Y.one('#jid').get('value'); + var pass_node = Y.one('#pass'); + var pass = pass_node.get('value'); + pass_node.set('value', ''); + + connection = new Strophe.Connection(BOSH_SERVICE); + + log.append('

              Connecting...

              '); + + connection.connect(jid, pass, function (status) { + if (status === Strophe.Status.CONNECTED) { + connection.fire('connected'); + } else if (status === Strophe.Status.DISCONNECTED) { + connection.fire('disconnected'); + } + }); + + connection.on('connected', function () { + log.append('

              Connected.

              '); + + var ping = $iq({to: 'jabber.org', type: 'get'}) + .c('query', {xmlns: Strophe.NS.DISCO_ITEMS}); + + var sent_stamp = new Date(); + connection.sendIQ(ping, function (iq) { + var elapsed = new Date() - sent_stamp; + + // convert incoming XMPP stanza to a Node + var stanza = Y.Selector.query('item', iq, null, true); + window['stanza'] = iq; + window['Y'] = Y; + + console.log(stanza); + + log.append("

              Disco#items response received after " + + elapsed + "ms. Jabber.org reports it has " + + items + " items.

              "); + + connection.disconnect(); + }); + + log.append('

              Ping sent.

              '); + }); + + connection.on('disconnected', function () { + log.append('

              Disconnected.

              '); + }); + }); +}); \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.js b/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.js new file mode 100644 index 0000000..0b0958e --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.js @@ -0,0 +1,31 @@ +/* flXHR plugin +** +** This plugin implements cross-domain XmlHttpRequests via an invisible +** Flash plugin. +** +** In order for this to work, the BOSH service *must* serve a +** crossdomain.xml file that allows the client access. +** +** flXHR.js should be loaded before this plugin. +*/ + +Strophe.addConnectionPlugin('flxhr', { + init: function () { + // replace Strophe.Request._newXHR with new flXHR version + // if flXHR is detected + if (flensed && flensed.flXHR) { + Strophe.Request.prototype._newXHR = function () { + var xhr = new flensed.flXHR({ + autoUpdatePlayer: true, + instancePooling: true, + noCacheHeader: false}); + xhr.onreadystatechange = this.func.prependArg(this); + + return xhr; + }; + } else { + Strophe.error("flXHR plugin loaded, but flXHR not found." + + " Falling back to native XHR implementation."); + } + } +}); diff --git a/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.min.js b/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.min.js new file mode 100644 index 0000000..33f5e9c --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.flxhr.min.js @@ -0,0 +1 @@ +Strophe.addConnectionPlugin("flxhr",{init:function(){if(flensed&&flensed.flXHR){Strophe.Request.prototype._newXHR=function(){var xhr=new flensed.flXHR({autoUpdatePlayer:true,instancePooling:true,noCacheHeader:false});xhr.onreadystatechange=this.func.prependArg(this);return xhr}}else{Strophe.error("flXHR plugin loaded, but flXHR not found. Falling back to native XHR implementation.")}}}); \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.js b/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.js new file mode 100644 index 0000000..e2dc003 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.js @@ -0,0 +1,270 @@ +/* + Copyright 2008, Stanziq Inc. +*/ + +Strophe.addConnectionPlugin('pubsub', { +/* + Extend connection object to have plugin name 'pubsub'. +*/ + _connection: null, + + //The plugin must have the init function. + init: function(conn) { + + this._connection = conn; + + /* + Function used to setup plugin. + */ + + /* extend name space + * NS.PUBSUB - XMPP Publish Subscribe namespace + * from XEP 60. + * + * NS.PUBSUB_SUBSCRIBE_OPTIONS - XMPP pubsub + * options namespace from XEP 60. + */ + Strophe.addNamespace('PUBSUB',"http://jabber.org/protocol/pubsub"); + Strophe.addNamespace('PUBSUB_SUBSCRIBE_OPTIONS', + Strophe.NS.PUBSUB+"#subscribe_options"); + Strophe.addNamespace('PUBSUB_ERRORS',Strophe.NS.PUBSUB+"#errors"); + Strophe.addNamespace('PUBSUB_EVENT',Strophe.NS.PUBSUB+"#event"); + Strophe.addNamespace('PUBSUB_OWNER',Strophe.NS.PUBSUB+"#owner"); + Strophe.addNamespace('PUBSUB_AUTO_CREATE', + Strophe.NS.PUBSUB+"#auto-create"); + Strophe.addNamespace('PUBSUB_PUBLISH_OPTIONS', + Strophe.NS.PUBSUB+"#publish-options"); + Strophe.addNamespace('PUBSUB_NODE_CONFIG', + Strophe.NS.PUBSUB+"#node_config"); + Strophe.addNamespace('PUBSUB_CREATE_AND_CONFIGURE', + Strophe.NS.PUBSUB+"#create-and-configure"); + Strophe.addNamespace('PUBSUB_SUBSCRIBE_AUTHORIZATION', + Strophe.NS.PUBSUB+"#subscribe_authorization"); + Strophe.addNamespace('PUBSUB_GET_PENDING', + Strophe.NS.PUBSUB+"#get-pending"); + Strophe.addNamespace('PUBSUB_MANAGE_SUBSCRIPTIONS', + Strophe.NS.PUBSUB+"#manage-subscriptions"); + Strophe.addNamespace('PUBSUB_META_DATA', + Strophe.NS.PUBSUB+"#meta-data"); + + }, + /***Function + + Create a pubsub node on the given service with the given node + name. + + Parameters: + (String) jid - The node owner's jid. + (String) service - The name of the pubsub service. + (String) node - The name of the pubsub node. + (Dictionary) options - The configuration options for the node. + (Function) call_back - Used to determine if node + creation was sucessful. + + Returns: + Iq id used to send subscription. + */ + createNode: function(jid,service,node,options, call_back) { + + var iqid = this._connection.getUniqueId("pubsubcreatenode"); + + var iq = $iq({from:jid, to:service, type:'set', id:iqid}); + + var c_options = Strophe.xmlElement("configure",[]); + var x = Strophe.xmlElement("x",[["xmlns","jabber:x:data"]]); + var form_field = Strophe.xmlElement("field",[["var","FORM_TYPE"], + ["type","hidden"]]); + var value = Strophe.xmlElement("value",[]); + var text = Strophe.xmlTextNode(Strophe.NS.PUBSUB+"#node_config"); + value.appendChild(text); + form_field.appendChild(value); + x.appendChild(form_field); + + for (var i in options) + { + var val = options[i]; + x.appendChild(val); + } + + if(options.length && options.length != 0) + { + c_options.appendChild(x); + } + + iq.c('pubsub', + {xmlns:Strophe.NS.PUBSUB}).c('create', + {node:node}).up().cnode(c_options); + + this._connection.addHandler(call_back, + null, + 'iq', + null, + iqid, + null); + this._connection.send(iq.tree()); + return iqid; + }, + /***Function + Subscribe to a node in order to receive event items. + + Parameters: + (String) jid - The node owner's jid. + (String) service - The name of the pubsub service. + (String) node - The name of the pubsub node. + (Array) options - The configuration options for the node. + (Function) event_cb - Used to recieve subscription events. + (Function) call_back - Used to determine if node + creation was sucessful. + + Returns: + Iq id used to send subscription. + */ + subscribe: function(jid,service,node,options, event_cb, call_back) { + + var subid = this._connection.getUniqueId("subscribenode"); + + //create subscription options + var sub_options = Strophe.xmlElement("options",[]); + var x = Strophe.xmlElement("x",[["xmlns","jabber:x:data"]]); + var form_field = Strophe.xmlElement("field",[["var","FORM_TYPE"], + ["type","hidden"]]); + var value = Strophe.xmlElement("value",[]); + var text = Strophe.xmlTextNode(Strophe.NS.PUBSUB_SUBSCRIBE_OPTIONS); + value.appendChild(text); + form_field.appendChild(value); + x.appendChild(form_field); + + var sub = $iq({from:jid, to:service, type:'set', id:subid}) + + if(options && options.length && options.length !== 0) + { + for (var i = 0; i < options.length; i++) + { + var val = options[i]; + x.appendChild(val); + } + sub_options.appendChild(x); + + sub.c('pubsub', { xmlns:Strophe.NS.PUBSUB }).c('subscribe', + {node:node,jid:jid}).up().cnode(sub_options); + } + else + { + + sub.c('pubsub', { xmlns:Strophe.NS.PUBSUB }).c('subscribe', + {node:node,jid:jid}); + } + + + this._connection.addHandler(call_back, + null, + 'iq', + null, + subid, + null); + + //add the event handler to receive items + this._connection.addHandler(event_cb, + null, + 'message', + null, + null, + null); + this._connection.send(sub.tree()); + return subid; + + }, + /***Function + Unsubscribe from a node. + + Parameters: + (String) jid - The node owner's jid. + (String) service - The name of the pubsub service. + (String) node - The name of the pubsub node. + (Function) call_back - Used to determine if node + creation was sucessful. + + */ + unsubscribe: function(jid,service,node, call_back) { + + var subid = this._connection.getUniqueId("unsubscribenode"); + + + var sub = $iq({from:jid, to:service, type:'set', id:subid}) + sub.c('pubsub', { xmlns:Strophe.NS.PUBSUB }).c('unsubscribe', + {node:node,jid:jid}); + + + + this._connection.addHandler(call_back, + null, + 'iq', + null, + subid, + null); + this._connection.send(sub.tree()); + + + return subid; + + }, + /***Function + + Publish and item to the given pubsub node. + + Parameters: + (String) jid - The node owner's jid. + (String) service - The name of the pubsub service. + (String) node - The name of the pubsub node. + (Array) items - The list of items to be published. + (Function) call_back - Used to determine if node + creation was sucessful. + */ + publish: function(jid, service, node, items, call_back) { + var pubid = this._connection.getUniqueId("publishnode"); + + + var publish_elem = Strophe.xmlElement("publish", + [["node", + node], + ["jid", + jid]]); + for (var i in items) + { + var item = Strophe.xmlElement("item",[]); + var entry = Strophe.xmlElement("entry",[]); + var t = Strophe.xmlTextNode(items[i]); + entry.appendChild(t); + item.appendChild(entry); + publish_elem.appendChild(item); + } + + var pub = $iq({from:jid, to:service, type:'set', id:pubid}) + pub.c('pubsub', { xmlns:Strophe.NS.PUBSUB }).cnode(publish_elem); + + + this._connection.addHandler(call_back, + null, + 'iq', + null, + pubid, + null); + this._connection.send(pub.tree()); + + + return pubid; + }, + /*Function: items + Used to retrieve the persistent items from the pubsub node. + + */ + items: function(jid,service,node,ok_callback,error_back) { + var pub = $iq({from:jid, to:service, type:'get'}) + + //ask for all items + pub.c('pubsub', + { xmlns:Strophe.NS.PUBSUB }).c('items',{node:node}); + + return this._connection.sendIQ(pub.tree(),ok_callback,error_back); + } +}); diff --git a/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.min.js b/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.min.js new file mode 100644 index 0000000..166f882 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/plugins/strophe.pubsub.min.js @@ -0,0 +1 @@ +Strophe.addConnectionPlugin("pubsub",{_connection:null,init:function(conn){this._connection=conn;Strophe.addNamespace("PUBSUB","http://jabber.org/protocol/pubsub");Strophe.addNamespace("PUBSUB_SUBSCRIBE_OPTIONS",Strophe.NS.PUBSUB+"#subscribe_options");Strophe.addNamespace("PUBSUB_ERRORS",Strophe.NS.PUBSUB+"#errors");Strophe.addNamespace("PUBSUB_EVENT",Strophe.NS.PUBSUB+"#event");Strophe.addNamespace("PUBSUB_OWNER",Strophe.NS.PUBSUB+"#owner");Strophe.addNamespace("PUBSUB_AUTO_CREATE",Strophe.NS.PUBSUB+"#auto-create");Strophe.addNamespace("PUBSUB_PUBLISH_OPTIONS",Strophe.NS.PUBSUB+"#publish-options");Strophe.addNamespace("PUBSUB_NODE_CONFIG",Strophe.NS.PUBSUB+"#node_config");Strophe.addNamespace("PUBSUB_CREATE_AND_CONFIGURE",Strophe.NS.PUBSUB+"#create-and-configure");Strophe.addNamespace("PUBSUB_SUBSCRIBE_AUTHORIZATION",Strophe.NS.PUBSUB+"#subscribe_authorization");Strophe.addNamespace("PUBSUB_GET_PENDING",Strophe.NS.PUBSUB+"#get-pending");Strophe.addNamespace("PUBSUB_MANAGE_SUBSCRIPTIONS",Strophe.NS.PUBSUB+"#manage-subscriptions");Strophe.addNamespace("PUBSUB_META_DATA",Strophe.NS.PUBSUB+"#meta-data")},createNode:function(jid,service,node,options,call_back){var iqid=this._connection.getUniqueId("pubsubcreatenode");var iq=$iq({from:jid,to:service,type:"set",id:iqid});var c_options=Strophe.xmlElement("configure",[]);var x=Strophe.xmlElement("x",[["xmlns","jabber:x:data"]]);var form_field=Strophe.xmlElement("field",[["var","FORM_TYPE"],["type","hidden"]]);var value=Strophe.xmlElement("value",[]);var text=Strophe.xmlTextNode(Strophe.NS.PUBSUB+"#node_config");value.appendChild(text);form_field.appendChild(value);x.appendChild(form_field);for(var i in options){var val=options[i];x.appendChild(val)}if(options.length&&options.length!=0){c_options.appendChild(x)}iq.c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("create",{node:node}).up().cnode(c_options);this._connection.addHandler(call_back,null,"iq",null,iqid,null);this._connection.send(iq.tree());return iqid},subscribe:function(jid,service,node,options,event_cb,call_back){var subid=this._connection.getUniqueId("subscribenode");var sub_options=Strophe.xmlElement("options",[]);var x=Strophe.xmlElement("x",[["xmlns","jabber:x:data"]]);var form_field=Strophe.xmlElement("field",[["var","FORM_TYPE"],["type","hidden"]]);var value=Strophe.xmlElement("value",[]);var text=Strophe.xmlTextNode(Strophe.NS.PUBSUB_SUBSCRIBE_OPTIONS);value.appendChild(text);form_field.appendChild(value);x.appendChild(form_field);var sub=$iq({from:jid,to:service,type:"set",id:subid});if(options&&options.length&&options.length!==0){for(var i=0;i> 2; + enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); + enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); + enc4 = chr3 & 63; + + if (isNaN(chr2)) { + enc3 = enc4 = 64; + } else if (isNaN(chr3)) { + enc4 = 64; + } + + output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + + keyStr.charAt(enc3) + keyStr.charAt(enc4); + } while (i < input.length); + + return output; + }, + + /** + * Decodes a base64 string. + * @param {String} input The string to decode. + */ + decode: function (input) { + var output = ""; + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0; + + // remove all characters that are not A-Z, a-z, 0-9, +, /, or = + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + + do { + enc1 = keyStr.indexOf(input.charAt(i++)); + enc2 = keyStr.indexOf(input.charAt(i++)); + enc3 = keyStr.indexOf(input.charAt(i++)); + enc4 = keyStr.indexOf(input.charAt(i++)); + + chr1 = (enc1 << 2) | (enc2 >> 4); + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); + chr3 = ((enc3 & 3) << 6) | enc4; + + output = output + String.fromCharCode(chr1); + + if (enc3 != 64) { + output = output + String.fromCharCode(chr2); + } + if (enc4 != 64) { + output = output + String.fromCharCode(chr3); + } + } while (i < input.length); + + return output; + } + }; + + return obj; +})(); +/* + * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message + * Digest Algorithm, as defined in RFC 1321. + * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for more info. + */ + +var MD5 = (function () { + /* + * Configurable variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + */ + var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ + var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ + var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ + + /* + * Add integers, wrapping at 2^32. This uses 16-bit operations internally + * to work around bugs in some JS interpreters. + */ + var safe_add = function (x, y) { + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); + }; + + /* + * Bitwise rotate a 32-bit number to the left. + */ + var bit_rol = function (num, cnt) { + return (num << cnt) | (num >>> (32 - cnt)); + }; + + /* + * Convert a string to an array of little-endian words + * If chrsz is ASCII, characters >255 have their hi-byte silently ignored. + */ + var str2binl = function (str) { + var bin = []; + var mask = (1 << chrsz) - 1; + for(var i = 0; i < str.length * chrsz; i += chrsz) + { + bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32); + } + return bin; + }; + + /* + * Convert an array of little-endian words to a string + */ + var binl2str = function (bin) { + var str = ""; + var mask = (1 << chrsz) - 1; + for(var i = 0; i < bin.length * 32; i += chrsz) + { + str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask); + } + return str; + }; + + /* + * Convert an array of little-endian words to a hex string. + */ + var binl2hex = function (binarray) { + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i++) + { + str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF); + } + return str; + }; + + /* + * Convert an array of little-endian words to a base-64 string + */ + var binl2b64 = function (binarray) { + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var str = ""; + var triplet, j; + for(var i = 0; i < binarray.length * 4; i += 3) + { + triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16) | + (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 ) | + ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF); + for(j = 0; j < 4; j++) + { + if(i * 8 + j * 6 > binarray.length * 32) { str += b64pad; } + else { str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); } + } + } + return str; + }; + + /* + * These functions implement the four basic operations the algorithm uses. + */ + var md5_cmn = function (q, a, b, x, s, t) { + return safe_add(bit_rol(safe_add(safe_add(a, q),safe_add(x, t)), s),b); + }; + + var md5_ff = function (a, b, c, d, x, s, t) { + return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); + }; + + var md5_gg = function (a, b, c, d, x, s, t) { + return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); + }; + + var md5_hh = function (a, b, c, d, x, s, t) { + return md5_cmn(b ^ c ^ d, a, b, x, s, t); + }; + + var md5_ii = function (a, b, c, d, x, s, t) { + return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); + }; + + /* + * Calculate the MD5 of an array of little-endian words, and a bit length + */ + var core_md5 = function (x, len) { + /* append padding */ + x[len >> 5] |= 0x80 << ((len) % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + var olda, oldb, oldc, oldd; + for (var i = 0; i < x.length; i += 16) + { + olda = a; + oldb = b; + oldc = c; + oldd = d; + + a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); + d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); + c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); + b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); + a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); + d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); + c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); + b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); + a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); + d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); + c = md5_ff(c, d, a, b, x[i+10], 17, -42063); + b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); + a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); + d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); + c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); + b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329); + + a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); + d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); + c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); + b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); + a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); + d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); + c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); + b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); + a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); + d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); + c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); + b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); + a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); + d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); + c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); + b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734); + + a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); + d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); + c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); + b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); + a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); + d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); + c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); + b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); + a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); + d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); + c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); + b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); + a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); + d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); + c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); + b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); + + a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); + d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); + c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); + b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); + a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); + d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); + c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); + b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); + a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); + d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); + c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); + b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); + a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); + d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); + c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); + b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + } + return [a, b, c, d]; + }; + + + /* + * Calculate the HMAC-MD5, of a key and some data + */ + var core_hmac_md5 = function (key, data) { + var bkey = str2binl(key); + if(bkey.length > 16) { bkey = core_md5(bkey, key.length * chrsz); } + + var ipad = new Array(16), opad = new Array(16); + for(var i = 0; i < 16; i++) + { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz); + return core_md5(opad.concat(hash), 512 + 128); + }; + + var obj = { + /* + * These are the functions you'll usually want to call. + * They take string arguments and return either hex or base-64 encoded + * strings. + */ + hexdigest: function (s) { + return binl2hex(core_md5(str2binl(s), s.length * chrsz)); + }, + + b64digest: function (s) { + return binl2b64(core_md5(str2binl(s), s.length * chrsz)); + }, + + hash: function (s) { + return binl2str(core_md5(str2binl(s), s.length * chrsz)); + }, + + hmac_hexdigest: function (key, data) { + return binl2hex(core_hmac_md5(key, data)); + }, + + hmac_b64digest: function (key, data) { + return binl2b64(core_hmac_md5(key, data)); + }, + + hmac_hash: function (key, data) { + return binl2str(core_hmac_md5(key, data)); + }, + + /* + * Perform a simple self-test to see if the VM is working + */ + test: function () { + return MD5.hexdigest("abc") === "900150983cd24fb0d6963f7d28e17f72"; + } + }; + + return obj; +})(); + +/* + This program is distributed under the terms of the MIT license. + Please see the LICENSE file for details. + + Copyright 2006-2008, OGG, LLC +*/ + +/* jslint configuration: */ +/*global document, window, setTimeout, clearTimeout, console, + XMLHttpRequest, ActiveXObject, + Base64, MD5, + Strophe, $build, $msg, $iq, $pres */ + +/** File: strophe.js + * A JavaScript library for XMPP BOSH. + * + * This is the JavaScript version of the Strophe library. Since JavaScript + * has no facilities for persistent TCP connections, this library uses + * Bidirectional-streams Over Synchronous HTTP (BOSH) to emulate + * a persistent, stateful, two-way connection to an XMPP server. More + * information on BOSH can be found in XEP 124. + */ + +/** PrivateFunction: Function.prototype.bind + * Bind a function to an instance. + * + * This Function object extension method creates a bound method similar + * to those in Python. This means that the 'this' object will point + * to the instance you want. See + * Bound Functions and Function Imports in JavaScript + * for a complete explanation. + * + * This extension already exists in some browsers (namely, Firefox 3), but + * we provide it to support those that don't. + * + * Parameters: + * (Object) obj - The object that will become 'this' in the bound function. + * + * Returns: + * The bound function. + */ +if (!Function.prototype.bind) { + Function.prototype.bind = function (obj) + { + var func = this; + return function () { return func.apply(obj, arguments); }; + }; +} + +/** PrivateFunction: Function.prototype.prependArg + * Prepend an argument to a function. + * + * This Function object extension method returns a Function that will + * invoke the original function with an argument prepended. This is useful + * when some object has a callback that needs to get that same object as + * an argument. The following fragment illustrates a simple case of this + * > var obj = new Foo(this.someMethod); + * + * Foo's constructor can now use func.prependArg(this) to ensure the + * passed in callback function gets the instance of Foo as an argument. + * Doing this without prependArg would mean not setting the callback + * from the constructor. + * + * This is used inside Strophe for passing the Strophe.Request object to + * the onreadystatechange handler of XMLHttpRequests. + * + * Parameters: + * arg - The argument to pass as the first parameter to the function. + * + * Returns: + * A new Function which calls the original with the prepended argument. + */ +if (!Function.prototype.prependArg) { + Function.prototype.prependArg = function (arg) + { + var func = this; + + return function () { + var newargs = [arg]; + for (var i = 0; i < arguments.length; i++) { + newargs.push(arguments[i]); + } + return func.apply(this, newargs); + }; + }; +} + +/** PrivateFunction: Array.prototype.indexOf + * Return the index of an object in an array. + * + * This function is not supplied by some JavaScript implementations, so + * we provide it if it is missing. This code is from: + * http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference:Objects:Array:indexOf + * + * Parameters: + * (Object) elt - The object to look for. + * (Integer) from - The index from which to start looking. (optional). + * + * Returns: + * The index of elt in the array or -1 if not found. + */ +if (!Array.prototype.indexOf) +{ + Array.prototype.indexOf = function(elt /*, from*/) + { + var len = this.length; + + var from = Number(arguments[1]) || 0; + from = (from < 0) ? Math.ceil(from) : Math.floor(from); + if (from < 0) { + from += len; + } + + for (; from < len; from++) { + if (from in this && this[from] === elt) { + return from; + } + } + + return -1; + }; +} + +/* All of the Strophe globals are defined in this special function below so + * that references to the globals become closures. This will ensure that + * on page reload, these references will still be available to callbacks + * that are still executing. + */ + +(function (callback) { +var Strophe; + +/** Function: $build + * Create a Strophe.Builder. + * This is an alias for 'new Strophe.Builder(name, attrs)'. + * + * Parameters: + * (String) name - The root element name. + * (Object) attrs - The attributes for the root element in object notation. + * + * Returns: + * A new Strophe.Builder object. + */ +function $build(name, attrs) { return new Strophe.Builder(name, attrs); } +/** Function: $msg + * Create a Strophe.Builder with a element as the root. + * + * Parmaeters: + * (Object) attrs - The element attributes in object notation. + * + * Returns: + * A new Strophe.Builder object. + */ +function $msg(attrs) { return new Strophe.Builder("message", attrs); } +/** Function: $iq + * Create a Strophe.Builder with an element as the root. + * + * Parameters: + * (Object) attrs - The element attributes in object notation. + * + * Returns: + * A new Strophe.Builder object. + */ +function $iq(attrs) { return new Strophe.Builder("iq", attrs); } +/** Function: $pres + * Create a Strophe.Builder with a element as the root. + * + * Parameters: + * (Object) attrs - The element attributes in object notation. + * + * Returns: + * A new Strophe.Builder object. + */ +function $pres(attrs) { return new Strophe.Builder("presence", attrs); } + +/** Class: Strophe + * An object container for all Strophe library functions. + * + * This class is just a container for all the objects and constants + * used in the library. It is not meant to be instantiated, but to + * provide a namespace for library objects, constants, and functions. + */ +Strophe = { + /** Constant: VERSION + * The version of the Strophe library. Unreleased builds will have + * a version of head-HASH where HASH is a partial revision. + */ + VERSION: "1.0.1", + + /** Constants: XMPP Namespace Constants + * Common namespace constants from the XMPP RFCs and XEPs. + * + * NS.HTTPBIND - HTTP BIND namespace from XEP 124. + * NS.BOSH - BOSH namespace from XEP 206. + * NS.CLIENT - Main XMPP client namespace. + * NS.AUTH - Legacy authentication namespace. + * NS.ROSTER - Roster operations namespace. + * NS.PROFILE - Profile namespace. + * NS.DISCO_INFO - Service discovery info namespace from XEP 30. + * NS.DISCO_ITEMS - Service discovery items namespace from XEP 30. + * NS.MUC - Multi-User Chat namespace from XEP 45. + * NS.SASL - XMPP SASL namespace from RFC 3920. + * NS.STREAM - XMPP Streams namespace from RFC 3920. + * NS.BIND - XMPP Binding namespace from RFC 3920. + * NS.SESSION - XMPP Session namespace from RFC 3920. + */ + NS: { + HTTPBIND: "http://jabber.org/protocol/httpbind", + BOSH: "urn:xmpp:xbosh", + CLIENT: "jabber:client", + AUTH: "jabber:iq:auth", + ROSTER: "jabber:iq:roster", + PROFILE: "jabber:iq:profile", + DISCO_INFO: "http://jabber.org/protocol/disco#info", + DISCO_ITEMS: "http://jabber.org/protocol/disco#items", + MUC: "http://jabber.org/protocol/muc", + SASL: "urn:ietf:params:xml:ns:xmpp-sasl", + STREAM: "http://etherx.jabber.org/streams", + BIND: "urn:ietf:params:xml:ns:xmpp-bind", + SESSION: "urn:ietf:params:xml:ns:xmpp-session", + VERSION: "jabber:iq:version", + STANZAS: "urn:ietf:params:xml:ns:xmpp-stanzas" + }, + + /** Function: addNamespace + * This function is used to extend the current namespaces in + * Strophe.NS. It takes a key and a value with the key being the + * name of the new namespace, with its actual value. + * For example: + * Strophe.addNamespace('PUBSUB', "http://jabber.org/protocol/pubsub"); + * + * Parameters: + * (String) name - The name under which the namespace will be + * referenced under Strophe.NS + * (String) value - The actual namespace. + */ + addNamespace: function (name, value) + { + Strophe.NS[name] = value; + }, + + /** Constants: Connection Status Constants + * Connection status constants for use by the connection handler + * callback. + * + * Status.ERROR - An error has occurred + * Status.CONNECTING - The connection is currently being made + * Status.CONNFAIL - The connection attempt failed + * Status.AUTHENTICATING - The connection is authenticating + * Status.AUTHFAIL - The authentication attempt failed + * Status.CONNECTED - The connection has succeeded + * Status.DISCONNECTED - The connection has been terminated + * Status.DISCONNECTING - The connection is currently being terminated + * Status.ATTACHED - The connection has been attached + */ + Status: { + ERROR: 0, + CONNECTING: 1, + CONNFAIL: 2, + AUTHENTICATING: 3, + AUTHFAIL: 4, + CONNECTED: 5, + DISCONNECTED: 6, + DISCONNECTING: 7, + ATTACHED: 8 + }, + + /** Constants: Log Level Constants + * Logging level indicators. + * + * LogLevel.DEBUG - Debug output + * LogLevel.INFO - Informational output + * LogLevel.WARN - Warnings + * LogLevel.ERROR - Errors + * LogLevel.FATAL - Fatal errors + */ + LogLevel: { + DEBUG: 0, + INFO: 1, + WARN: 2, + ERROR: 3, + FATAL: 4 + }, + + /** PrivateConstants: DOM Element Type Constants + * DOM element types. + * + * ElementType.NORMAL - Normal element. + * ElementType.TEXT - Text data element. + */ + ElementType: { + NORMAL: 1, + TEXT: 3 + }, + + /** PrivateConstants: Timeout Values + * Timeout values for error states. These values are in seconds. + * These should not be changed unless you know exactly what you are + * doing. + * + * TIMEOUT - Timeout multiplier. A waiting request will be considered + * failed after Math.floor(TIMEOUT * wait) seconds have elapsed. + * This defaults to 1.1, and with default wait, 66 seconds. + * SECONDARY_TIMEOUT - Secondary timeout multiplier. In cases where + * Strophe can detect early failure, it will consider the request + * failed if it doesn't return after + * Math.floor(SECONDARY_TIMEOUT * wait) seconds have elapsed. + * This defaults to 0.1, and with default wait, 6 seconds. + */ + TIMEOUT: 1.1, + SECONDARY_TIMEOUT: 0.1, + + /** Function: forEachChild + * Map a function over some or all child elements of a given element. + * + * This is a small convenience function for mapping a function over + * some or all of the children of an element. If elemName is null, all + * children will be passed to the function, otherwise only children + * whose tag names match elemName will be passed. + * + * Parameters: + * (XMLElement) elem - The element to operate on. + * (String) elemName - The child element tag name filter. + * (Function) func - The function to apply to each child. This + * function should take a single argument, a DOM element. + */ + forEachChild: function (elem, elemName, func) + { + var i, childNode; + + for (i = 0; i < elem.childNodes.length; i++) { + childNode = elem.childNodes[i]; + if (childNode.nodeType == Strophe.ElementType.NORMAL && + (!elemName || this.isTagEqual(childNode, elemName))) { + func(childNode); + } + } + }, + + /** Function: isTagEqual + * Compare an element's tag name with a string. + * + * This function is case insensitive. + * + * Parameters: + * (XMLElement) el - A DOM element. + * (String) name - The element name. + * + * Returns: + * true if the element's tag name matches _el_, and false + * otherwise. + */ + isTagEqual: function (el, name) + { + return el.tagName.toLowerCase() == name.toLowerCase(); + }, + + /** PrivateVariable: _xmlGenerator + * _Private_ variable that caches a DOM document to + * generate elements. + */ + _xmlGenerator: null, + + /** PrivateFunction: _makeGenerator + * _Private_ function that creates a dummy XML DOM document to serve as + * an element and text node generator. + */ + _makeGenerator: function () { + var doc; + + if (window.ActiveXObject) { + doc = new ActiveXObject("Microsoft.XMLDOM"); + doc.appendChild(doc.createElement('strophe')); + } else { + doc = document.implementation + .createDocument('jabber:client', 'strophe', null); + } + + return doc; + }, + + /** Function: xmlElement + * Create an XML DOM element. + * + * This function creates an XML DOM element correctly across all + * implementations. Specifically the Microsoft implementation of + * document.createElement makes DOM elements with 43+ default attributes + * unless elements are created with the ActiveX object Microsoft.XMLDOM. + * + * Most DOMs force element names to lowercase, so we use the + * _realname attribute on the created element to store the case + * sensitive name. This is required to generate proper XML for + * things like vCard avatars (XEP 153). This attribute is stripped + * out before being sent over the wire or serialized, but you may + * notice it during debugging. + * + * Parameters: + * (String) name - The name for the element. + * (Array) attrs - An optional array of key/value pairs to use as + * element attributes in the following format [['key1', 'value1'], + * ['key2', 'value2']] + * (String) text - The text child data for the element. + * + * Returns: + * A new XML DOM element. + */ + xmlElement: function (name) + { + if (!name) { return null; } + + var node = null; + if (!Strophe._xmlGenerator) { + Strophe._xmlGenerator = Strophe._makeGenerator(); + } + node = Strophe._xmlGenerator.createElement(name); + + // FIXME: this should throw errors if args are the wrong type or + // there are more than two optional args + var a, i, k; + for (a = 1; a < arguments.length; a++) { + if (!arguments[a]) { continue; } + if (typeof(arguments[a]) == "string" || + typeof(arguments[a]) == "number") { + node.appendChild(Strophe.xmlTextNode(arguments[a])); + } else if (typeof(arguments[a]) == "object" && + typeof(arguments[a].sort) == "function") { + for (i = 0; i < arguments[a].length; i++) { + if (typeof(arguments[a][i]) == "object" && + typeof(arguments[a][i].sort) == "function") { + node.setAttribute(arguments[a][i][0], + arguments[a][i][1]); + } + } + } else if (typeof(arguments[a]) == "object") { + for (k in arguments[a]) { + if (arguments[a].hasOwnProperty(k)) { + node.setAttribute(k, arguments[a][k]); + } + } + } + } + + return node; + }, + + /* Function: xmlescape + * Excapes invalid xml characters. + * + * Parameters: + * (String) text - text to escape. + * + * Returns: + * Escaped text. + */ + xmlescape: function(text) + { + text = text.replace(/\&/g, "&"); + text = text.replace(//g, ">"); + return text; + }, + + /** Function: xmlTextNode + * Creates an XML DOM text node. + * + * Provides a cross implementation version of document.createTextNode. + * + * Parameters: + * (String) text - The content of the text node. + * + * Returns: + * A new XML DOM text node. + */ + xmlTextNode: function (text) + { + //ensure text is escaped + text = Strophe.xmlescape(text); + + if (!Strophe._xmlGenerator) { + Strophe._xmlGenerator = Strophe._makeGenerator(); + } + return Strophe._xmlGenerator.createTextNode(text); + }, + + /** Function: getText + * Get the concatenation of all text children of an element. + * + * Parameters: + * (XMLElement) elem - A DOM element. + * + * Returns: + * A String with the concatenated text of all text element children. + */ + getText: function (elem) + { + if (!elem) { return null; } + + var str = ""; + if (elem.childNodes.length === 0 && elem.nodeType == + Strophe.ElementType.TEXT) { + str += elem.nodeValue; + } + + for (var i = 0; i < elem.childNodes.length; i++) { + if (elem.childNodes[i].nodeType == Strophe.ElementType.TEXT) { + str += elem.childNodes[i].nodeValue; + } + } + + return str; + }, + + /** Function: copyElement + * Copy an XML DOM element. + * + * This function copies a DOM element and all its descendants and returns + * the new copy. + * + * Parameters: + * (XMLElement) elem - A DOM element. + * + * Returns: + * A new, copied DOM element tree. + */ + copyElement: function (elem) + { + var i, el; + if (elem.nodeType == Strophe.ElementType.NORMAL) { + el = Strophe.xmlElement(elem.tagName); + + for (i = 0; i < elem.attributes.length; i++) { + el.setAttribute(elem.attributes[i].nodeName.toLowerCase(), + elem.attributes[i].value); + } + + for (i = 0; i < elem.childNodes.length; i++) { + el.appendChild(Strophe.copyElement(elem.childNodes[i])); + } + } else if (elem.nodeType == Strophe.ElementType.TEXT) { + el = Strophe.xmlTextNode(elem.nodeValue); + } + + return el; + }, + + /** Function: escapeNode + * Escape the node part (also called local part) of a JID. + * + * Parameters: + * (String) node - A node (or local part). + * + * Returns: + * An escaped node (or local part). + */ + escapeNode: function (node) + { + return node.replace(/^\s+|\s+$/g, '') + .replace(/\\/g, "\\5c") + .replace(/ /g, "\\20") + .replace(/\"/g, "\\22") + .replace(/\&/g, "\\26") + .replace(/\'/g, "\\27") + .replace(/\//g, "\\2f") + .replace(/:/g, "\\3a") + .replace(//g, "\\3e") + .replace(/@/g, "\\40"); + }, + + /** Function: unescapeNode + * Unescape a node part (also called local part) of a JID. + * + * Parameters: + * (String) node - A node (or local part). + * + * Returns: + * An unescaped node (or local part). + */ + unescapeNode: function (node) + { + return node.replace(/\\20/g, " ") + .replace(/\\22/g, '"') + .replace(/\\26/g, "&") + .replace(/\\27/g, "'") + .replace(/\\2f/g, "/") + .replace(/\\3a/g, ":") + .replace(/\\3c/g, "<") + .replace(/\\3e/g, ">") + .replace(/\\40/g, "@") + .replace(/\\5c/g, "\\"); + }, + + /** Function: getNodeFromJid + * Get the node portion of a JID String. + * + * Parameters: + * (String) jid - A JID. + * + * Returns: + * A String containing the node. + */ + getNodeFromJid: function (jid) + { + if (jid.indexOf("@") < 0) { return null; } + return jid.split("@")[0]; + }, + + /** Function: getDomainFromJid + * Get the domain portion of a JID String. + * + * Parameters: + * (String) jid - A JID. + * + * Returns: + * A String containing the domain. + */ + getDomainFromJid: function (jid) + { + var bare = Strophe.getBareJidFromJid(jid); + if (bare.indexOf("@") < 0) { + return bare; + } else { + var parts = bare.split("@"); + parts.splice(0, 1); + return parts.join('@'); + } + }, + + /** Function: getResourceFromJid + * Get the resource portion of a JID String. + * + * Parameters: + * (String) jid - A JID. + * + * Returns: + * A String containing the resource. + */ + getResourceFromJid: function (jid) + { + var s = jid.split("/"); + if (s.length < 2) { return null; } + s.splice(0, 1); + return s.join('/'); + }, + + /** Function: getBareJidFromJid + * Get the bare JID from a JID String. + * + * Parameters: + * (String) jid - A JID. + * + * Returns: + * A String containing the bare JID. + */ + getBareJidFromJid: function (jid) + { + return jid.split("/")[0]; + }, + + /** Function: log + * User overrideable logging function. + * + * This function is called whenever the Strophe library calls any + * of the logging functions. The default implementation of this + * function does nothing. If client code wishes to handle the logging + * messages, it should override this with + * > Strophe.log = function (level, msg) { + * > (user code here) + * > }; + * + * Please note that data sent and received over the wire is logged + * via Strophe.Connection.rawInput() and Strophe.Connection.rawOutput(). + * + * The different levels and their meanings are + * + * DEBUG - Messages useful for debugging purposes. + * INFO - Informational messages. This is mostly information like + * 'disconnect was called' or 'SASL auth succeeded'. + * WARN - Warnings about potential problems. This is mostly used + * to report transient connection errors like request timeouts. + * ERROR - Some error occurred. + * FATAL - A non-recoverable fatal error occurred. + * + * Parameters: + * (Integer) level - The log level of the log message. This will + * be one of the values in Strophe.LogLevel. + * (String) msg - The log message. + */ + log: function (level, msg) + { + return; + }, + + /** Function: debug + * Log a message at the Strophe.LogLevel.DEBUG level. + * + * Parameters: + * (String) msg - The log message. + */ + debug: function(msg) + { + this.log(this.LogLevel.DEBUG, msg); + }, + + /** Function: info + * Log a message at the Strophe.LogLevel.INFO level. + * + * Parameters: + * (String) msg - The log message. + */ + info: function (msg) + { + this.log(this.LogLevel.INFO, msg); + }, + + /** Function: warn + * Log a message at the Strophe.LogLevel.WARN level. + * + * Parameters: + * (String) msg - The log message. + */ + warn: function (msg) + { + this.log(this.LogLevel.WARN, msg); + }, + + /** Function: error + * Log a message at the Strophe.LogLevel.ERROR level. + * + * Parameters: + * (String) msg - The log message. + */ + error: function (msg) + { + this.log(this.LogLevel.ERROR, msg); + }, + + /** Function: fatal + * Log a message at the Strophe.LogLevel.FATAL level. + * + * Parameters: + * (String) msg - The log message. + */ + fatal: function (msg) + { + this.log(this.LogLevel.FATAL, msg); + }, + + /** Function: serialize + * Render a DOM element and all descendants to a String. + * + * Parameters: + * (XMLElement) elem - A DOM element. + * + * Returns: + * The serialized element tree as a String. + */ + serialize: function (elem) + { + var result; + + if (!elem) { return null; } + + if (typeof(elem.tree) === "function") { + elem = elem.tree(); + } + + var nodeName = elem.nodeName; + var i, child; + + if (elem.getAttribute("_realname")) { + nodeName = elem.getAttribute("_realname"); + } + + result = "<" + nodeName; + for (i = 0; i < elem.attributes.length; i++) { + if(elem.attributes[i].nodeName != "_realname") { + result += " " + elem.attributes[i].nodeName.toLowerCase() + + "='" + elem.attributes[i].value + .replace("&", "&") + .replace("'", "'") + .replace("<", "<") + "'"; + } + } + + if (elem.childNodes.length > 0) { + result += ">"; + for (i = 0; i < elem.childNodes.length; i++) { + child = elem.childNodes[i]; + if (child.nodeType == Strophe.ElementType.NORMAL) { + // normal element, so recurse + result += Strophe.serialize(child); + } else if (child.nodeType == Strophe.ElementType.TEXT) { + // text element + result += child.nodeValue; + } + } + result += ""; + } else { + result += "/>"; + } + + return result; + }, + + /** PrivateVariable: _requestId + * _Private_ variable that keeps track of the request ids for + * connections. + */ + _requestId: 0, + + /** PrivateVariable: Strophe.connectionPlugins + * _Private_ variable Used to store plugin names that need + * initialization on Strophe.Connection construction. + */ + _connectionPlugins: {}, + + /** Function: addConnectionPlugin + * Extends the Strophe.Connection object with the given plugin. + * + * Paramaters: + * (String) name - The name of the extension. + * (Object) ptype - The plugin's prototype. + */ + addConnectionPlugin: function (name, ptype) + { + Strophe._connectionPlugins[name] = ptype; + } +}; + +/** Class: Strophe.Builder + * XML DOM builder. + * + * This object provides an interface similar to JQuery but for building + * DOM element easily and rapidly. All the functions except for toString() + * and tree() return the object, so calls can be chained. Here's an + * example using the $iq() builder helper. + * > $iq({to: 'you': from: 'me': type: 'get', id: '1'}) + * > .c('query', {xmlns: 'strophe:example'}) + * > .c('example') + * > .toString() + * The above generates this XML fragment + * > + * > + * > + * > + * > + * The corresponding DOM manipulations to get a similar fragment would be + * a lot more tedious and probably involve several helper variables. + * + * Since adding children makes new operations operate on the child, up() + * is provided to traverse up the tree. To add two children, do + * > builder.c('child1', ...).up().c('child2', ...) + * The next operation on the Builder will be relative to the second child. + */ + +/** Constructor: Strophe.Builder + * Create a Strophe.Builder object. + * + * The attributes should be passed in object notation. For example + * > var b = new Builder('message', {to: 'you', from: 'me'}); + * or + * > var b = new Builder('messsage', {'xml:lang': 'en'}); + * + * Parameters: + * (String) name - The name of the root element. + * (Object) attrs - The attributes for the root element in object notation. + * + * Returns: + * A new Strophe.Builder. + */ +Strophe.Builder = function (name, attrs) +{ + // Set correct namespace for jabber:client elements + if (name == "presence" || name == "message" || name == "iq") { + if (attrs && !attrs.xmlns) { + attrs.xmlns = Strophe.NS.CLIENT; + } else if (!attrs) { + attrs = {xmlns: Strophe.NS.CLIENT}; + } + } + + // Holds the tree being built. + this.nodeTree = Strophe.xmlElement(name, attrs); + + // Points to the current operation node. + this.node = this.nodeTree; +}; + +Strophe.Builder.prototype = { + /** Function: tree + * Return the DOM tree. + * + * This function returns the current DOM tree as an element object. This + * is suitable for passing to functions like Strophe.Connection.send(). + * + * Returns: + * The DOM tree as a element object. + */ + tree: function () + { + return this.nodeTree; + }, + + /** Function: toString + * Serialize the DOM tree to a String. + * + * This function returns a string serialization of the current DOM + * tree. It is often used internally to pass data to a + * Strophe.Request object. + * + * Returns: + * The serialized DOM tree in a String. + */ + toString: function () + { + return Strophe.serialize(this.nodeTree); + }, + + /** Function: up + * Make the current parent element the new current element. + * + * This function is often used after c() to traverse back up the tree. + * For example, to add two children to the same element + * > builder.c('child1', {}).up().c('child2', {}); + * + * Returns: + * The Stophe.Builder object. + */ + up: function () + { + this.node = this.node.parentNode; + return this; + }, + + /** Function: attrs + * Add or modify attributes of the current element. + * + * The attributes should be passed in object notation. This function + * does not move the current element pointer. + * + * Parameters: + * (Object) moreattrs - The attributes to add/modify in object notation. + * + * Returns: + * The Strophe.Builder object. + */ + attrs: function (moreattrs) + { + for (var k in moreattrs) { + if (moreattrs.hasOwnProperty(k)) { + this.node.setAttribute(k, moreattrs[k]); + } + } + return this; + }, + + /** Function: c + * Add a child to the current element and make it the new current + * element. + * + * This function moves the current element pointer to the child. If you + * need to add another child, it is necessary to use up() to go back + * to the parent in the tree. + * + * Parameters: + * (String) name - The name of the child. + * (Object) attrs - The attributes of the child in object notation. + * + * Returns: + * The Strophe.Builder object. + */ + c: function (name, attrs) + { + var child = Strophe.xmlElement(name, attrs); + this.node.appendChild(child); + this.node = child; + return this; + }, + + /** Function: cnode + * Add a child to the current element and make it the new current + * element. + * + * This function is the same as c() except that instead of using a + * name and an attributes object to create the child it uses an + * existing DOM element object. + * + * Parameters: + * (XMLElement) elem - A DOM element. + * + * Returns: + * The Strophe.Builder object. + */ + cnode: function (elem) + { + this.node.appendChild(elem); + this.node = elem; + return this; + }, + + /** Function: t + * Add a child text element. + * + * This *does not* make the child the new current element since there + * are no children of text elements. + * + * Parameters: + * (String) text - The text data to append to the current element. + * + * Returns: + * The Strophe.Builder object. + */ + t: function (text) + { + var child = Strophe.xmlTextNode(text); + this.node.appendChild(child); + return this; + } +}; + + +/** PrivateClass: Strophe.Handler + * _Private_ helper class for managing stanza handlers. + * + * A Strophe.Handler encapsulates a user provided callback function to be + * executed when matching stanzas are received by the connection. + * Handlers can be either one-off or persistant depending on their + * return value. Returning true will cause a Handler to remain active, and + * returning false will remove the Handler. + * + * Users will not use Strophe.Handler objects directly, but instead they + * will use Strophe.Connection.addHandler() and + * Strophe.Connection.deleteHandler(). + */ + +/** PrivateConstructor: Strophe.Handler + * Create and initialize a new Strophe.Handler. + * + * Parameters: + * (Function) handler - A function to be executed when the handler is run. + * (String) ns - The namespace to match. + * (String) name - The element name to match. + * (String) type - The element type to match. + * (String) id - The element id attribute to match. + * (String) from - The element from attribute to match. + * (Object) options - Handler options + * + * Returns: + * A new Strophe.Handler object. + */ +Strophe.Handler = function (handler, ns, name, type, id, from, options) +{ + this.handler = handler; + this.ns = ns; + this.name = name; + this.type = type; + this.id = id; + this.options = options || {matchbare: false}; + + // default matchBare to false if undefined + if (!this.options.matchBare) { + this.options.matchBare = false; + } + + if (this.options.matchBare) { + this.from = Strophe.getBareJidFromJid(from); + } else { + this.from = from; + } + + // whether the handler is a user handler or a system handler + this.user = true; +}; + +Strophe.Handler.prototype = { + /** PrivateFunction: isMatch + * Tests if a stanza matches the Strophe.Handler. + * + * Parameters: + * (XMLElement) elem - The XML element to test. + * + * Returns: + * true if the stanza matches and false otherwise. + */ + isMatch: function (elem) + { + var nsMatch; + var from = null; + + if (this.options.matchBare) { + from = Strophe.getBareJidFromJid(elem.getAttribute('from')); + } else { + from = elem.getAttribute('from'); + } + + nsMatch = false; + if (!this.ns) { + nsMatch = true; + } else { + var self = this; + Strophe.forEachChild(elem, null, function (elem) { + if (elem.getAttribute("xmlns") == self.ns) { + nsMatch = true; + } + }); + + nsMatch = nsMatch || elem.getAttribute("xmlns") == this.ns; + } + + if (nsMatch && + (!this.name || Strophe.isTagEqual(elem, this.name)) && + (!this.type || elem.getAttribute("type") === this.type) && + (!this.id || elem.getAttribute("id") === this.id) && + (!this.from || from === this.from)) { + return true; + } + + return false; + }, + + /** PrivateFunction: run + * Run the callback on a matching stanza. + * + * Parameters: + * (XMLElement) elem - The DOM element that triggered the + * Strophe.Handler. + * + * Returns: + * A boolean indicating if the handler should remain active. + */ + run: function (elem) + { + var result = null; + try { + result = this.handler(elem); + } catch (e) { + if (e.sourceURL) { + Strophe.fatal("error: " + this.handler + + " " + e.sourceURL + ":" + + e.line + " - " + e.name + ": " + e.message); + } else if (e.fileName) { + if (typeof(console) != "undefined") { + console.trace(); + console.error(this.handler, " - error - ", e, e.message); + } + Strophe.fatal("error: " + this.handler + " " + + e.fileName + ":" + e.lineNumber + " - " + + e.name + ": " + e.message); + } else { + Strophe.fatal("error: " + this.handler); + } + + throw e; + } + + return result; + }, + + /** PrivateFunction: toString + * Get a String representation of the Strophe.Handler object. + * + * Returns: + * A String. + */ + toString: function () + { + return "{Handler: " + this.handler + "(" + this.name + "," + + this.id + "," + this.ns + ")}"; + } +}; + +/** PrivateClass: Strophe.TimedHandler + * _Private_ helper class for managing timed handlers. + * + * A Strophe.TimedHandler encapsulates a user provided callback that + * should be called after a certain period of time or at regular + * intervals. The return value of the callback determines whether the + * Strophe.TimedHandler will continue to fire. + * + * Users will not use Strophe.TimedHandler objects directly, but instead + * they will use Strophe.Connection.addTimedHandler() and + * Strophe.Connection.deleteTimedHandler(). + */ + +/** PrivateConstructor: Strophe.TimedHandler + * Create and initialize a new Strophe.TimedHandler object. + * + * Parameters: + * (Integer) period - The number of milliseconds to wait before the + * handler is called. + * (Function) handler - The callback to run when the handler fires. This + * function should take no arguments. + * + * Returns: + * A new Strophe.TimedHandler object. + */ +Strophe.TimedHandler = function (period, handler) +{ + this.period = period; + this.handler = handler; + + this.lastCalled = new Date().getTime(); + this.user = true; +}; + +Strophe.TimedHandler.prototype = { + /** PrivateFunction: run + * Run the callback for the Strophe.TimedHandler. + * + * Returns: + * true if the Strophe.TimedHandler should be called again, and false + * otherwise. + */ + run: function () + { + this.lastCalled = new Date().getTime(); + return this.handler(); + }, + + /** PrivateFunction: reset + * Reset the last called time for the Strophe.TimedHandler. + */ + reset: function () + { + this.lastCalled = new Date().getTime(); + }, + + /** PrivateFunction: toString + * Get a string representation of the Strophe.TimedHandler object. + * + * Returns: + * The string representation. + */ + toString: function () + { + return "{TimedHandler: " + this.handler + "(" + this.period +")}"; + } +}; + +/** PrivateClass: Strophe.Request + * _Private_ helper class that provides a cross implementation abstraction + * for a BOSH related XMLHttpRequest. + * + * The Strophe.Request class is used internally to encapsulate BOSH request + * information. It is not meant to be used from user's code. + */ + +/** PrivateConstructor: Strophe.Request + * Create and initialize a new Strophe.Request object. + * + * Parameters: + * (XMLElement) elem - The XML data to be sent in the request. + * (Function) func - The function that will be called when the + * XMLHttpRequest readyState changes. + * (Integer) rid - The BOSH rid attribute associated with this request. + * (Integer) sends - The number of times this same request has been + * sent. + */ +Strophe.Request = function (elem, func, rid, sends) +{ + this.id = ++Strophe._requestId; + this.xmlData = elem; + this.data = Strophe.serialize(elem); + // save original function in case we need to make a new request + // from this one. + this.origFunc = func; + this.func = func; + this.rid = rid; + this.date = NaN; + this.sends = sends || 0; + this.abort = false; + this.dead = null; + this.age = function () { + if (!this.date) { return 0; } + var now = new Date(); + return (now - this.date) / 1000; + }; + this.timeDead = function () { + if (!this.dead) { return 0; } + var now = new Date(); + return (now - this.dead) / 1000; + }; + this.xhr = this._newXHR(); +}; + +Strophe.Request.prototype = { + /** PrivateFunction: getResponse + * Get a response from the underlying XMLHttpRequest. + * + * This function attempts to get a response from the request and checks + * for errors. + * + * Throws: + * "parsererror" - A parser error occured. + * + * Returns: + * The DOM element tree of the response. + */ + getResponse: function () + { + var node = null; + if (this.xhr.responseXML && this.xhr.responseXML.documentElement) { + node = this.xhr.responseXML.documentElement; + if (node.tagName == "parsererror") { + Strophe.error("invalid response received"); + Strophe.error("responseText: " + this.xhr.responseText); + Strophe.error("responseXML: " + + Strophe.serialize(this.xhr.responseXML)); + throw "parsererror"; + } + } else if (this.xhr.responseText) { + Strophe.error("invalid response received"); + Strophe.error("responseText: " + this.xhr.responseText); + Strophe.error("responseXML: " + + Strophe.serialize(this.xhr.responseXML)); + } + + return node; + }, + + /** PrivateFunction: _newXHR + * _Private_ helper function to create XMLHttpRequests. + * + * This function creates XMLHttpRequests across all implementations. + * + * Returns: + * A new XMLHttpRequest. + */ + _newXHR: function () + { + var xhr = null; + if (window.XMLHttpRequest) { + xhr = new XMLHttpRequest(); + if (xhr.overrideMimeType) { + xhr.overrideMimeType("text/xml"); + } + } else if (window.ActiveXObject) { + xhr = new ActiveXObject("Microsoft.XMLHTTP"); + } + + xhr.onreadystatechange = this.func.prependArg(this); + + return xhr; + } +}; + +/** Class: Strophe.Connection + * XMPP Connection manager. + * + * Thie class is the main part of Strophe. It manages a BOSH connection + * to an XMPP server and dispatches events to the user callbacks as + * data arrives. It supports SASL PLAIN, SASL DIGEST-MD5, and legacy + * authentication. + * + * After creating a Strophe.Connection object, the user will typically + * call connect() with a user supplied callback to handle connection level + * events like authentication failure, disconnection, or connection + * complete. + * + * The user will also have several event handlers defined by using + * addHandler() and addTimedHandler(). These will allow the user code to + * respond to interesting stanzas or do something periodically with the + * connection. These handlers will be active once authentication is + * finished. + * + * To send data to the connection, use send(). + */ + +/** Constructor: Strophe.Connection + * Create and initialize a Strophe.Connection object. + * + * Parameters: + * (String) service - The BOSH service URL. + * + * Returns: + * A new Strophe.Connection object. + */ +Strophe.Connection = function (service) +{ + /* The path to the httpbind service. */ + this.service = service; + /* The connected JID. */ + this.jid = ""; + /* request id for body tags */ + this.rid = Math.floor(Math.random() * 4294967295); + /* The current session ID. */ + this.sid = null; + this.streamId = null; + + // SASL + this.do_session = false; + this.do_bind = false; + + // handler lists + this.timedHandlers = []; + this.handlers = []; + this.removeTimeds = []; + this.removeHandlers = []; + this.addTimeds = []; + this.addHandlers = []; + + this._idleTimeout = null; + this._disconnectTimeout = null; + + this.authenticated = false; + this.disconnecting = false; + this.connected = false; + + this.errors = 0; + + this.paused = false; + + // default BOSH values + this.hold = 1; + this.wait = 60; + this.window = 5; + + this._data = []; + this._requests = []; + this._uniqueId = Math.round(Math.random() * 10000); + + this._sasl_success_handler = null; + this._sasl_failure_handler = null; + this._sasl_challenge_handler = null; + + // setup onIdle callback every 1/10th of a second + this._idleTimeout = setTimeout(this._onIdle.bind(this), 100); + + // initialize plugins + for (var k in Strophe._connectionPlugins) { + if (Strophe._connectionPlugins.hasOwnProperty(k)) { + var ptype = Strophe._connectionPlugins[k]; + // jslint complaints about the below line, but this is fine + var F = function () {}; + F.prototype = ptype; + this[k] = new F(); + this[k].init(this); + } + } +}; + +Strophe.Connection.prototype = { + /** Function: reset + * Reset the connection. + * + * This function should be called after a connection is disconnected + * before that connection is reused. + */ + reset: function () + { + this.rid = Math.floor(Math.random() * 4294967295); + + this.sid = null; + this.streamId = null; + + // SASL + this.do_session = false; + this.do_bind = false; + + // handler lists + this.timedHandlers = []; + this.handlers = []; + this.removeTimeds = []; + this.removeHandlers = []; + this.addTimeds = []; + this.addHandlers = []; + + this.authenticated = false; + this.disconnecting = false; + this.connected = false; + + this.errors = 0; + + this._requests = []; + this._uniqueId = Math.round(Math.random()*10000); + }, + + /** Function: pause + * Pause the request manager. + * + * This will prevent Strophe from sending any more requests to the + * server. This is very useful for temporarily pausing while a lot + * of send() calls are happening quickly. This causes Strophe to + * send the data in a single request, saving many request trips. + */ + pause: function () + { + this.paused = true; + }, + + /** Function: resume + * Resume the request manager. + * + * This resumes after pause() has been called. + */ + resume: function () + { + this.paused = false; + }, + + /** Function: getUniqueId + * Generate a unique ID for use in elements. + * + * All stanzas are required to have unique id attributes. This + * function makes creating these easy. Each connection instance has + * a counter which starts from zero, and the value of this counter + * plus a colon followed by the suffix becomes the unique id. If no + * suffix is supplied, the counter is used as the unique id. + * + * Suffixes are used to make debugging easier when reading the stream + * data, and their use is recommended. The counter resets to 0 for + * every new connection for the same reason. For connections to the + * same server that authenticate the same way, all the ids should be + * the same, which makes it easy to see changes. This is useful for + * automated testing as well. + * + * Parameters: + * (String) suffix - A optional suffix to append to the id. + * + * Returns: + * A unique string to be used for the id attribute. + */ + getUniqueId: function (suffix) + { + if (typeof(suffix) == "string" || typeof(suffix) == "number") { + return ++this._uniqueId + ":" + suffix; + } else { + return ++this._uniqueId + ""; + } + }, + + /** Function: connect + * Starts the connection process. + * + * As the connection process proceeds, the user supplied callback will + * be triggered multiple times with status updates. The callback + * should take two arguments - the status code and the error condition. + * + * The status code will be one of the values in the Strophe.Status + * constants. The error condition will be one of the conditions + * defined in RFC 3920 or the condition 'strophe-parsererror'. + * + * Please see XEP 124 for a more detailed explanation of the optional + * parameters below. + * + * Parameters: + * (String) jid - The user's JID. This may be a bare JID, + * or a full JID. If a node is not supplied, SASL ANONYMOUS + * authentication will be attempted. + * (String) pass - The user's password. + * (Function) callback The connect callback function. + * (Integer) wait - The optional HTTPBIND wait value. This is the + * time the server will wait before returning an empty result for + * a request. The default setting of 60 seconds is recommended. + * Other settings will require tweaks to the Strophe.TIMEOUT value. + * (Integer) hold - The optional HTTPBIND hold value. This is the + * number of connections the server will hold at one time. This + * should almost always be set to 1 (the default). + */ + connect: function (jid, pass, callback, wait, hold) + { + this.jid = jid; + this.pass = pass; + this.connect_callback = callback; + this.disconnecting = false; + this.connected = false; + this.authenticated = false; + this.errors = 0; + + this.wait = wait || this.wait; + this.hold = hold || this.hold; + + // parse jid for domain and resource + this.domain = Strophe.getDomainFromJid(this.jid); + + // build the body tag + var body = this._buildBody().attrs({ + to: this.domain, + "xml:lang": "en", + wait: this.wait, + hold: this.hold, + content: "text/xml; charset=utf-8", + ver: "1.6", + "xmpp:version": "1.0", + "xmlns:xmpp": Strophe.NS.BOSH + }); + + this._changeConnectStatus(Strophe.Status.CONNECTING, null); + + this._requests.push( + new Strophe.Request(body.tree(), + this._onRequestStateChange.bind(this) + .prependArg(this._connect_cb.bind(this)), + body.tree().getAttribute("rid"))); + this._throttledRequestHandler(); + }, + + /** Function: attach + * Attach to an already created and authenticated BOSH session. + * + * This function is provided to allow Strophe to attach to BOSH + * sessions which have been created externally, perhaps by a Web + * application. This is often used to support auto-login type features + * without putting user credentials into the page. + * + * Parameters: + * (String) jid - The full JID that is bound by the session. + * (String) sid - The SID of the BOSH session. + * (String) rid - The current RID of the BOSH session. This RID + * will be used by the next request. + * (Function) callback The connect callback function. + * (Integer) wait - The optional HTTPBIND wait value. This is the + * time the server will wait before returning an empty result for + * a request. The default setting of 60 seconds is recommended. + * Other settings will require tweaks to the Strophe.TIMEOUT value. + * (Integer) hold - The optional HTTPBIND hold value. This is the + * number of connections the server will hold at one time. This + * should almost always be set to 1 (the default). + * (Integer) wind - The optional HTTBIND window value. This is the + * allowed range of request ids that are valid. The default is 5. + */ + attach: function (jid, sid, rid, callback, wait, hold, wind) + { + this.jid = jid; + this.sid = sid; + this.rid = rid; + this.connect_callback = callback; + + this.domain = Strophe.getDomainFromJid(this.jid); + + this.authenticated = true; + this.connected = true; + + this.wait = wait || this.wait; + this.hold = hold || this.hold; + this.window = wind || this.window; + + this._changeConnectStatus(Strophe.Status.ATTACHED, null); + }, + + /** Function: xmlInput + * User overrideable function that receives XML data coming into the + * connection. + * + * The default function does nothing. User code can override this with + * > Strophe.Connection.xmlInput = function (elem) { + * > (user code) + * > }; + * + * Parameters: + * (XMLElement) elem - The XML data received by the connection. + */ + xmlInput: function (elem) + { + return; + }, + + /** Function: xmlOutput + * User overrideable function that receives XML data sent to the + * connection. + * + * The default function does nothing. User code can override this with + * > Strophe.Connection.xmlOutput = function (elem) { + * > (user code) + * > }; + * + * Parameters: + * (XMLElement) elem - The XMLdata sent by the connection. + */ + xmlOutput: function (elem) + { + return; + }, + + /** Function: rawInput + * User overrideable function that receives raw data coming into the + * connection. + * + * The default function does nothing. User code can override this with + * > Strophe.Connection.rawInput = function (data) { + * > (user code) + * > }; + * + * Parameters: + * (String) data - The data received by the connection. + */ + rawInput: function (data) + { + return; + }, + + /** Function: rawOutput + * User overrideable function that receives raw data sent to the + * connection. + * + * The default function does nothing. User code can override this with + * > Strophe.Connection.rawOutput = function (data) { + * > (user code) + * > }; + * + * Parameters: + * (String) data - The data sent by the connection. + */ + rawOutput: function (data) + { + return; + }, + + /** Function: send + * Send a stanza. + * + * This function is called to push data onto the send queue to + * go out over the wire. Whenever a request is sent to the BOSH + * server, all pending data is sent and the queue is flushed. + * + * Parameters: + * (XMLElement | + * [XMLElement] | + * Strophe.Builder) elem - The stanza to send. + */ + send: function (elem) + { + if (elem === null) { return ; } + if (typeof(elem.sort) === "function") { + for (var i = 0; i < elem.length; i++) { + this._queueData(elem[i]); + } + } else if (typeof(elem.tree) === "function") { + this._queueData(elem.tree()); + } else { + this._queueData(elem); + } + + this._throttledRequestHandler(); + clearTimeout(this._idleTimeout); + this._idleTimeout = setTimeout(this._onIdle.bind(this), 100); + }, + + /** Function: flush + * Immediately send any pending outgoing data. + * + * Normally send() queues outgoing data until the next idle period + * (100ms), which optimizes network use in the common cases when + * several send()s are called in succession. flush() can be used to + * immediately send all pending data. + */ + flush: function () + { + // cancel the pending idle period and run the idle function + // immediately + clearTimeout(this._idleTimeout); + this._onIdle(); + }, + + /** Function: sendIQ + * Helper function to send IQ stanzas. + * + * Parameters: + * (XMLElement) elem - The stanza to send. + * (Function) callback - The callback function for a successful request. + * (Function) errback - The callback function for a failed or timed + * out request. On timeout, the stanza will be null. + * (Integer) timeout - The time specified in milliseconds for a + * timeout to occur. + * + * Returns: + * The id used to send the IQ. + */ + sendIQ: function(elem, callback, errback, timeout) { + var timeoutHandler = null; + var that = this; + + if (typeof(elem.tree) === "function") { + elem = elem.tree(); + } + var id = elem.getAttribute('id'); + + // inject id if not found + if (!id) { + id = this.getUniqueId("sendIQ"); + elem.setAttribute("id", id); + } + + var handler = this.addHandler(function (stanza) { + // remove timeout handler if there is one + if (timeoutHandler) { + that.deleteTimedHandler(timeoutHandler); + } + + var iqtype = stanza.getAttribute('type'); + if (iqtype === 'result') { + if (callback) { + callback(stanza); + } + } else if (iqtype === 'error') { + if (errback) { + errback(stanza); + } + } else { + throw { + name: "StropheError", + message: "Got bad IQ type of " + iqtype + }; + } + }, null, 'iq', null, id); + + // if timeout specified, setup timeout handler. + if (timeout) { + timeoutHandler = this.addTimedHandler(timeout, function () { + // get rid of normal handler + that.deleteHandler(handler); + + // call errback on timeout with null stanza + if (errback) { + errback(null); + } + return false; + }); + } + + this.send(elem); + + return id; + }, + + /** PrivateFunction: _queueData + * Queue outgoing data for later sending. Also ensures that the data + * is a DOMElement. + */ + _queueData: function (element) { + if (element === null || + !element.tagName || + !element.childNodes) { + throw { + name: "StropheError", + message: "Cannot queue non-DOMElement." + }; + } + + this._data.push(element); + }, + + /** PrivateFunction: _sendRestart + * Send an xmpp:restart stanza. + */ + _sendRestart: function () + { + this._data.push("restart"); + + this._throttledRequestHandler(); + clearTimeout(this._idleTimeout); + this._idleTimeout = setTimeout(this._onIdle.bind(this), 100); + }, + + /** Function: addTimedHandler + * Add a timed handler to the connection. + * + * This function adds a timed handler. The provided handler will + * be called every period milliseconds until it returns false, + * the connection is terminated, or the handler is removed. Handlers + * that wish to continue being invoked should return true. + * + * Because of method binding it is necessary to save the result of + * this function if you wish to remove a handler with + * deleteTimedHandler(). + * + * Note that user handlers are not active until authentication is + * successful. + * + * Parameters: + * (Integer) period - The period of the handler. + * (Function) handler - The callback function. + * + * Returns: + * A reference to the handler that can be used to remove it. + */ + addTimedHandler: function (period, handler) + { + var thand = new Strophe.TimedHandler(period, handler); + this.addTimeds.push(thand); + return thand; + }, + + /** Function: deleteTimedHandler + * Delete a timed handler for a connection. + * + * This function removes a timed handler from the connection. The + * handRef parameter is *not* the function passed to addTimedHandler(), + * but is the reference returned from addTimedHandler(). + * + * Parameters: + * (Strophe.TimedHandler) handRef - The handler reference. + */ + deleteTimedHandler: function (handRef) + { + // this must be done in the Idle loop so that we don't change + // the handlers during iteration + this.removeTimeds.push(handRef); + }, + + /** Function: addHandler + * Add a stanza handler for the connection. + * + * This function adds a stanza handler to the connection. The + * handler callback will be called for any stanza that matches + * the parameters. Note that if multiple parameters are supplied, + * they must all match for the handler to be invoked. + * + * The handler will receive the stanza that triggered it as its argument. + * The handler should return true if it is to be invoked again; + * returning false will remove the handler after it returns. + * + * As a convenience, the ns parameters applies to the top level element + * and also any of its immediate children. This is primarily to make + * matching /iq/query elements easy. + * + * The options argument contains handler matching flags that affect how + * matches are determined. Currently the only flag is matchBare (a + * boolean). When matchBare is true, the from parameter and the from + * attribute on the stanza will be matched as bare JIDs instead of + * full JIDs. To use this, pass {matchBare: true} as the value of + * options. The default value for matchBare is false. + * + * The return value should be saved if you wish to remove the handler + * with deleteHandler(). + * + * Parameters: + * (Function) handler - The user callback. + * (String) ns - The namespace to match. + * (String) name - The stanza name to match. + * (String) type - The stanza type attribute to match. + * (String) id - The stanza id attribute to match. + * (String) from - The stanza from attribute to match. + * (String) options - The handler options + * + * Returns: + * A reference to the handler that can be used to remove it. + */ + addHandler: function (handler, ns, name, type, id, from, options) + { + var hand = new Strophe.Handler(handler, ns, name, type, id, from, options); + this.addHandlers.push(hand); + return hand; + }, + + /** Function: deleteHandler + * Delete a stanza handler for a connection. + * + * This function removes a stanza handler from the connection. The + * handRef parameter is *not* the function passed to addHandler(), + * but is the reference returned from addHandler(). + * + * Parameters: + * (Strophe.Handler) handRef - The handler reference. + */ + deleteHandler: function (handRef) + { + // this must be done in the Idle loop so that we don't change + // the handlers during iteration + this.removeHandlers.push(handRef); + }, + + /** Function: disconnect + * Start the graceful disconnection process. + * + * This function starts the disconnection process. This process starts + * by sending unavailable presence and sending BOSH body of type + * terminate. A timeout handler makes sure that disconnection happens + * even if the BOSH server does not respond. + * + * The user supplied connection callback will be notified of the + * progress as this process happens. + * + * Parameters: + * (String) reason - The reason the disconnect is occuring. + */ + disconnect: function (reason) + { + this._changeConnectStatus(Strophe.Status.DISCONNECTING, reason); + + Strophe.info("Disconnect was called because: " + reason); + if (this.connected) { + // setup timeout handler + this._disconnectTimeout = this._addSysTimedHandler( + 3000, this._onDisconnectTimeout.bind(this)); + this._sendTerminate(); + } + }, + + /** PrivateFunction: _changeConnectStatus + * _Private_ helper function that makes sure plugins and the user's + * callback are notified of connection status changes. + * + * Parameters: + * (Integer) status - the new connection status, one of the values + * in Strophe.Status + * (String) condition - the error condition or null + */ + _changeConnectStatus: function (status, condition) + { + // notify all plugins listening for status changes + for (var k in Strophe._connectionPlugins) { + if (Strophe._connectionPlugins.hasOwnProperty(k)) { + var plugin = this[k]; + if (plugin.statusChanged) { + try { + plugin.statusChanged(status, condition); + } catch (err) { + Strophe.error("" + k + " plugin caused an exception " + + "changing status: " + err); + } + } + } + } + + // notify the user's callback + if (this.connect_callback) { + try { + this.connect_callback(status, condition); + } catch (e) { + Strophe.error("User connection callback caused an " + + "exception: " + e); + } + } + }, + + /** PrivateFunction: _buildBody + * _Private_ helper function to generate the wrapper for BOSH. + * + * Returns: + * A Strophe.Builder with a element. + */ + _buildBody: function () + { + var bodyWrap = $build('body', { + rid: this.rid++, + xmlns: Strophe.NS.HTTPBIND + }); + + if (this.sid !== null) { + bodyWrap.attrs({sid: this.sid}); + } + + return bodyWrap; + }, + + /** PrivateFunction: _removeRequest + * _Private_ function to remove a request from the queue. + * + * Parameters: + * (Strophe.Request) req - The request to remove. + */ + _removeRequest: function (req) + { + Strophe.debug("removing request"); + + var i; + for (i = this._requests.length - 1; i >= 0; i--) { + if (req == this._requests[i]) { + this._requests.splice(i, 1); + } + } + + // IE6 fails on setting to null, so set to empty function + req.xhr.onreadystatechange = function () {}; + + this._throttledRequestHandler(); + }, + + /** PrivateFunction: _restartRequest + * _Private_ function to restart a request that is presumed dead. + * + * Parameters: + * (Integer) i - The index of the request in the queue. + */ + _restartRequest: function (i) + { + var req = this._requests[i]; + if (req.dead === null) { + req.dead = new Date(); + } + + this._processRequest(i); + }, + + /** PrivateFunction: _processRequest + * _Private_ function to process a request in the queue. + * + * This function takes requests off the queue and sends them and + * restarts dead requests. + * + * Parameters: + * (Integer) i - The index of the request in the queue. + */ + _processRequest: function (i) + { + var req = this._requests[i]; + var reqStatus = -1; + + try { + if (req.xhr.readyState == 4) { + reqStatus = req.xhr.status; + } + } catch (e) { + Strophe.error("caught an error in _requests[" + i + + "], reqStatus: " + reqStatus); + } + + if (typeof(reqStatus) == "undefined") { + reqStatus = -1; + } + + var time_elapsed = req.age(); + var primaryTimeout = (!isNaN(time_elapsed) && + time_elapsed > Math.floor(Strophe.TIMEOUT * this.wait)); + var secondaryTimeout = (req.dead !== null && + req.timeDead() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait)); + var requestCompletedWithServerError = (req.xhr.readyState == 4 && + (reqStatus < 1 || + reqStatus >= 500)); + if (primaryTimeout || secondaryTimeout || + requestCompletedWithServerError) { + if (secondaryTimeout) { + Strophe.error("Request " + + this._requests[i].id + + " timed out (secondary), restarting"); + } + req.abort = true; + req.xhr.abort(); + // setting to null fails on IE6, so set to empty function + req.xhr.onreadystatechange = function () {}; + this._requests[i] = new Strophe.Request(req.xmlData, + req.origFunc, + req.rid, + req.sends); + req = this._requests[i]; + } + + if (req.xhr.readyState === 0) { + Strophe.debug("request id " + req.id + + "." + req.sends + " posting"); + + req.date = new Date(); + try { + req.xhr.open("POST", this.service, true); + } catch (e2) { + Strophe.error("XHR open failed."); + if (!this.connected) { + this._changeConnectStatus(Strophe.Status.CONNFAIL, + "bad-service"); + } + this.disconnect(); + return; + } + + // Fires the XHR request -- may be invoked immediately + // or on a gradually expanding retry window for reconnects + var sendFunc = function () { + req.xhr.send(req.data); + }; + + // Implement progressive backoff for reconnects -- + // First retry (send == 1) should also be instantaneous + if (req.sends > 1) { + // Using a cube of the retry number creats a nicely + // expanding retry window + var backoff = Math.pow(req.sends, 3) * 1000; + setTimeout(sendFunc, backoff); + } else { + sendFunc(); + } + + req.sends++; + + this.xmlOutput(req.xmlData); + this.rawOutput(req.data); + } else { + Strophe.debug("_processRequest: " + + (i === 0 ? "first" : "second") + + " request has readyState of " + + req.xhr.readyState); + } + }, + + /** PrivateFunction: _throttledRequestHandler + * _Private_ function to throttle requests to the connection window. + * + * This function makes sure we don't send requests so fast that the + * request ids overflow the connection window in the case that one + * request died. + */ + _throttledRequestHandler: function () + { + if (!this._requests) { + Strophe.debug("_throttledRequestHandler called with " + + "undefined requests"); + } else { + Strophe.debug("_throttledRequestHandler called with " + + this._requests.length + " requests"); + } + + if (!this._requests || this._requests.length === 0) { + return; + } + + if (this._requests.length > 0) { + this._processRequest(0); + } + + if (this._requests.length > 1 && + Math.abs(this._requests[0].rid - + this._requests[1].rid) < this.window - 1) { + this._processRequest(1); + } + }, + + /** PrivateFunction: _onRequestStateChange + * _Private_ handler for Strophe.Request state changes. + * + * This function is called when the XMLHttpRequest readyState changes. + * It contains a lot of error handling logic for the many ways that + * requests can fail, and calls the request callback when requests + * succeed. + * + * Parameters: + * (Function) func - The handler for the request. + * (Strophe.Request) req - The request that is changing readyState. + */ + _onRequestStateChange: function (func, req) + { + Strophe.debug("request id " + req.id + + "." + req.sends + " state changed to " + + req.xhr.readyState); + + if (req.abort) { + req.abort = false; + return; + } + + // request complete + var reqStatus; + if (req.xhr.readyState == 4) { + reqStatus = 0; + try { + reqStatus = req.xhr.status; + } catch (e) { + // ignore errors from undefined status attribute. works + // around a browser bug + } + + if (typeof(reqStatus) == "undefined") { + reqStatus = 0; + } + + if (this.disconnecting) { + if (reqStatus >= 400) { + this._hitError(reqStatus); + return; + } + } + + var reqIs0 = (this._requests[0] == req); + var reqIs1 = (this._requests[1] == req); + + if ((reqStatus > 0 && reqStatus < 500) || req.sends > 5) { + // remove from internal queue + this._removeRequest(req); + Strophe.debug("request id " + + req.id + + " should now be removed"); + } + + // request succeeded + if (reqStatus == 200) { + // if request 1 finished, or request 0 finished and request + // 1 is over Strophe.SECONDARY_TIMEOUT seconds old, we need to + // restart the other - both will be in the first spot, as the + // completed request has been removed from the queue already + if (reqIs1 || + (reqIs0 && this._requests.length > 0 && + this._requests[0].age() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait))) { + this._restartRequest(0); + } + // call handler + Strophe.debug("request id " + + req.id + "." + + req.sends + " got 200"); + func(req); + this.errors = 0; + } else { + Strophe.error("request id " + + req.id + "." + + req.sends + " error " + reqStatus + + " happened"); + if (reqStatus === 0 || + (reqStatus >= 400 && reqStatus < 600) || + reqStatus >= 12000) { + this._hitError(reqStatus); + if (reqStatus >= 400 && reqStatus < 500) { + this._changeConnectStatus(Strophe.Status.DISCONNECTING, + null); + this._doDisconnect(); + } + } + } + + if (!((reqStatus > 0 && reqStatus < 10000) || + req.sends > 5)) { + this._throttledRequestHandler(); + } + } + }, + + /** PrivateFunction: _hitError + * _Private_ function to handle the error count. + * + * Requests are resent automatically until their error count reaches + * 5. Each time an error is encountered, this function is called to + * increment the count and disconnect if the count is too high. + * + * Parameters: + * (Integer) reqStatus - The request status. + */ + _hitError: function (reqStatus) + { + this.errors++; + Strophe.warn("request errored, status: " + reqStatus + + ", number of errors: " + this.errors); + if (this.errors > 4) { + this._onDisconnectTimeout(); + } + }, + + /** PrivateFunction: _doDisconnect + * _Private_ function to disconnect. + * + * This is the last piece of the disconnection logic. This resets the + * connection and alerts the user's connection callback. + */ + _doDisconnect: function () + { + Strophe.info("_doDisconnect was called"); + this.authenticated = false; + this.disconnecting = false; + this.sid = null; + this.streamId = null; + this.rid = Math.floor(Math.random() * 4294967295); + + // tell the parent we disconnected + if (this.connected) { + this._changeConnectStatus(Strophe.Status.DISCONNECTED, null); + this.connected = false; + } + + // delete handlers + this.handlers = []; + this.timedHandlers = []; + this.removeTimeds = []; + this.removeHandlers = []; + this.addTimeds = []; + this.addHandlers = []; + }, + + /** PrivateFunction: _dataRecv + * _Private_ handler to processes incoming data from the the connection. + * + * Except for _connect_cb handling the initial connection request, + * this function handles the incoming data for all requests. This + * function also fires stanza handlers that match each incoming + * stanza. + * + * Parameters: + * (Strophe.Request) req - The request that has data ready. + */ + _dataRecv: function (req) + { + try { + var elem = req.getResponse(); + } catch (e) { + if (e != "parsererror") { throw e; } + this.disconnect("strophe-parsererror"); + } + if (elem === null) { return; } + + this.xmlInput(elem); + this.rawInput(Strophe.serialize(elem)); + + // remove handlers scheduled for deletion + var i, hand; + while (this.removeHandlers.length > 0) { + hand = this.removeHandlers.pop(); + i = this.handlers.indexOf(hand); + if (i >= 0) { + this.handlers.splice(i, 1); + } + } + + // add handlers scheduled for addition + while (this.addHandlers.length > 0) { + this.handlers.push(this.addHandlers.pop()); + } + + // handle graceful disconnect + if (this.disconnecting && this._requests.length === 0) { + this.deleteTimedHandler(this._disconnectTimeout); + this._disconnectTimeout = null; + this._doDisconnect(); + return; + } + + var typ = elem.getAttribute("type"); + var cond, conflict; + if (typ !== null && typ == "terminate") { + // an error occurred + cond = elem.getAttribute("condition"); + conflict = elem.getElementsByTagName("conflict"); + if (cond !== null) { + if (cond == "remote-stream-error" && conflict.length > 0) { + cond = "conflict"; + } + this._changeConnectStatus(Strophe.Status.CONNFAIL, cond); + } else { + this._changeConnectStatus(Strophe.Status.CONNFAIL, "unknown"); + } + this.disconnect(); + return; + } + + // send each incoming stanza through the handler chain + var self = this; + Strophe.forEachChild(elem, null, function (child) { + var i, newList; + // process handlers + newList = self.handlers; + self.handlers = []; + for (i = 0; i < newList.length; i++) { + var hand = newList[i]; + if (hand.isMatch(child) && + (self.authenticated || !hand.user)) { + if (hand.run(child)) { + self.handlers.push(hand); + } + } else { + self.handlers.push(hand); + } + } + }); + }, + + /** PrivateFunction: _sendTerminate + * _Private_ function to send initial disconnect sequence. + * + * This is the first step in a graceful disconnect. It sends + * the BOSH server a terminate body and includes an unavailable + * presence if authentication has completed. + */ + _sendTerminate: function () + { + Strophe.info("_sendTerminate was called"); + var body = this._buildBody().attrs({type: "terminate"}); + + if (this.authenticated) { + body.c('presence', { + xmlns: Strophe.NS.CLIENT, + type: 'unavailable' + }); + } + + this.disconnecting = true; + + var req = new Strophe.Request(body.tree(), + this._onRequestStateChange.bind(this) + .prependArg(this._dataRecv.bind(this)), + body.tree().getAttribute("rid")); + + this._requests.push(req); + this._throttledRequestHandler(); + }, + + /** PrivateFunction: _connect_cb + * _Private_ handler for initial connection request. + * + * This handler is used to process the initial connection request + * response from the BOSH server. It is used to set up authentication + * handlers and start the authentication process. + * + * SASL authentication will be attempted if available, otherwise + * the code will fall back to legacy authentication. + * + * Parameters: + * (Strophe.Request) req - The current request. + */ + _connect_cb: function (req) + { + Strophe.info("_connect_cb was called"); + + this.connected = true; + var bodyWrap = req.getResponse(); + if (!bodyWrap) { return; } + + this.xmlInput(bodyWrap); + this.rawInput(Strophe.serialize(bodyWrap)); + + var typ = bodyWrap.getAttribute("type"); + var cond, conflict; + if (typ !== null && typ == "terminate") { + // an error occurred + cond = bodyWrap.getAttribute("condition"); + conflict = bodyWrap.getElementsByTagName("conflict"); + if (cond !== null) { + if (cond == "remote-stream-error" && conflict.length > 0) { + cond = "conflict"; + } + this._changeConnectStatus(Strophe.Status.CONNFAIL, cond); + } else { + this._changeConnectStatus(Strophe.Status.CONNFAIL, "unknown"); + } + return; + } + + // check to make sure we don't overwrite these if _connect_cb is + // called multiple times in the case of missing stream:features + if (!this.sid) { + this.sid = bodyWrap.getAttribute("sid"); + } + if (!this.stream_id) { + this.stream_id = bodyWrap.getAttribute("authid"); + } + var wind = bodyWrap.getAttribute('requests'); + if (wind) { this.window = parseInt(wind, 10); } + var hold = bodyWrap.getAttribute('hold'); + if (hold) { this.hold = parseInt(hold, 10); } + var wait = bodyWrap.getAttribute('wait'); + if (wait) { this.wait = parseInt(wait, 10); } + + + var do_sasl_plain = false; + var do_sasl_digest_md5 = false; + var do_sasl_anonymous = false; + + var mechanisms = bodyWrap.getElementsByTagName("mechanism"); + var i, mech, auth_str, hashed_auth_str; + if (mechanisms.length > 0) { + for (i = 0; i < mechanisms.length; i++) { + mech = Strophe.getText(mechanisms[i]); + if (mech == 'DIGEST-MD5') { + do_sasl_digest_md5 = true; + } else if (mech == 'PLAIN') { + do_sasl_plain = true; + } else if (mech == 'ANONYMOUS') { + do_sasl_anonymous = true; + } + } + } else { + // we didn't get stream:features yet, so we need wait for it + // by sending a blank poll request + var body = this._buildBody(); + this._requests.push( + new Strophe.Request(body.tree(), + this._onRequestStateChange.bind(this) + .prependArg(this._connect_cb.bind(this)), + body.tree().getAttribute("rid"))); + this._throttledRequestHandler(); + return; + } + + if (Strophe.getNodeFromJid(this.jid) === null && + do_sasl_anonymous) { + this._changeConnectStatus(Strophe.Status.AUTHENTICATING, null); + this._sasl_success_handler = this._addSysHandler( + this._sasl_success_cb.bind(this), null, + "success", null, null); + this._sasl_failure_handler = this._addSysHandler( + this._sasl_failure_cb.bind(this), null, + "failure", null, null); + + this.send($build("auth", { + xmlns: Strophe.NS.SASL, + mechanism: "ANONYMOUS" + }).tree()); + } else if (Strophe.getNodeFromJid(this.jid) === null) { + // we don't have a node, which is required for non-anonymous + // client connections + this._changeConnectStatus(Strophe.Status.CONNFAIL, + 'x-strophe-bad-non-anon-jid'); + this.disconnect(); + } else if (do_sasl_digest_md5) { + this._changeConnectStatus(Strophe.Status.AUTHENTICATING, null); + this._sasl_challenge_handler = this._addSysHandler( + this._sasl_challenge1_cb.bind(this), null, + "challenge", null, null); + this._sasl_failure_handler = this._addSysHandler( + this._sasl_failure_cb.bind(this), null, + "failure", null, null); + + this.send($build("auth", { + xmlns: Strophe.NS.SASL, + mechanism: "DIGEST-MD5" + }).tree()); + } else if (do_sasl_plain) { + // Build the plain auth string (barejid null + // username null password) and base 64 encoded. + auth_str = Strophe.getBareJidFromJid(this.jid); + auth_str = auth_str + "\u0000"; + auth_str = auth_str + Strophe.getNodeFromJid(this.jid); + auth_str = auth_str + "\u0000"; + auth_str = auth_str + this.pass; + + this._changeConnectStatus(Strophe.Status.AUTHENTICATING, null); + this._sasl_success_handler = this._addSysHandler( + this._sasl_success_cb.bind(this), null, + "success", null, null); + this._sasl_failure_handler = this._addSysHandler( + this._sasl_failure_cb.bind(this), null, + "failure", null, null); + + hashed_auth_str = Base64.encode(auth_str); + this.send($build("auth", { + xmlns: Strophe.NS.SASL, + mechanism: "PLAIN" + }).t(hashed_auth_str).tree()); + } else { + this._changeConnectStatus(Strophe.Status.AUTHENTICATING, null); + this._addSysHandler(this._auth1_cb.bind(this), null, null, + null, "_auth_1"); + + this.send($iq({ + type: "get", + to: this.domain, + id: "_auth_1" + }).c("query", { + xmlns: Strophe.NS.AUTH + }).c("username", {}).t(Strophe.getNodeFromJid(this.jid)).tree()); + } + }, + + /** PrivateFunction: _sasl_challenge1_cb + * _Private_ handler for DIGEST-MD5 SASL authentication. + * + * Parameters: + * (XMLElement) elem - The challenge stanza. + * + * Returns: + * false to remove the handler. + */ + _sasl_challenge1_cb: function (elem) + { + var attribMatch = /([a-z]+)=("[^"]+"|[^,"]+)(?:,|$)/; + + var challenge = Base64.decode(Strophe.getText(elem)); + var cnonce = MD5.hexdigest(Math.random() * 1234567890); + var realm = ""; + var host = null; + var nonce = ""; + var qop = ""; + var matches; + + // remove unneeded handlers + this.deleteHandler(this._sasl_failure_handler); + + while (challenge.match(attribMatch)) { + matches = challenge.match(attribMatch); + challenge = challenge.replace(matches[0], ""); + matches[2] = matches[2].replace(/^"(.+)"$/, "$1"); + switch (matches[1]) { + case "realm": + realm = matches[2]; + break; + case "nonce": + nonce = matches[2]; + break; + case "qop": + qop = matches[2]; + break; + case "host": + host = matches[2]; + break; + } + } + + var digest_uri = "xmpp/" + this.domain; + if (host !== null) { + digest_uri = digest_uri + "/" + host; + } + + var A1 = MD5.hash(Strophe.getNodeFromJid(this.jid) + + ":" + realm + ":" + this.pass) + + ":" + nonce + ":" + cnonce; + var A2 = 'AUTHENTICATE:' + digest_uri; + + var responseText = ""; + responseText += 'username=' + + this._quote(Strophe.getNodeFromJid(this.jid)) + ','; + responseText += 'realm=' + this._quote(realm) + ','; + responseText += 'nonce=' + this._quote(nonce) + ','; + responseText += 'cnonce=' + this._quote(cnonce) + ','; + responseText += 'nc="00000001",'; + responseText += 'qop="auth",'; + responseText += 'digest-uri=' + this._quote(digest_uri) + ','; + responseText += 'response=' + this._quote( + MD5.hexdigest(MD5.hexdigest(A1) + ":" + + nonce + ":00000001:" + + cnonce + ":auth:" + + MD5.hexdigest(A2))) + ','; + responseText += 'charset="utf-8"'; + + this._sasl_challenge_handler = this._addSysHandler( + this._sasl_challenge2_cb.bind(this), null, + "challenge", null, null); + this._sasl_success_handler = this._addSysHandler( + this._sasl_success_cb.bind(this), null, + "success", null, null); + this._sasl_failure_handler = this._addSysHandler( + this._sasl_failure_cb.bind(this), null, + "failure", null, null); + + this.send($build('response', { + xmlns: Strophe.NS.SASL + }).t(Base64.encode(responseText)).tree()); + + return false; + }, + + /** PrivateFunction: _quote + * _Private_ utility function to backslash escape and quote strings. + * + * Parameters: + * (String) str - The string to be quoted. + * + * Returns: + * quoted string + */ + _quote: function (str) + { + return '"' + str.replace(/\\/g, "\\\\").replace(/"/g, '\\"') + '"'; + //" end string workaround for emacs + }, + + + /** PrivateFunction: _sasl_challenge2_cb + * _Private_ handler for second step of DIGEST-MD5 SASL authentication. + * + * Parameters: + * (XMLElement) elem - The challenge stanza. + * + * Returns: + * false to remove the handler. + */ + _sasl_challenge2_cb: function (elem) + { + // remove unneeded handlers + this.deleteHandler(this._sasl_success_handler); + this.deleteHandler(this._sasl_failure_handler); + + this._sasl_success_handler = this._addSysHandler( + this._sasl_success_cb.bind(this), null, + "success", null, null); + this._sasl_failure_handler = this._addSysHandler( + this._sasl_failure_cb.bind(this), null, + "failure", null, null); + this.send($build('response', {xmlns: Strophe.NS.SASL}).tree()); + return false; + }, + + /** PrivateFunction: _auth1_cb + * _Private_ handler for legacy authentication. + * + * This handler is called in response to the initial + * for legacy authentication. It builds an authentication and + * sends it, creating a handler (calling back to _auth2_cb()) to + * handle the result + * + * Parameters: + * (XMLElement) elem - The stanza that triggered the callback. + * + * Returns: + * false to remove the handler. + */ + _auth1_cb: function (elem) + { + // build plaintext auth iq + var iq = $iq({type: "set", id: "_auth_2"}) + .c('query', {xmlns: Strophe.NS.AUTH}) + .c('username', {}).t(Strophe.getNodeFromJid(this.jid)) + .up() + .c('password').t(this.pass); + + if (!Strophe.getResourceFromJid(this.jid)) { + // since the user has not supplied a resource, we pick + // a default one here. unlike other auth methods, the server + // cannot do this for us. + this.jid = Strophe.getBareJidFromJid(this.jid) + '/strophe'; + } + iq.up().c('resource', {}).t(Strophe.getResourceFromJid(this.jid)); + + this._addSysHandler(this._auth2_cb.bind(this), null, + null, null, "_auth_2"); + + this.send(iq.tree()); + + return false; + }, + + /** PrivateFunction: _sasl_success_cb + * _Private_ handler for succesful SASL authentication. + * + * Parameters: + * (XMLElement) elem - The matching stanza. + * + * Returns: + * false to remove the handler. + */ + _sasl_success_cb: function (elem) + { + Strophe.info("SASL authentication succeeded."); + + // remove old handlers + this.deleteHandler(this._sasl_failure_handler); + this._sasl_failure_handler = null; + if (this._sasl_challenge_handler) { + this.deleteHandler(this._sasl_challenge_handler); + this._sasl_challenge_handler = null; + } + + this._addSysHandler(this._sasl_auth1_cb.bind(this), null, + "stream:features", null, null); + + // we must send an xmpp:restart now + this._sendRestart(); + + return false; + }, + + /** PrivateFunction: _sasl_auth1_cb + * _Private_ handler to start stream binding. + * + * Parameters: + * (XMLElement) elem - The matching stanza. + * + * Returns: + * false to remove the handler. + */ + _sasl_auth1_cb: function (elem) + { + var i, child; + + for (i = 0; i < elem.childNodes.length; i++) { + child = elem.childNodes[i]; + if (child.nodeName == 'bind') { + this.do_bind = true; + } + + if (child.nodeName == 'session') { + this.do_session = true; + } + } + + if (!this.do_bind) { + this._changeConnectStatus(Strophe.Status.AUTHFAIL, null); + return false; + } else { + this._addSysHandler(this._sasl_bind_cb.bind(this), null, null, + null, "_bind_auth_2"); + + var resource = Strophe.getResourceFromJid(this.jid); + if (resource) { + this.send($iq({type: "set", id: "_bind_auth_2"}) + .c('bind', {xmlns: Strophe.NS.BIND}) + .c('resource', {}).t(resource).tree()); + } else { + this.send($iq({type: "set", id: "_bind_auth_2"}) + .c('bind', {xmlns: Strophe.NS.BIND}) + .tree()); + } + } + + return false; + }, + + /** PrivateFunction: _sasl_bind_cb + * _Private_ handler for binding result and session start. + * + * Parameters: + * (XMLElement) elem - The matching stanza. + * + * Returns: + * false to remove the handler. + */ + _sasl_bind_cb: function (elem) + { + if (elem.getAttribute("type") == "error") { + Strophe.info("SASL binding failed."); + this._changeConnectStatus(Strophe.Status.AUTHFAIL, null); + return false; + } + + // TODO - need to grab errors + var bind = elem.getElementsByTagName("bind"); + var jidNode; + if (bind.length > 0) { + // Grab jid + jidNode = bind[0].getElementsByTagName("jid"); + if (jidNode.length > 0) { + this.jid = Strophe.getText(jidNode[0]); + + if (this.do_session) { + this._addSysHandler(this._sasl_session_cb.bind(this), + null, null, null, "_session_auth_2"); + + this.send($iq({type: "set", id: "_session_auth_2"}) + .c('session', {xmlns: Strophe.NS.SESSION}) + .tree()); + } else { + this.authenticated = true; + this._changeConnectStatus(Strophe.Status.CONNECTED, null); + } + } + } else { + Strophe.info("SASL binding failed."); + this._changeConnectStatus(Strophe.Status.AUTHFAIL, null); + return false; + } + }, + + /** PrivateFunction: _sasl_session_cb + * _Private_ handler to finish successful SASL connection. + * + * This sets Connection.authenticated to true on success, which + * starts the processing of user handlers. + * + * Parameters: + * (XMLElement) elem - The matching stanza. + * + * Returns: + * false to remove the handler. + */ + _sasl_session_cb: function (elem) + { + if (elem.getAttribute("type") == "result") { + this.authenticated = true; + this._changeConnectStatus(Strophe.Status.CONNECTED, null); + } else if (elem.getAttribute("type") == "error") { + Strophe.info("Session creation failed."); + this._changeConnectStatus(Strophe.Status.AUTHFAIL, null); + return false; + } + + return false; + }, + + /** PrivateFunction: _sasl_failure_cb + * _Private_ handler for SASL authentication failure. + * + * Parameters: + * (XMLElement) elem - The matching stanza. + * + * Returns: + * false to remove the handler. + */ + _sasl_failure_cb: function (elem) + { + // delete unneeded handlers + if (this._sasl_success_handler) { + this.deleteHandler(this._sasl_success_handler); + this._sasl_success_handler = null; + } + if (this._sasl_challenge_handler) { + this.deleteHandler(this._sasl_challenge_handler); + this._sasl_challenge_handler = null; + } + + this._changeConnectStatus(Strophe.Status.AUTHFAIL, null); + return false; + }, + + /** PrivateFunction: _auth2_cb + * _Private_ handler to finish legacy authentication. + * + * This handler is called when the result from the jabber:iq:auth + * stanza is returned. + * + * Parameters: + * (XMLElement) elem - The stanza that triggered the callback. + * + * Returns: + * false to remove the handler. + */ + _auth2_cb: function (elem) + { + if (elem.getAttribute("type") == "result") { + this.authenticated = true; + this._changeConnectStatus(Strophe.Status.CONNECTED, null); + } else if (elem.getAttribute("type") == "error") { + this._changeConnectStatus(Strophe.Status.AUTHFAIL, null); + this.disconnect(); + } + + return false; + }, + + /** PrivateFunction: _addSysTimedHandler + * _Private_ function to add a system level timed handler. + * + * This function is used to add a Strophe.TimedHandler for the + * library code. System timed handlers are allowed to run before + * authentication is complete. + * + * Parameters: + * (Integer) period - The period of the handler. + * (Function) handler - The callback function. + */ + _addSysTimedHandler: function (period, handler) + { + var thand = new Strophe.TimedHandler(period, handler); + thand.user = false; + this.addTimeds.push(thand); + return thand; + }, + + /** PrivateFunction: _addSysHandler + * _Private_ function to add a system level stanza handler. + * + * This function is used to add a Strophe.Handler for the + * library code. System stanza handlers are allowed to run before + * authentication is complete. + * + * Parameters: + * (Function) handler - The callback function. + * (String) ns - The namespace to match. + * (String) name - The stanza name to match. + * (String) type - The stanza type attribute to match. + * (String) id - The stanza id attribute to match. + */ + _addSysHandler: function (handler, ns, name, type, id) + { + var hand = new Strophe.Handler(handler, ns, name, type, id); + hand.user = false; + this.addHandlers.push(hand); + return hand; + }, + + /** PrivateFunction: _onDisconnectTimeout + * _Private_ timeout handler for handling non-graceful disconnection. + * + * If the graceful disconnect process does not complete within the + * time allotted, this handler finishes the disconnect anyway. + * + * Returns: + * false to remove the handler. + */ + _onDisconnectTimeout: function () + { + Strophe.info("_onDisconnectTimeout was called"); + + // cancel all remaining requests and clear the queue + var req; + while (this._requests.length > 0) { + req = this._requests.pop(); + req.abort = true; + req.xhr.abort(); + // jslint complains, but this is fine. setting to empty func + // is necessary for IE6 + req.xhr.onreadystatechange = function () {}; + } + + // actually disconnect + this._doDisconnect(); + + return false; + }, + + /** PrivateFunction: _onIdle + * _Private_ handler to process events during idle cycle. + * + * This handler is called every 100ms to fire timed handlers that + * are ready and keep poll requests going. + */ + _onIdle: function () + { + var i, thand, since, newList; + + // remove timed handlers that have been scheduled for deletion + while (this.removeTimeds.length > 0) { + thand = this.removeTimeds.pop(); + i = this.timedHandlers.indexOf(thand); + if (i >= 0) { + this.timedHandlers.splice(i, 1); + } + } + + // add timed handlers scheduled for addition + while (this.addTimeds.length > 0) { + this.timedHandlers.push(this.addTimeds.pop()); + } + + // call ready timed handlers + var now = new Date().getTime(); + newList = []; + for (i = 0; i < this.timedHandlers.length; i++) { + thand = this.timedHandlers[i]; + if (this.authenticated || !thand.user) { + since = thand.lastCalled + thand.period; + if (since - now <= 0) { + if (thand.run()) { + newList.push(thand); + } + } else { + newList.push(thand); + } + } + } + this.timedHandlers = newList; + + var body, time_elapsed; + + // if no requests are in progress, poll + if (this.authenticated && this._requests.length === 0 && + this._data.length === 0 && !this.disconnecting) { + Strophe.info("no requests during idle cycle, sending " + + "blank request"); + this._data.push(null); + } + + if (this._requests.length < 2 && this._data.length > 0 && + !this.paused) { + body = this._buildBody(); + for (i = 0; i < this._data.length; i++) { + if (this._data[i] !== null) { + if (this._data[i] === "restart") { + body.attrs({ + to: this.domain, + "xml:lang": "en", + "xmpp:restart": "true", + "xmlns:xmpp": Strophe.NS.BOSH + }); + } else { + body.cnode(this._data[i]).up(); + } + } + } + delete this._data; + this._data = []; + this._requests.push( + new Strophe.Request(body.tree(), + this._onRequestStateChange.bind(this) + .prependArg(this._dataRecv.bind(this)), + body.tree().getAttribute("rid"))); + this._processRequest(this._requests.length - 1); + } + + if (this._requests.length > 0) { + time_elapsed = this._requests[0].age(); + if (this._requests[0].dead !== null) { + if (this._requests[0].timeDead() > + Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait)) { + this._throttledRequestHandler(); + } + } + + if (time_elapsed > Math.floor(Strophe.TIMEOUT * this.wait)) { + Strophe.warn("Request " + + this._requests[0].id + + " timed out, over " + Math.floor(Strophe.TIMEOUT * this.wait) + + " seconds since last activity"); + this._throttledRequestHandler(); + } + } + + // reactivate the timer + clearTimeout(this._idleTimeout); + this._idleTimeout = setTimeout(this._onIdle.bind(this), 100); + } +}; + +if (callback) { + callback(Strophe, $build, $msg, $iq, $pres); +} + +})(function () { + window.Strophe = arguments[0]; + window.$build = arguments[1]; + window.$msg = arguments[2]; + window.$iq = arguments[3]; + window.$pres = arguments[4]; +}); diff --git a/app/assets/javascripts/strophejs-1.0.1/strophe.min.js b/app/assets/javascripts/strophejs-1.0.1/strophe.min.js new file mode 100644 index 0000000..f0eb179 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/strophe.min.js @@ -0,0 +1 @@ +var Base64=(function(){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var obj={encode:function(input){var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;do{chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64}else{if(isNaN(chr3)){enc4=64}}output=output+keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4)}while(i>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2)}if(enc4!=64){output=output+String.fromCharCode(chr3)}}while(i>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&65535)};var bit_rol=function(num,cnt){return(num<>>(32-cnt))};var str2binl=function(str){var bin=[];var mask=(1<>5]|=(str.charCodeAt(i/chrsz)&mask)<<(i%32)}return bin};var binl2str=function(bin){var str="";var mask=(1<>5]>>>(i%32))&mask)}return str};var binl2hex=function(binarray){var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var str="";for(var i=0;i>2]>>((i%4)*8+4))&15)+hex_tab.charAt((binarray[i>>2]>>((i%4)*8))&15)}return str};var binl2b64=function(binarray){var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var str="";var triplet,j;for(var i=0;i>2]>>8*(i%4))&255)<<16)|(((binarray[i+1>>2]>>8*((i+1)%4))&255)<<8)|((binarray[i+2>>2]>>8*((i+2)%4))&255);for(j=0;j<4;j++){if(i*8+j*6>binarray.length*32){str+=b64pad}else{str+=tab.charAt((triplet>>6*(3-j))&63)}}}return str};var md5_cmn=function(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)};var md5_ff=function(a,b,c,d,x,s,t){return md5_cmn((b&c)|((~b)&d),a,b,x,s,t)};var md5_gg=function(a,b,c,d,x,s,t){return md5_cmn((b&d)|(c&(~d)),a,b,x,s,t)};var md5_hh=function(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)};var md5_ii=function(a,b,c,d,x,s,t){return md5_cmn(c^(b|(~d)),a,b,x,s,t)};var core_md5=function(x,len){x[len>>5]|=128<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;var olda,oldb,oldc,oldd;for(var i=0;i16){bkey=core_md5(bkey,key.length*chrsz)}var ipad=new Array(16),opad=new Array(16);for(var i=0;i<16;i++){ipad[i]=bkey[i]^909522486;opad[i]=bkey[i]^1549556828}var hash=core_md5(ipad.concat(str2binl(data)),512+data.length*chrsz);return core_md5(opad.concat(hash),512+128)};var obj={hexdigest:function(s){return binl2hex(core_md5(str2binl(s),s.length*chrsz))},b64digest:function(s){return binl2b64(core_md5(str2binl(s),s.length*chrsz))},hash:function(s){return binl2str(core_md5(str2binl(s),s.length*chrsz))},hmac_hexdigest:function(key,data){return binl2hex(core_hmac_md5(key,data))},hmac_b64digest:function(key,data){return binl2b64(core_hmac_md5(key,data))},hmac_hash:function(key,data){return binl2str(core_hmac_md5(key,data))},test:function(){return MD5.hexdigest("abc")==="900150983cd24fb0d6963f7d28e17f72"}};return obj})();if(!Function.prototype.bind){Function.prototype.bind=function(obj){var func=this;return function(){return func.apply(obj,arguments)}}}if(!Function.prototype.prependArg){Function.prototype.prependArg=function(arg){var func=this;return function(){var newargs=[arg];for(var i=0;i/g,">");return text},xmlTextNode:function(text){text=Strophe.xmlescape(text);if(!Strophe._xmlGenerator){Strophe._xmlGenerator=Strophe._makeGenerator()}return Strophe._xmlGenerator.createTextNode(text)},getText:function(elem){if(!elem){return null}var str="";if(elem.childNodes.length===0&&elem.nodeType==Strophe.ElementType.TEXT){str+=elem.nodeValue}for(var i=0;i/g,"\\3e").replace(/@/g,"\\40")},unescapeNode:function(node){return node.replace(/\\20/g," ").replace(/\\22/g,'"').replace(/\\26/g,"&").replace(/\\27/g,"'").replace(/\\2f/g,"/").replace(/\\3a/g,":").replace(/\\3c/g,"<").replace(/\\3e/g,">").replace(/\\40/g,"@").replace(/\\5c/g,"\\")},getNodeFromJid:function(jid){if(jid.indexOf("@")<0){return null}return jid.split("@")[0]},getDomainFromJid:function(jid){var bare=Strophe.getBareJidFromJid(jid);if(bare.indexOf("@")<0){return bare}else{var parts=bare.split("@");parts.splice(0,1);return parts.join("@")}},getResourceFromJid:function(jid){var s=jid.split("/");if(s.length<2){return null}s.splice(0,1);return s.join("/")},getBareJidFromJid:function(jid){return jid.split("/")[0]},log:function(level,msg){return},debug:function(msg){this.log(this.LogLevel.DEBUG,msg)},info:function(msg){this.log(this.LogLevel.INFO,msg)},warn:function(msg){this.log(this.LogLevel.WARN,msg)},error:function(msg){this.log(this.LogLevel.ERROR,msg)},fatal:function(msg){this.log(this.LogLevel.FATAL,msg)},serialize:function(elem){var result;if(!elem){return null}if(typeof(elem.tree)==="function"){elem=elem.tree()}var nodeName=elem.nodeName;var i,child;if(elem.getAttribute("_realname")){nodeName=elem.getAttribute("_realname")}result="<"+nodeName;for(i=0;i0){result+=">";for(i=0;i"}else{result+="/>"}return result},_requestId:0,_connectionPlugins:{},addConnectionPlugin:function(name,ptype){Strophe._connectionPlugins[name]=ptype}};Strophe.Builder=function(name,attrs){if(name=="presence"||name=="message"||name=="iq"){if(attrs&&!attrs.xmlns){attrs.xmlns=Strophe.NS.CLIENT}else{if(!attrs){attrs={xmlns:Strophe.NS.CLIENT}}}}this.nodeTree=Strophe.xmlElement(name,attrs);this.node=this.nodeTree};Strophe.Builder.prototype={tree:function(){return this.nodeTree},toString:function(){return Strophe.serialize(this.nodeTree)},up:function(){this.node=this.node.parentNode;return this},attrs:function(moreattrs){for(var k in moreattrs){if(moreattrs.hasOwnProperty(k)){this.node.setAttribute(k,moreattrs[k])}}return this},c:function(name,attrs){var child=Strophe.xmlElement(name,attrs);this.node.appendChild(child);this.node=child;return this},cnode:function(elem){this.node.appendChild(elem);this.node=elem;return this},t:function(text){var child=Strophe.xmlTextNode(text);this.node.appendChild(child);return this}};Strophe.Handler=function(handler,ns,name,type,id,from,options){this.handler=handler;this.ns=ns;this.name=name;this.type=type;this.id=id;this.options=options||{matchbare:false};if(!this.options.matchBare){this.options.matchBare=false}if(this.options.matchBare){this.from=Strophe.getBareJidFromJid(from)}else{this.from=from}this.user=true};Strophe.Handler.prototype={isMatch:function(elem){var nsMatch;var from=null;if(this.options.matchBare){from=Strophe.getBareJidFromJid(elem.getAttribute("from"))}else{from=elem.getAttribute("from")}nsMatch=false;if(!this.ns){nsMatch=true}else{var self=this;Strophe.forEachChild(elem,null,function(elem){if(elem.getAttribute("xmlns")==self.ns){nsMatch=true}});nsMatch=nsMatch||elem.getAttribute("xmlns")==this.ns}if(nsMatch&&(!this.name||Strophe.isTagEqual(elem,this.name))&&(!this.type||elem.getAttribute("type")===this.type)&&(!this.id||elem.getAttribute("id")===this.id)&&(!this.from||from===this.from)){return true}return false},run:function(elem){var result=null;try{result=this.handler(elem)}catch(e){if(e.sourceURL){Strophe.fatal("error: "+this.handler+" "+e.sourceURL+":"+e.line+" - "+e.name+": "+e.message)}else{if(e.fileName){if(typeof(console)!="undefined"){console.trace();console.error(this.handler," - error - ",e,e.message)}Strophe.fatal("error: "+this.handler+" "+e.fileName+":"+e.lineNumber+" - "+e.name+": "+e.message)}else{Strophe.fatal("error: "+this.handler)}}throw e}return result},toString:function(){return"{Handler: "+this.handler+"("+this.name+","+this.id+","+this.ns+")}"}};Strophe.TimedHandler=function(period,handler){this.period=period;this.handler=handler;this.lastCalled=new Date().getTime();this.user=true};Strophe.TimedHandler.prototype={run:function(){this.lastCalled=new Date().getTime();return this.handler()},reset:function(){this.lastCalled=new Date().getTime()},toString:function(){return"{TimedHandler: "+this.handler+"("+this.period+")}"}};Strophe.Request=function(elem,func,rid,sends){this.id=++Strophe._requestId;this.xmlData=elem;this.data=Strophe.serialize(elem);this.origFunc=func;this.func=func;this.rid=rid;this.date=NaN;this.sends=sends||0;this.abort=false;this.dead=null;this.age=function(){if(!this.date){return 0}var now=new Date();return(now-this.date)/1000};this.timeDead=function(){if(!this.dead){return 0}var now=new Date();return(now-this.dead)/1000};this.xhr=this._newXHR()};Strophe.Request.prototype={getResponse:function(){var node=null;if(this.xhr.responseXML&&this.xhr.responseXML.documentElement){node=this.xhr.responseXML.documentElement;if(node.tagName=="parsererror"){Strophe.error("invalid response received");Strophe.error("responseText: "+this.xhr.responseText);Strophe.error("responseXML: "+Strophe.serialize(this.xhr.responseXML));throw"parsererror"}}else{if(this.xhr.responseText){Strophe.error("invalid response received");Strophe.error("responseText: "+this.xhr.responseText);Strophe.error("responseXML: "+Strophe.serialize(this.xhr.responseXML))}}return node},_newXHR:function(){var xhr=null;if(window.XMLHttpRequest){xhr=new XMLHttpRequest();if(xhr.overrideMimeType){xhr.overrideMimeType("text/xml")}}else{if(window.ActiveXObject){xhr=new ActiveXObject("Microsoft.XMLHTTP")}}xhr.onreadystatechange=this.func.prependArg(this);return xhr}};Strophe.Connection=function(service){this.service=service;this.jid="";this.rid=Math.floor(Math.random()*4294967295);this.sid=null;this.streamId=null;this.do_session=false;this.do_bind=false;this.timedHandlers=[];this.handlers=[];this.removeTimeds=[];this.removeHandlers=[];this.addTimeds=[];this.addHandlers=[];this._idleTimeout=null;this._disconnectTimeout=null;this.authenticated=false;this.disconnecting=false;this.connected=false;this.errors=0;this.paused=false;this.hold=1;this.wait=60;this.window=5;this._data=[];this._requests=[];this._uniqueId=Math.round(Math.random()*10000);this._sasl_success_handler=null;this._sasl_failure_handler=null;this._sasl_challenge_handler=null;this._idleTimeout=setTimeout(this._onIdle.bind(this),100);for(var k in Strophe._connectionPlugins){if(Strophe._connectionPlugins.hasOwnProperty(k)){var ptype=Strophe._connectionPlugins[k];var F=function(){};F.prototype=ptype;this[k]=new F();this[k].init(this)}}};Strophe.Connection.prototype={reset:function(){this.rid=Math.floor(Math.random()*4294967295);this.sid=null;this.streamId=null;this.do_session=false;this.do_bind=false;this.timedHandlers=[];this.handlers=[];this.removeTimeds=[];this.removeHandlers=[];this.addTimeds=[];this.addHandlers=[];this.authenticated=false;this.disconnecting=false;this.connected=false;this.errors=0;this._requests=[];this._uniqueId=Math.round(Math.random()*10000)},pause:function(){this.paused=true},resume:function(){this.paused=false},getUniqueId:function(suffix){if(typeof(suffix)=="string"||typeof(suffix)=="number"){return ++this._uniqueId+":"+suffix}else{return ++this._uniqueId+""}},connect:function(jid,pass,callback,wait,hold){this.jid=jid;this.pass=pass;this.connect_callback=callback;this.disconnecting=false;this.connected=false;this.authenticated=false;this.errors=0;this.wait=wait||this.wait;this.hold=hold||this.hold;this.domain=Strophe.getDomainFromJid(this.jid);var body=this._buildBody().attrs({to:this.domain,"xml:lang":"en",wait:this.wait,hold:this.hold,content:"text/xml; charset=utf-8",ver:"1.6","xmpp:version":"1.0","xmlns:xmpp":Strophe.NS.BOSH});this._changeConnectStatus(Strophe.Status.CONNECTING,null);this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this).prependArg(this._connect_cb.bind(this)),body.tree().getAttribute("rid")));this._throttledRequestHandler()},attach:function(jid,sid,rid,callback,wait,hold,wind){this.jid=jid;this.sid=sid;this.rid=rid;this.connect_callback=callback;this.domain=Strophe.getDomainFromJid(this.jid);this.authenticated=true;this.connected=true;this.wait=wait||this.wait;this.hold=hold||this.hold;this.window=wind||this.window;this._changeConnectStatus(Strophe.Status.ATTACHED,null)},xmlInput:function(elem){return},xmlOutput:function(elem){return},rawInput:function(data){return},rawOutput:function(data){return},send:function(elem){if(elem===null){return}if(typeof(elem.sort)==="function"){for(var i=0;i=0;i--){if(req==this._requests[i]){this._requests.splice(i,1)}}req.xhr.onreadystatechange=function(){};this._throttledRequestHandler()},_restartRequest:function(i){var req=this._requests[i];if(req.dead===null){req.dead=new Date()}this._processRequest(i)},_processRequest:function(i){var req=this._requests[i];var reqStatus=-1;try{if(req.xhr.readyState==4){reqStatus=req.xhr.status}}catch(e){Strophe.error("caught an error in _requests["+i+"], reqStatus: "+reqStatus)}if(typeof(reqStatus)=="undefined"){reqStatus=-1}var time_elapsed=req.age();var primaryTimeout=(!isNaN(time_elapsed)&&time_elapsed>Math.floor(Strophe.TIMEOUT*this.wait));var secondaryTimeout=(req.dead!==null&&req.timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait));var requestCompletedWithServerError=(req.xhr.readyState==4&&(reqStatus<1||reqStatus>=500));if(primaryTimeout||secondaryTimeout||requestCompletedWithServerError){if(secondaryTimeout){Strophe.error("Request "+this._requests[i].id+" timed out (secondary), restarting")}req.abort=true;req.xhr.abort();req.xhr.onreadystatechange=function(){};this._requests[i]=new Strophe.Request(req.xmlData,req.origFunc,req.rid,req.sends);req=this._requests[i]}if(req.xhr.readyState===0){Strophe.debug("request id "+req.id+"."+req.sends+" posting");req.date=new Date();try{req.xhr.open("POST",this.service,true)}catch(e2){Strophe.error("XHR open failed.");if(!this.connected){this._changeConnectStatus(Strophe.Status.CONNFAIL,"bad-service")}this.disconnect();return}var sendFunc=function(){req.xhr.send(req.data)};if(req.sends>1){var backoff=Math.pow(req.sends,3)*1000;setTimeout(sendFunc,backoff)}else{sendFunc()}req.sends++;this.xmlOutput(req.xmlData);this.rawOutput(req.data)}else{Strophe.debug("_processRequest: "+(i===0?"first":"second")+" request has readyState of "+req.xhr.readyState)}},_throttledRequestHandler:function(){if(!this._requests){Strophe.debug("_throttledRequestHandler called with undefined requests")}else{Strophe.debug("_throttledRequestHandler called with "+this._requests.length+" requests")}if(!this._requests||this._requests.length===0){return}if(this._requests.length>0){this._processRequest(0)}if(this._requests.length>1&&Math.abs(this._requests[0].rid-this._requests[1].rid)=400){this._hitError(reqStatus);return}}var reqIs0=(this._requests[0]==req);var reqIs1=(this._requests[1]==req);if((reqStatus>0&&reqStatus<500)||req.sends>5){this._removeRequest(req);Strophe.debug("request id "+req.id+" should now be removed")}if(reqStatus==200){if(reqIs1||(reqIs0&&this._requests.length>0&&this._requests[0].age()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait))){this._restartRequest(0)}Strophe.debug("request id "+req.id+"."+req.sends+" got 200");func(req);this.errors=0}else{Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened");if(reqStatus===0||(reqStatus>=400&&reqStatus<600)||reqStatus>=12000){this._hitError(reqStatus);if(reqStatus>=400&&reqStatus<500){this._changeConnectStatus(Strophe.Status.DISCONNECTING,null);this._doDisconnect()}}}if(!((reqStatus>0&&reqStatus<10000)||req.sends>5)){this._throttledRequestHandler()}}},_hitError:function(reqStatus){this.errors++;Strophe.warn("request errored, status: "+reqStatus+", number of errors: "+this.errors);if(this.errors>4){this._onDisconnectTimeout()}},_doDisconnect:function(){Strophe.info("_doDisconnect was called");this.authenticated=false;this.disconnecting=false;this.sid=null;this.streamId=null;this.rid=Math.floor(Math.random()*4294967295);if(this.connected){this._changeConnectStatus(Strophe.Status.DISCONNECTED,null);this.connected=false}this.handlers=[];this.timedHandlers=[];this.removeTimeds=[];this.removeHandlers=[];this.addTimeds=[];this.addHandlers=[]},_dataRecv:function(req){try{var elem=req.getResponse()}catch(e){if(e!="parsererror"){throw e}this.disconnect("strophe-parsererror")}if(elem===null){return}this.xmlInput(elem);this.rawInput(Strophe.serialize(elem));var i,hand;while(this.removeHandlers.length>0){hand=this.removeHandlers.pop();i=this.handlers.indexOf(hand);if(i>=0){this.handlers.splice(i,1)}}while(this.addHandlers.length>0){this.handlers.push(this.addHandlers.pop())}if(this.disconnecting&&this._requests.length===0){this.deleteTimedHandler(this._disconnectTimeout);this._disconnectTimeout=null;this._doDisconnect();return}var typ=elem.getAttribute("type");var cond,conflict;if(typ!==null&&typ=="terminate"){cond=elem.getAttribute("condition");conflict=elem.getElementsByTagName("conflict");if(cond!==null){if(cond=="remote-stream-error"&&conflict.length>0){cond="conflict"}this._changeConnectStatus(Strophe.Status.CONNFAIL,cond)}else{this._changeConnectStatus(Strophe.Status.CONNFAIL,"unknown")}this.disconnect();return}var self=this;Strophe.forEachChild(elem,null,function(child){var i,newList;newList=self.handlers;self.handlers=[];for(i=0;i0){cond="conflict"}this._changeConnectStatus(Strophe.Status.CONNFAIL,cond)}else{this._changeConnectStatus(Strophe.Status.CONNFAIL,"unknown")}return}if(!this.sid){this.sid=bodyWrap.getAttribute("sid")}if(!this.stream_id){this.stream_id=bodyWrap.getAttribute("authid")}var wind=bodyWrap.getAttribute("requests");if(wind){this.window=parseInt(wind,10)}var hold=bodyWrap.getAttribute("hold");if(hold){this.hold=parseInt(hold,10)}var wait=bodyWrap.getAttribute("wait");if(wait){this.wait=parseInt(wait,10)}var do_sasl_plain=false;var do_sasl_digest_md5=false;var do_sasl_anonymous=false;var mechanisms=bodyWrap.getElementsByTagName("mechanism");var i,mech,auth_str,hashed_auth_str;if(mechanisms.length>0){for(i=0;i0){jidNode=bind[0].getElementsByTagName("jid");if(jidNode.length>0){this.jid=Strophe.getText(jidNode[0]);if(this.do_session){this._addSysHandler(this._sasl_session_cb.bind(this),null,null,null,"_session_auth_2");this.send($iq({type:"set",id:"_session_auth_2"}).c("session",{xmlns:Strophe.NS.SESSION}).tree())}else{this.authenticated=true;this._changeConnectStatus(Strophe.Status.CONNECTED,null)}}}else{Strophe.info("SASL binding failed.");this._changeConnectStatus(Strophe.Status.AUTHFAIL,null);return false}},_sasl_session_cb:function(elem){if(elem.getAttribute("type")=="result"){this.authenticated=true;this._changeConnectStatus(Strophe.Status.CONNECTED,null)}else{if(elem.getAttribute("type")=="error"){Strophe.info("Session creation failed.");this._changeConnectStatus(Strophe.Status.AUTHFAIL,null);return false}}return false},_sasl_failure_cb:function(elem){if(this._sasl_success_handler){this.deleteHandler(this._sasl_success_handler);this._sasl_success_handler=null}if(this._sasl_challenge_handler){this.deleteHandler(this._sasl_challenge_handler);this._sasl_challenge_handler=null}this._changeConnectStatus(Strophe.Status.AUTHFAIL,null);return false},_auth2_cb:function(elem){if(elem.getAttribute("type")=="result"){this.authenticated=true;this._changeConnectStatus(Strophe.Status.CONNECTED,null)}else{if(elem.getAttribute("type")=="error"){this._changeConnectStatus(Strophe.Status.AUTHFAIL,null);this.disconnect()}}return false},_addSysTimedHandler:function(period,handler){var thand=new Strophe.TimedHandler(period,handler);thand.user=false;this.addTimeds.push(thand);return thand},_addSysHandler:function(handler,ns,name,type,id){var hand=new Strophe.Handler(handler,ns,name,type,id);hand.user=false;this.addHandlers.push(hand);return hand},_onDisconnectTimeout:function(){Strophe.info("_onDisconnectTimeout was called");var req;while(this._requests.length>0){req=this._requests.pop();req.abort=true;req.xhr.abort();req.xhr.onreadystatechange=function(){}}this._doDisconnect();return false},_onIdle:function(){var i,thand,since,newList;while(this.removeTimeds.length>0){thand=this.removeTimeds.pop();i=this.timedHandlers.indexOf(thand);if(i>=0){this.timedHandlers.splice(i,1)}}while(this.addTimeds.length>0){this.timedHandlers.push(this.addTimeds.pop())}var now=new Date().getTime();newList=[];for(i=0;i0&&!this.paused){body=this._buildBody();for(i=0;i0){time_elapsed=this._requests[0].age();if(this._requests[0].dead!==null){if(this._requests[0].timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait)){this._throttledRequestHandler()}}if(time_elapsed>Math.floor(Strophe.TIMEOUT*this.wait)){Strophe.warn("Request "+this._requests[0].id+" timed out, over "+Math.floor(Strophe.TIMEOUT*this.wait)+" seconds since last activity");this._throttledRequestHandler()}}clearTimeout(this._idleTimeout);this._idleTimeout=setTimeout(this._onIdle.bind(this),100)}};if(callback){callback(Strophe,$build,$msg,$iq,$pres)}})(function(){window.Strophe=arguments[0];window.$build=arguments[1];window.$msg=arguments[2];window.$iq=arguments[3];window.$pres=arguments[4]}); \ No newline at end of file diff --git a/app/assets/javascripts/strophejs-1.0.1/tests/jstests.js b/app/assets/javascripts/strophejs-1.0.1/tests/jstests.js new file mode 100644 index 0000000..bfc244e --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/tests/jstests.js @@ -0,0 +1,136 @@ +TestCase("JIDs", { + testNormalJid: function () { + var jid = "darcy@pemberley.lit/library"; + assertEquals("Node should be 'darcy'", + "darcy", Strophe.getNodeFromJid(jid)); + assertEquals("Domain should be 'pemberley.lit'", + "pemberley.lit", Strophe.getDomainFromJid(jid)); + assertEquals("Resource should be 'library'", + "library", Strophe.getResourceFromJid(jid)); + assertEquals("Bare JID should be 'darcy@pemberley.lit'", + "darcy@pemberley.lit", Strophe.getBareJidFromJid(jid)); + }, + + testWeirdNode: function () { + var jid = "darcy@netherfield.lit@pemberley.lit/library"; + assertEquals("Node should be 'darcy'", + "darcy", Strophe.getNodeFromJid(jid)); + assertEquals("Domain should be 'netherfield.lit@pemberley.lit'", + "netherfield.lit@pemberley.lit", + Strophe.getDomainFromJid(jid)); + assertEquals("Resource should be 'library'", + "library", Strophe.getResourceFromJid(jid)); + assertEquals("Bare JID should be 'darcy@netherfield.lit@pemberley.lit", + "darcy@netherfield.lit@pemberley.lit", + Strophe.getBareJidFromJid(jid)); + } +}); + +function foo() { + var $ = function () {}; + + test("Weird node (escaped)", function () { + var escapedNode = Strophe.escapeNode("darcy@netherfield.lit"); + var jid = escapedNode + "@pemberley.lit/library"; + equals(Strophe.getNodeFromJid(jid), "darcy\\40netherfield.lit", + "Node should be 'darcy\\40netherfield.lit'"); + equals(Strophe.getDomainFromJid(jid), + "pemberley.lit", + "Domain should be 'pemberley.lit'"); + equals(Strophe.getResourceFromJid(jid), "library", + "Resource should be 'library'"); + equals(Strophe.getBareJidFromJid(jid), + "darcy\\40netherfield.lit@pemberley.lit", + "Bare JID should be 'darcy\\40netherfield.lit@pemberley.lit'"); + }); + + test("Weird resource", function () { + var jid = "books@chat.pemberley.lit/darcy@pemberley.lit/library"; + equals(Strophe.getNodeFromJid(jid), "books", + "Node should be 'books'"); + equals(Strophe.getDomainFromJid(jid), "chat.pemberley.lit", + "Domain should be 'chat.pemberley.lit'"); + equals(Strophe.getResourceFromJid(jid), + "darcy@pemberley.lit/library", + "Resource should be 'darcy@pemberley.lit/library'"); + equals(Strophe.getBareJidFromJid(jid), + "books@chat.pemberley.lit", + "Bare JID should be 'books@chat.pemberley.lit'"); + }); + + module("Builder"); + + test("Correct namespace (#32)", function () { + var stanzas = [new Strophe.Builder("message", {foo: "asdf"}).tree(), + $build("iq", {}).tree(), + $pres().tree()]; + $.each(stanzas, function () { + equals($(this).attr('xmlns'), Strophe.NS.CLIENT, + "Namespace should be '" + Strophe.NS.CLIENT + "'"); + }); + }); + + test("send() accepts Builders (#27)", function () { + var stanza = $pres(); + var conn = new Strophe.Connection(""); + // fake connection callback to avoid errors + conn.connect_callback = function () {}; + + ok(conn._data.length === 0, "Output queue is clean"); + try { + conn.send(stanza); + } catch (e) {} + ok(conn._data.length === 1, "Output queue contains an element"); + }); + + test("send() does not accept strings", function () { + var stanza = ""; + var conn = new Strophe.Connection(""); + // fake connection callback to avoid errors + conn.connect_callback = function () {}; + expect(1); + try { + conn.send(stanza); + } catch (e) { + equals(e.name, "StropheError", "send() should throw exception"); + } + }); + + test("Builder with XML attribute escaping test", function () { + var text = ""; + var expected = ""; + var pres = $pres({to: text}); + equals(pres.toString(), expected, "< should be escaped"); + + text = "foo&bar"; + expected = ""; + pres = $pres({to: text}); + equals(pres.toString(), expected, "& should be escaped"); + }); + + module("XML"); + + test("XML escaping test", function () { + var text = "s & p"; + var textNode = Strophe.xmlTextNode(text); + equals(Strophe.getText(textNode), "s & p", "should be escaped"); + var text0 = "s < & > p"; + var textNode0 = Strophe.xmlTextNode(text0); + equals(Strophe.getText(textNode0), "s < & > p", "should be escaped"); + }); + + test("XML element creation", function () { + var elem = Strophe.xmlElement("message"); + equals(elem.tagName, "message", "Element name should be the same"); + }); + + module("Misc"); + + test("Quoting strings", function () { + var input = '"beep \\40"'; + var conn = new Strophe.Connection(); + var output = conn._quote(input); + equals(output, "\"\\\"beep \\\\40\\\"\"", + "string should be quoted and escaped"); + }); +} diff --git a/app/assets/javascripts/strophejs-1.0.1/tests/jsyuitests.js b/app/assets/javascripts/strophejs-1.0.1/tests/jsyuitests.js new file mode 100644 index 0000000..469f150 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/tests/jsyuitests.js @@ -0,0 +1,31 @@ +YUI.add('strophe.test', function (Y) { + Y.namespace("strophe.test"); + var R = Y.namespace("strophe.test.Runner"); + + R.add = function (suite) { + for (var i = 0; i < suite.items.length; i++) { + TestCase(suite.items[i].name, suite.items[i]); + } + }; +}, '1.0', {requires: ['test']}); + +YUI().use("test", "strophe.test", function (Y) { + var Assert = Y.Assert; + + var suite = new Y.Test.Suite("Strophe Tests"); + suite.add(new Y.Test.Case({ + name: "JIDs", + + testNormalJid: function () { + var jid = "darcy@pemberley.lit/library"; + + Assert.areSame("darcy", Strophe.getNodeFromJid(jid)); + Assert.areSame("pemberley.lit", Strophe.getDomainFromJid(jid)); + Assert.areSame("library", Strophe.getResourceFromJid(jid)); + Assert.areSame("darcy@pemberley.lit", + Strophe.getBareJidFromJid(jid)); + } + })); + + Y.strophe.test.Runner.add(suite); +}); diff --git a/app/assets/javascripts/strophejs-1.0.1/tests/pubsub.html b/app/assets/javascripts/strophejs-1.0.1/tests/pubsub.html new file mode 100644 index 0000000..42b8259 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/tests/pubsub.html @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + +

              QUnit tests for Strophe

              +

              + +
              +
              +
                +
                + + diff --git a/app/assets/javascripts/strophejs-1.0.1/tests/pubsub.js b/app/assets/javascripts/strophejs-1.0.1/tests/pubsub.js new file mode 100644 index 0000000..50ce2de --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/tests/pubsub.js @@ -0,0 +1,314 @@ + + +Strophe.Test = { + BOSH_URL: "/xmpp-httpbind", + XMPP_DOMAIN: 'localhost', + PUBSUB_COMPONENT: "pubsub.localhost", + _node_name: "", //node name created in connectCallback function + connection: null, //connection object created in run function + + run: function() { + $(document).ready(function(){ + //Connect strophe, uses localhost to test + Strophe.Test.connection = new Strophe.Connection(Strophe.Test.BOSH_URL); + + //connect anonymously to run most tests + Strophe.Test.connection.connect(Strophe.Test.XMPP_DOMAIN, + null, + Strophe.Test.connectCallback); + + //set up the test client UI + $("#disconnect").click(function() { + Strophe.Test.connection.disconnect(); + }); + $("#run_tests").click(function() { + test("Anonymous connection test.", function() { + if(Strophe.Test.connection.connected) + { + ok( true, "all good"); + } + else + { + ok( false, "not connected anonymously"); + } + }); + + test("Create default node test.",function(){ + var iqid = Strophe.Test.connection.pubsub + .createNode(Strophe.Test.connection.jid, + Strophe.Test.PUBSUB_COMPONENT, + Strophe.Test._node_name, {}, + function(stanza) { + test("handled create node.", + function() { + var error = $(stanza).find("error"); + + if(error.length == 0) + { + ok(true, "returned"); + } + else + { + ok(false,"error creating node."); + } + }); + }); + ok(true,"sent create request. "+ iqid); + }); + + test("subscribe to a node",function() { + var iqid = Strophe.Test.connection.pubsub + .subscribe(Strophe.Test.connection.jid, + Strophe.Test.PUBSUB_COMPONENT, + Strophe.Test._node_name, + [], + function(stanza) { + test("items received", function() { + console.log(stanza); + if($(stanza).length > 0) + { + ok(true,"item received."); + } + else + { + ok(false,"no items."); + } + }); + }, + function(stanza) { + var error = $(stanza).find("error"); + + test("handled subscribe", + function() { + if(error.length == 0) + { + ok(true,"subscribed"); + } + else + { + console.log(error.get(0)); + ok(false, + "not subscribed"); + } + + }); + }); + + if(iqid) + ok(true, + "subscribed to " + Strophe.Test._node_name); + }); + + test("publish to a node",function() { + var iqid = Strophe.Test.connection.pubsub + .publish(Strophe.Test.connection.jid, + Strophe.Test.PUBSUB_COMPONENT, + Strophe.Test._node_name, + {test:'test'}, + function(stanza) { + var error = $(stanza).find("error"); + + test("handled published item", + function() { + if(error.length == 0) + { + ok(true,"got item"); + } + else + { + ok(false, + "no item"); + } + + }); + }); + + if(iqid) + ok(true, + "published to " + Strophe.Test._node_name); + + }); + + test("subscribe to a node with options",function() { + var keyword_elem = Strophe.xmlElement("field", + [["var", + "http://stanziq.com/search#keyword"], + ["type", + 'text-single'], + ["label", + "keyword to match"]]); + var value = Strophe.xmlElement("value",[]); + var text = Strophe.xmlTextNode("crazy"); + value.appendChild(text); + keyword_elem.appendChild(value); + + var iqid = Strophe.Test.connection.pubsub + .subscribe(Strophe.Test.connection.jid, + Strophe.Test.PUBSUB_COMPONENT, + Strophe.Test._node_name, + [keyword_elem], + function(stanza) {console.log(stanza);}, + function(stanza) { + + var error = $(stanza).find("error"); + + test("handled subscribe with options", + function() { + if(error.length == 0) + { + ok(true,"search subscribed"); + } + else + { + console.log(error.get(0)); + ok(false, + "search not subscribed"); + } + + }); + }); + + if(iqid) + ok(true, + "subscribed to search"); + }); + + test("unsubscribe to a node",function() { + var iqid = Strophe.Test.connection.pubsub + .unsubscribe(Strophe.Test.connection.jid, + Strophe.Test.PUBSUB_COMPONENT, + Strophe.Test._node_name, + function(stanza) { + var error = $(stanza).find("error"); + + test("handled unsubscribe", + function() { + if(error.length == 0) + { + ok(true,"unsubscribed"); + } + else + { + console.log(error.get(0)); + ok(false, + "unable to unsubscribed"); + } + }); + }); + + if(iqid) + ok(true, + "unsubscribed from search with no options."); + }); + + test("test items retrieval",function(){ + var itemid = Strophe.Test.connection.pubsub + .items(Strophe.Test.connection.jid, + Strophe.Test.PUBSUB_COMPONENT, + Strophe.Test._node_name, + function(stanza) { + ok(true,"item request successful."); + }, + function(stanza) { + ok(false,"failed to send request."); + }); + + if(itemid) + { + ok(true,"item request sent."); + } + }); + + test("test sendIQ interface.",function(){ + var sendiq_good = false; + //setup timeout for sendIQ for 3 seconds + setTimeout(function() { + test("Timeout check", function () { + ok(sendiq_good, "The iq didn't timeout."); + }); + }, 3000); + + //send a pubsub subscribe stanza + + var sub = $iq({from:Strophe.Test.connection.jid, + to:Strophe.Test.PUBSUB_COMPONENT, + type:'set'}) + .c('pubsub', { xmlns:Strophe.NS.PUBSUB }) + .c('subscribe', + {node:Strophe.Test._node_name, + jid:Strophe.Test.connection.jid}); + var stanza=sub.tree(); + //call sendIQ with several call backs + Strophe.Test.connection + .sendIQ(stanza, + function(stanza) { + test("iq sent",function() { + sendiq_good = true; + ok(true,"iq sent succesfully."); + }); + }, + function(stz) { + test("iq fail",function() { + if (stz) + sendiq_good = true; + console.log(stanza); + ok(true,"failed to send iq."); + }); + }); + }); + + test("test sendIQ failed.",function(){ + var sub = $iq({from:Strophe.Test.connection.jid, + to:Strophe.Test.PUBSUB_COMPONENT, + type:'get'}); + + //call sendIQ with several call backs + Strophe.Test.connection + .sendIQ(sub.tree(), + function(stanza) { + console.log(stanza); + test("iq sent",function() { + ok(false, + "iq sent succesfully when should have failed."); + }); + }, + function(stanza) { + test("iq fail",function() { + ok(true, + "success on failure test: failed to send iq."); + }); + }); + }); + }); + }); + }, + + connectCallback: function(status,cond) { + var error_message = null; + if(status == Strophe.Status.CONNECTED) + { + $('#run_tests').show(); + $('#disconnect').show(); + var bare_jid = Strophe.getBareJidFromJid(Strophe.Test.connection.jid).split("@")[0]; + Strophe.Test._node_name = "/home/"+Strophe.Test.XMPP_DOMAIN+"/"+bare_jid; + } + else if (status == Strophe.Status.DISCONNECTED || status == Strophe.Status.DICONNECTING) + { + $('#run_tests').hide(); + $('#disconnect').hide(); + } + else if ((status == 0) || (status == Strophe.Status.CONNFAIL)) + { + error_message = "Failed to connect to xmpp server."; + } + else if (status == Strophe.Status.AUTHFAIL) + { + error_message = "Failed to authenticate to xmpp server."; + } + if(error_message) + { + $('published_item').text(error_message); + + } + } +}; diff --git a/app/assets/javascripts/strophejs-1.0.1/tests/strophe.html b/app/assets/javascripts/strophejs-1.0.1/tests/strophe.html new file mode 100644 index 0000000..49934f5 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/tests/strophe.html @@ -0,0 +1,22 @@ + + + + + + + + + + + Strophe.js Tests + + +

                Strophe.js Tests

                +

                +

                +
                  +
                  + + diff --git a/app/assets/javascripts/strophejs-1.0.1/tests/testrunner.js b/app/assets/javascripts/strophejs-1.0.1/tests/testrunner.js new file mode 100644 index 0000000..fd3abd5 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/tests/testrunner.js @@ -0,0 +1,735 @@ +/* + * QUnit - jQuery unit testrunner + * + * http://docs.jquery.com/QUnit + * + * Copyright (c) 2008 John Resig, Jörn Zaefferer + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Id$ + */ + +(function($) { + +// Tests for equality any JavaScript type and structure without unexpected results. +// Discussions and reference: http://philrathe.com/articles/equiv +// Test suites: http://philrathe.com/tests/equiv +// Author: Philippe Rathé +var equiv = function () { + + var innerEquiv; // the real equiv function + var callers = []; // stack to decide between skip/abort functions + + // Determine what is o. + function hoozit(o) { + if (typeof o === "string") { + return "string"; + + } else if (typeof o === "boolean") { + return "boolean"; + + } else if (typeof o === "number") { + + if (isNaN(o)) { + return "nan"; + } else { + return "number"; + } + + } else if (typeof o === "undefined") { + return "undefined"; + + // consider: typeof null === object + } else if (o === null) { + return "null"; + + // consider: typeof [] === object + } else if (o instanceof Array) { + return "array"; + + // consider: typeof new Date() === object + } else if (o instanceof Date) { + return "date"; + + // consider: /./ instanceof Object; + // /./ instanceof RegExp; + // typeof /./ === "function"; // => false in IE and Opera, + // true in FF and Safari + } else if (o instanceof RegExp) { + return "regexp"; + + } else if (typeof o === "object") { + return "object"; + + } else if (o instanceof Function) { + return "function"; + } + } + + // Call the o related callback with the given arguments. + function bindCallbacks(o, callbacks, args) { + var prop = hoozit(o); + if (prop) { + if (hoozit(callbacks[prop]) === "function") { + return callbacks[prop].apply(callbacks, args); + } else { + return callbacks[prop]; // or undefined + } + } + } + + var callbacks = function () { + + // for string, boolean, number and null + function useStrictEquality(b, a) { + return a === b; + } + + return { + "string": useStrictEquality, + "boolean": useStrictEquality, + "number": useStrictEquality, + "null": useStrictEquality, + "undefined": useStrictEquality, + + "nan": function (b) { + return isNaN(b); + }, + + "date": function (b, a) { + return hoozit(b) === "date" && a.valueOf() === b.valueOf(); + }, + + "regexp": function (b, a) { + return hoozit(b) === "regexp" && + a.source === b.source && // the regex itself + a.global === b.global && // and its modifers (gmi) ... + a.ignoreCase === b.ignoreCase && + a.multiline === b.multiline; + }, + + // - skip when the property is a method of an instance (OOP) + // - abort otherwise, + // initial === would have catch identical references anyway + "function": function () { + var caller = callers[callers.length - 1]; + return caller !== Object && + typeof caller !== "undefined"; + }, + + "array": function (b, a) { + var i; + var len; + + // b could be an object literal here + if ( ! (hoozit(b) === "array")) { + return false; + } + + len = a.length; + if (len !== b.length) { // safe and faster + return false; + } + for (i = 0; i < len; i++) { + if( ! innerEquiv(a[i], b[i])) { + return false; + } + } + return true; + }, + + "object": function (b, a) { + var i; + var eq = true; // unless we can proove it + var aProperties = [], bProperties = []; // collection of strings + + // comparing constructors is more strict than using instanceof + if ( a.constructor !== b.constructor) { + return false; + } + + // stack constructor before traversing properties + callers.push(a.constructor); + + for (i in a) { // be strict: don't ensures hasOwnProperty and go deep + + aProperties.push(i); // collect a's properties + + if ( ! innerEquiv(a[i], b[i])) { + eq = false; + } + } + + callers.pop(); // unstack, we are done + + for (i in b) { + bProperties.push(i); // collect b's properties + } + + // Ensures identical properties name + return eq && innerEquiv(aProperties.sort(), bProperties.sort()); + } + }; + }(); + + innerEquiv = function () { // can take multiple arguments + var args = Array.prototype.slice.apply(arguments); + if (args.length < 2) { + return true; // end transition + } + + return (function (a, b) { + if (a === b) { + return true; // catch the most you can + + } else if (typeof a !== typeof b || a === null || b === null || typeof a === "undefined" || typeof b === "undefined") { + return false; // don't lose time with error prone cases + + } else { + return bindCallbacks(a, callbacks, [b, a]); + } + + // apply transition with (1..n) arguments + })(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length -1)); + }; + + return innerEquiv; +}(); // equiv + +var config = { + stats: { + all: 0, + bad: 0 + }, + queue: [], + // block until document ready + blocking: true, + //restrict modules/tests by get parameters + filters: location.search.length > 1 && $.map( location.search.slice(1).split('&'), decodeURIComponent ), + isLocal: !!(window.location.protocol == 'file:') +}; + +// public API as global methods +$.extend(window, { + test: test, + module: module, + expect: expect, + ok: ok, + equals: equals, + start: start, + stop: stop, + reset: reset, + isLocal: config.isLocal, + same: function(a, b, message) { + push(equiv(a, b), a, b, message); + }, + QUnit: { + equiv: equiv + }, + // legacy methods below + isSet: isSet, + isObj: isObj, + compare: function() { + throw "compare is deprecated - use same() instead"; + }, + compare2: function() { + throw "compare2 is deprecated - use same() instead"; + }, + serialArray: function() { + throw "serialArray is deprecated - use jsDump.parse() instead"; + }, + q: q, + t: t, + url: url, + triggerEvent: triggerEvent +}); + +$(window).load(function() { + $('#userAgent').html(navigator.userAgent); + var head = $('
                  ').insertAfter("#userAgent"); + $('').attr("disabled", true).prependTo(head).click(function() { + $('li.pass')[this.checked ? 'hide' : 'show'](); + }); + runTest(); +}); + +function synchronize(callback) { + config.queue.push(callback); + if(!config.blocking) { + process(); + } +} + +function process() { + while(config.queue.length && !config.blocking) { + config.queue.shift()(); + } +} + +function stop(timeout) { + config.blocking = true; + if (timeout) + config.timeout = setTimeout(function() { + ok( false, "Test timed out" ); + start(); + }, timeout); +} +function start() { + // A slight delay, to avoid any current callbacks + setTimeout(function() { + if(config.timeout) + clearTimeout(config.timeout); + config.blocking = false; + process(); + }, 13); +} + +function validTest( name ) { + var filters = config.filters; + if( !filters ) + return true; + + var i = filters.length, + run = false; + while( i-- ){ + var filter = filters[i], + not = filter.charAt(0) == '!'; + if( not ) + filter = filter.slice(1); + if( name.indexOf(filter) != -1 ) + return !not; + if( not ) + run = true; + } + return run; +} + +function runTest() { + config.blocking = false; + var started = +new Date; + config.fixture = document.getElementById('main').innerHTML; + config.ajaxSettings = $.ajaxSettings; + synchronize(function() { + $('

                  ').html(['Tests completed in ', + +new Date - started, ' milliseconds.
                  ', + '', config.stats.bad, ' tests of ', config.stats.all, ' failed.

                  '] + .join('')) + .appendTo("body"); + $("#banner").addClass(config.stats.bad ? "fail" : "pass"); + }); +} + +function test(name, callback) { + if(config.currentModule) + name = config.currentModule + " module: " + name; + var lifecycle = $.extend({ + setup: function() {}, + teardown: function() {} + }, config.moduleLifecycle); + + if ( !validTest(name) ) + return; + + synchronize(function() { + config.assertions = []; + config.expected = null; + try { + lifecycle.setup(); + callback(); + lifecycle.teardown(); + } catch(e) { + if( typeof console != "undefined" && console.error && console.warn ) { + console.error("Test " + name + " died, exception and test follows"); + console.error(e); + console.warn(callback.toString()); + } + config.assertions.push( { + result: false, + message: "Died on test #" + (config.assertions.length + 1) + ": " + e.message + }); + } + }); + synchronize(function() { + try { + reset(); + } catch(e) { + if( typeof console != "undefined" && console.error && console.warn ) { + console.error("reset() failed, following Test " + name + ", exception and reset fn follows"); + console.error(e); + console.warn(reset.toString()); + } + } + + if(config.expected && config.expected != config.assertions.length) { + config.assertions.push({ + result: false, + message: "Expected " + config.expected + " assertions, but " + config.assertions.length + " were run" + }); + } + + var good = 0, bad = 0; + var ol = $("
                    ").hide(); + config.stats.all += config.assertions.length; + for ( var i = 0; i < config.assertions.length; i++ ) { + var assertion = config.assertions[i]; + $("
                  1. ").addClass(assertion.result ? "pass" : "fail").text(assertion.message || "(no message)").appendTo(ol); + assertion.result ? good++ : bad++; + } + config.stats.bad += bad; + + var b = $("").html(name + " (" + bad + ", " + good + ", " + config.assertions.length + ")") + .click(function(){ + $(this).next().toggle(); + }) + .dblclick(function(event) { + var target = $(event.target).filter("strong").clone(); + if ( target.length ) { + target.children().remove(); + location.href = location.href.match(/^(.+?)(\?.*)?$/)[1] + "?" + encodeURIComponent($.trim(target.text())); + } + }); + + $("
                  2. ").addClass(bad ? "fail" : "pass").append(b).append(ol).appendTo("#tests"); + + if(bad) { + $("#filter").attr("disabled", null); + } + }); +} + +// call on start of module test to prepend name to all tests +function module(name, lifecycle) { + config.currentModule = name; + config.moduleLifecycle = lifecycle; +} + +/** + * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through. + */ +function expect(asserts) { + config.expected = asserts; +} + +/** + * Resets the test setup. Useful for tests that modify the DOM. + */ +function reset() { + $("#main").html( config.fixture ); + $.event.global = {}; + $.ajaxSettings = $.extend({}, config.ajaxSettings); +} + +/** + * Asserts true. + * @example ok( $("a").size() > 5, "There must be at least 5 anchors" ); + */ +function ok(a, msg) { + config.assertions.push({ + result: !!a, + message: msg + }); +} + +/** + * Asserts that two arrays are the same + */ +function isSet(a, b, msg) { + function serialArray( a ) { + var r = []; + + if ( a && a.length ) + for ( var i = 0; i < a.length; i++ ) { + var str = a[i].nodeName; + if ( str ) { + str = str.toLowerCase(); + if ( a[i].id ) + str += "#" + a[i].id; + } else + str = a[i]; + r.push( str ); + } + + return "[ " + r.join(", ") + " ]"; + } + var ret = true; + if ( a && b && a.length != undefined && a.length == b.length ) { + for ( var i = 0; i < a.length; i++ ) + if ( a[i] != b[i] ) + ret = false; + } else + ret = false; + config.assertions.push({ + result: ret, + message: !ret ? (msg + " expected: " + serialArray(b) + " result: " + serialArray(a)) : msg + }); +} + +/** + * Asserts that two objects are equivalent + */ +function isObj(a, b, msg) { + var ret = true; + + if ( a && b ) { + for ( var i in a ) + if ( a[i] != b[i] ) + ret = false; + + for ( i in b ) + if ( a[i] != b[i] ) + ret = false; + } else + ret = false; + + config.assertions.push({ + result: ret, + message: msg + }); +} + +/** + * Returns an array of elements with the given IDs, eg. + * @example q("main", "foo", "bar") + * @result [
                    , , ] + */ +function q() { + var r = []; + for ( var i = 0; i < arguments.length; i++ ) + r.push( document.getElementById( arguments[i] ) ); + return r; +} + +/** + * Asserts that a select matches the given IDs + * @example t("Check for something", "//[a]", ["foo", "baar"]); + * @result returns true if "//[a]" return two elements with the IDs 'foo' and 'baar' + */ +function t(a,b,c) { + var f = $(b); + var s = ""; + for ( var i = 0; i < f.length; i++ ) + s += (s && ",") + '"' + f[i].id + '"'; + isSet(f, q.apply(q,c), a + " (" + b + ")"); +} + +/** + * Add random number to url to stop IE from caching + * + * @example url("data/test.html") + * @result "data/test.html?10538358428943" + * + * @example url("data/test.php?foo=bar") + * @result "data/test.php?foo=bar&10538358345554" + */ +function url(value) { + return value + (/\?/.test(value) ? "&" : "?") + new Date().getTime() + "" + parseInt(Math.random()*100000); +} + +/** + * Checks that the first two arguments are equal, with an optional message. + * Prints out both actual and expected values. + * + * Prefered to ok( actual == expected, message ) + * + * @example equals( $.format("Received {0} bytes.", 2), "Received 2 bytes." ); + * + * @param Object actual + * @param Object expected + * @param String message (optional) + */ +function equals(actual, expected, message) { + push(expected == actual, actual, expected, message); +} + +function push(result, actual, expected, message) { + message = message || (result ? "okay" : "failed"); + config.assertions.push({ + result: result, + message: result ? message + ": " + expected : message + ", expected: " + jsDump.parse(expected) + " result: " + jsDump.parse(actual) + }); +} + +/** + * Trigger an event on an element. + * + * @example triggerEvent( document.body, "click" ); + * + * @param DOMElement elem + * @param String type + */ +function triggerEvent( elem, type, event ) { + if ( $.browser.mozilla || $.browser.opera ) { + event = document.createEvent("MouseEvents"); + event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, + 0, 0, 0, 0, 0, false, false, false, false, 0, null); + elem.dispatchEvent( event ); + } else if ( $.browser.msie ) { + elem.fireEvent("on"+type); + } +} + +})(jQuery); + +/** + * jsDump + * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com + * Licensed under BSD (http://www.opensource.org/licenses/bsd-license.php) + * Date: 5/15/2008 + * @projectDescription Advanced and extensible data dumping for Javascript. + * @version 1.0.0 + * @author Ariel Flesler + * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html} + */ +(function(){ + function quote( str ){ + return '"' + str.toString().replace(/"/g, '\\"') + '"'; + }; + function literal( o ){ + return o + ''; + }; + function join( pre, arr, post ){ + var s = jsDump.separator(), + base = jsDump.indent(); + inner = jsDump.indent(1); + if( arr.join ) + arr = arr.join( ',' + s + inner ); + if( !arr ) + return pre + post; + return [ pre, inner + arr, base + post ].join(s); + }; + function array( arr ){ + var i = arr.length, ret = Array(i); + this.up(); + while( i-- ) + ret[i] = this.parse( arr[i] ); + this.down(); + return join( '[', ret, ']' ); + }; + + var reName = /^function (\w+)/; + + var jsDump = window.jsDump = { + parse:function( obj, type ){//type is used mostly internally, you can fix a (custom)type in advance + var parser = this.parsers[ type || this.typeOf(obj) ]; + type = typeof parser; + + return type == 'function' ? parser.call( this, obj ) : + type == 'string' ? parser : + this.parsers.error; + }, + typeOf:function( obj ){ + var type = typeof obj, + f = 'function';//we'll use it 3 times, save it + return type != 'object' && type != f ? type : + !obj ? 'null' : + obj.exec ? 'regexp' :// some browsers (FF) consider regexps functions + obj.getHours ? 'date' : + obj.scrollBy ? 'window' : + obj.nodeName == '#document' ? 'document' : + obj.nodeName ? 'node' : + obj.item ? 'nodelist' : // Safari reports nodelists as functions + obj.callee ? 'arguments' : + obj.call || obj.constructor != Array && //an array would also fall on this hack + (obj+'').indexOf(f) != -1 ? f : //IE reports functions like alert, as objects + 'length' in obj ? 'array' : + type; + }, + separator:function(){ + return this.multiline ? this.HTML ? '
                    ' : '\n' : this.HTML ? ' ' : ' '; + }, + indent:function( extra ){// extra can be a number, shortcut for increasing-calling-decreasing + if( !this.multiline ) + return ''; + var chr = this.indentChar; + if( this.HTML ) + chr = chr.replace(/\t/g,' ').replace(/ /g,' '); + return Array( this._depth_ + (extra||0) ).join(chr); + }, + up:function( a ){ + this._depth_ += a || 1; + }, + down:function( a ){ + this._depth_ -= a || 1; + }, + setParser:function( name, parser ){ + this.parsers[name] = parser; + }, + // The next 3 are exposed so you can use them + quote:quote, + literal:literal, + join:join, + // + _depth_: 1, + // This is the list of parsers, to modify them, use jsDump.setParser + parsers:{ + window: '[Window]', + document: '[Document]', + error:'[ERROR]', //when no parser is found, shouldn't happen + unknown: '[Unknown]', + 'null':'null', + undefined:'undefined', + 'function':function( fn ){ + var ret = 'function', + name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE + if( name ) + ret += ' ' + name; + ret += '('; + + ret = [ ret, this.parse( fn, 'functionArgs' ), '){'].join(''); + return join( ret, this.parse(fn,'functionCode'), '}' ); + }, + array: array, + nodelist: array, + arguments: array, + object:function( map ){ + var ret = [ ]; + this.up(); + for( var key in map ) + ret.push( this.parse(key,'key') + ': ' + this.parse(map[key]) ); + this.down(); + return join( '{', ret, '}' ); + }, + node:function( node ){ + var open = this.HTML ? '<' : '<', + close = this.HTML ? '>' : '>'; + + var tag = node.nodeName.toLowerCase(), + ret = open + tag; + + for( var a in this.DOMAttrs ){ + var val = node[this.DOMAttrs[a]]; + if( val ) + ret += ' ' + a + '=' + this.parse( val, 'attribute' ); + } + return ret + close + open + '/' + tag + close; + }, + functionArgs:function( fn ){//function calls it internally, it's the arguments part of the function + var l = fn.length; + if( !l ) return ''; + + var args = Array(l); + while( l-- ) + args[l] = String.fromCharCode(97+l);//97 is 'a' + return ' ' + args.join(', ') + ' '; + }, + key:quote, //object calls it internally, the key part of an item in a map + functionCode:'[code]', //function calls it internally, it's the content of the function + attribute:quote, //node calls it internally, it's an html attribute value + string:quote, + date:quote, + regexp:literal, //regex + number:literal, + 'boolean':literal + }, + DOMAttrs:{//attributes to dump from nodes, name=>realName + id:'id', + name:'name', + 'class':'className' + }, + HTML:false,//if true, entities are escaped ( <, >, \t, space and \n ) + indentChar:' ',//indentation unit + multiline:true //if true, items in a collection, are separated by a \n, else just a space. + }; + +})(); diff --git a/app/assets/javascripts/strophejs-1.0.1/tests/tests.js b/app/assets/javascripts/strophejs-1.0.1/tests/tests.js new file mode 100644 index 0000000..13045ec --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/tests/tests.js @@ -0,0 +1,163 @@ +$(document).ready(function () { + module("JIDs"); + + test("Normal JID", function () { + var jid = "darcy@pemberley.lit/library"; + equals(Strophe.getNodeFromJid(jid), "darcy", + "Node should be 'darcy'"); + equals(Strophe.getDomainFromJid(jid), "pemberley.lit", + "Domain should be 'pemberley.lit'"); + equals(Strophe.getResourceFromJid(jid), "library", + "Node should be 'library'"); + equals(Strophe.getBareJidFromJid(jid), + "darcy@pemberley.lit", + "Bare JID should be 'darcy@pemberley.lit'"); + }); + + test("Weird node (unescaped)", function () { + var jid = "darcy@netherfield.lit@pemberley.lit/library"; + equals(Strophe.getNodeFromJid(jid), "darcy", + "Node should be 'darcy'"); + equals(Strophe.getDomainFromJid(jid), + "netherfield.lit@pemberley.lit", + "Domain should be 'netherfield.lit@pemberley.lit'"); + equals(Strophe.getResourceFromJid(jid), "library", + "Resource should be 'library'"); + equals(Strophe.getBareJidFromJid(jid), + "darcy@netherfield.lit@pemberley.lit", + "Bare JID should be 'darcy@netherfield.lit@pemberley.lit'"); + }); + + test("Weird node (escaped)", function () { + var escapedNode = Strophe.escapeNode("darcy@netherfield.lit"); + var jid = escapedNode + "@pemberley.lit/library"; + equals(Strophe.getNodeFromJid(jid), "darcy\\40netherfield.lit", + "Node should be 'darcy\\40netherfield.lit'"); + equals(Strophe.getDomainFromJid(jid), + "pemberley.lit", + "Domain should be 'pemberley.lit'"); + equals(Strophe.getResourceFromJid(jid), "library", + "Resource should be 'library'"); + equals(Strophe.getBareJidFromJid(jid), + "darcy\\40netherfield.lit@pemberley.lit", + "Bare JID should be 'darcy\\40netherfield.lit@pemberley.lit'"); + }); + + test("Weird resource", function () { + var jid = "books@chat.pemberley.lit/darcy@pemberley.lit/library"; + equals(Strophe.getNodeFromJid(jid), "books", + "Node should be 'books'"); + equals(Strophe.getDomainFromJid(jid), "chat.pemberley.lit", + "Domain should be 'chat.pemberley.lit'"); + equals(Strophe.getResourceFromJid(jid), + "darcy@pemberley.lit/library", + "Resource should be 'darcy@pemberley.lit/library'"); + equals(Strophe.getBareJidFromJid(jid), + "books@chat.pemberley.lit", + "Bare JID should be 'books@chat.pemberley.lit'"); + }); + + module("Builder"); + + test("Correct namespace (#32)", function () { + var stanzas = [new Strophe.Builder("message", {foo: "asdf"}).tree(), + $build("iq", {}).tree(), + $pres().tree()]; + $.each(stanzas, function () { + equals($(this).attr('xmlns'), Strophe.NS.CLIENT, + "Namespace should be '" + Strophe.NS.CLIENT + "'"); + }); + }); + + test("send() accepts Builders (#27)", function () { + var stanza = $pres(); + var conn = new Strophe.Connection(""); + // fake connection callback to avoid errors + conn.connect_callback = function () {}; + + ok(conn._data.length === 0, "Output queue is clean"); + try { + conn.send(stanza); + } catch (e) {} + ok(conn._data.length === 1, "Output queue contains an element"); + }); + + test("send() does not accept strings", function () { + var stanza = ""; + var conn = new Strophe.Connection(""); + // fake connection callback to avoid errors + conn.connect_callback = function () {}; + expect(1); + try { + conn.send(stanza); + } catch (e) { + equals(e.name, "StropheError", "send() should throw exception"); + } + }); + + test("Builder with XML attribute escaping test", function () { + var text = ""; + var expected = ""; + var pres = $pres({to: text}); + equals(pres.toString(), expected, "< should be escaped"); + + text = "foo&bar"; + expected = ""; + pres = $pres({to: text}); + equals(pres.toString(), expected, "& should be escaped"); + }); + + module("XML"); + + test("XML escaping test", function () { + var text = "s & p"; + var textNode = Strophe.xmlTextNode(text); + equals(Strophe.getText(textNode), "s & p", "should be escaped"); + var text0 = "s < & > p"; + var textNode0 = Strophe.xmlTextNode(text0); + equals(Strophe.getText(textNode0), "s < & > p", "should be escaped"); + }); + + test("XML element creation", function () { + var elem = Strophe.xmlElement("message"); + equals(elem.tagName, "message", "Element name should be the same"); + }); + + module("Handler"); + + test("Full JID matching", function () { + var elem = $msg({from: 'darcy@pemberley.lit/library'}).tree(); + + var hand = new Strophe.Handler(null, null, null, null, null, + 'darcy@pemberley.lit/library'); + equals(hand.isMatch(elem), true, "Full JID should match"); + + hand = new Strophe.Handler(null, null, null, null, null, + 'darcy@pemberley.lit') + equals(hand.isMatch(elem), false, "Bare JID shouldn't match"); + }); + + test("Bare JID matching", function () { + var elem = $msg({from: 'darcy@pemberley.lit/library'}).tree(); + + var hand = new Strophe.Handler(null, null, null, null, null, + 'darcy@pemberley.lit/library', + {matchBare: true}); + equals(hand.isMatch(elem), true, "Full JID should match"); + + hand = new Strophe.Handler(null, null, null, null, null, + 'darcy@pemberley.lit', + {matchBare: true}); + equals(hand.isMatch(elem), true, "Bare JID should match"); + }); + + module("Misc"); + + test("Quoting strings", function () { + var input = '"beep \\40"'; + var conn = new Strophe.Connection(); + var output = conn._quote(input); + equals(output, "\"\\\"beep \\\\40\\\"\"", + "string should be quoted and escaped"); + }); +}); diff --git a/app/assets/javascripts/strophejs-1.0.1/tests/testsuite.css b/app/assets/javascripts/strophejs-1.0.1/tests/testsuite.css new file mode 100644 index 0000000..dbfc43a --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/tests/testsuite.css @@ -0,0 +1,120 @@ +body, div, h1 { font-family: 'trebuchet ms', verdana, arial; margin: 0; padding: 0 } +body {font-size: 10pt; } +h1 { padding: 15px; font-size: large; background-color: #06b; color: white; } +h1 a { color: white; } +h2 { padding: 10px; background-color: #eee; color: black; margin: 0; font-size: small; font-weight: normal } + +.pass { color: green; } +.fail { color: red; } +p.result { margin-left: 1em; } + +#banner { height: 2em; border-bottom: 1px solid white; } +h2.pass { background-color: green; } +h2.fail { background-color: red; } + +div.testrunner-toolbar { background: #eee; border-top: 1px solid black; padding: 10px; } + +ol#tests > li > strong { cursor:pointer; } + +div#fx-tests h4 { + background: red; +} + +div#fx-tests h4.pass { + background: green; +} + +div#fx-tests div.box { + background: red url(data/cow.jpg) no-repeat; + overflow: hidden; + border: 2px solid #000; +} + +div#fx-tests div.overflow { + overflow: visible; +} + +div.inline { + display: inline; +} + +div.autoheight { + height: auto; +} + +div.autowidth { + width: auto; +} + +div.autoopacity { + opacity: auto; +} + +div.largewidth { + width: 100px; +} + +div.largeheight { + height: 100px; +} + +div.largeopacity { + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100); +} + +div.medwidth { + width: 50px; +} + +div.medheight { + height: 50px; +} + +div.medopacity { + opacity: 0.5; + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50); +} + +div.nowidth { + width: 0px; +} + +div.noheight { + height: 0px; +} + +div.noopacity { + opacity: 0; + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0); +} + +div.hidden { + display: none; +} + +div#fx-tests div.widewidth { + background-repeat: repeat-x; +} + +div#fx-tests div.wideheight { + background-repeat: repeat-y; +} + +div#fx-tests div.widewidth.wideheight { + background-repeat: repeat; +} + +div#fx-tests div.noback { + background-image: none; +} + +div.chain, div.chain div { width: 100px; height: 20px; position: relative; float: left; } +div.chain div { position: absolute; top: 0px; left: 0px; } + +div.chain.test { background: red; } +div.chain.test div { background: green; } + +div.chain.out { background: green; } +div.chain.out div { background: red; display: none; } + +div#show-tests * { display: none; } diff --git a/app/assets/javascripts/strophejs-1.0.1/tests/yuitests.html b/app/assets/javascripts/strophejs-1.0.1/tests/yuitests.html new file mode 100644 index 0000000..478b1b4 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/tests/yuitests.html @@ -0,0 +1,20 @@ + + + + + + Strophe Tests + + + + + + + + + + + +
                    + + diff --git a/app/assets/javascripts/strophejs-1.0.1/tests/yuitests.js b/app/assets/javascripts/strophejs-1.0.1/tests/yuitests.js new file mode 100644 index 0000000..076d985 --- /dev/null +++ b/app/assets/javascripts/strophejs-1.0.1/tests/yuitests.js @@ -0,0 +1,26 @@ +YUI().use("test", "console", function (Y) { + Y.namespace("strophe.test"); + var Assert = Y.Assert; + + Y.strophe.test.JIDTestCase = new Y.Test.Case({ + name: "JIDs", + + testNormalJid: function () { + var jid = "darcy@pemberley.lit/library"; + + Assert.areSame("darcy", Strophe.getNodeFromJid(jid)); + Assert.areSame("pemberley.lit", Strophe.getDomainFromJid(jid)); + Assert.areSame("library", Strophe.getResourceFromJid(jid)); + Assert.areSame("darcy@pemberley.lit", + Strophe.getBareJidFromJid(jid)); + } + }); + + Y.strophe.test.StropheSuite = new Y.Test.Suite("Strophe Suite"); + Y.strophe.test.StropheSuite.add(Y.strophe.test.JIDTestCase); + + new Y.Console({newestOnTop: false}).render('#console'); + + Y.Test.Runner.add(Y.strophe.test.StropheSuite); + Y.Test.Runner.run(); +}); diff --git a/app/assets/javascripts/tasks.js b/app/assets/javascripts/tasks.js new file mode 100644 index 0000000..52f450b --- /dev/null +++ b/app/assets/javascripts/tasks.js @@ -0,0 +1,49 @@ +(function($) { + + $("input.task_accept_radio").click(function(){ + task_id = this.getAttribute("task_id"); + $('#on-accept-information-' + task_id).show('fast'); + $('#on-reject-information-' + task_id).hide('fast'); + $('#on-skip-information-' + task_id).hide('fast'); + }) + + $("input.task_reject_radio").click(function(){ + task_id = this.getAttribute("task_id"); + $('#on-accept-information-' + task_id).hide('fast'); + $('#on-reject-information-' + task_id).show('fast'); + $('#on-skip-information-' + task_id).hide('fast'); + }) + + $("input.task_skip_radio").click(function(){ + task_id = this.getAttribute("task_id"); + $('#on-accept-information-' + task_id).hide('fast'); + $('#on-reject-information-' + task_id).hide('fast'); + $('#on-skip-information-' + task_id).show('fast'); + }) + + // There is probably an elegant way to do this... + $('#up-set-all-tasks-to').selectedIndex = 0; + $('#down-set-all-tasks-to').selectedIndex = 0; + + $('#down-set-all-tasks-to').change(function(){ + value = $('#down-set-all-tasks-to').selected().val(); + up = $('#up-set-all-tasks-to') + up.attr('value', value).change(); + }) + + $('#up-set-all-tasks-to').change(function(){ + value = $('#up-set-all-tasks-to').selected().val(); + down = $('#down-set-all-tasks-to') + down.attr('value', value); + $('.task_'+value+'_radio').each( function(){ + if(!this.disabled){ + $(this).attr('checked', 'checked').click(); + } + }) + }) + + $('.task_title').css('margin-right', $('.task_decisions').width()+'px'); + $('.task_title').css('margin-left', $('.task_arrow').width()+'px'); + +})(jQuery) + diff --git a/app/assets/javascripts/thickbox.js b/app/assets/javascripts/thickbox.js new file mode 100644 index 0000000..411e233 --- /dev/null +++ b/app/assets/javascripts/thickbox.js @@ -0,0 +1,319 @@ +/* + * Thickbox 3.1 - One Box To Rule Them All. + * By Cody Lindley (http://www.codylindley.com) + * Copyright (c) 2007 cody lindley + * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php +*/ + +var tb_pathToImage = "/images/loading.gif"; + +/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/ + +//on page load call tb_init +jQuery(document).ready(function(){ + tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox + imgLoader = new Image();// preload image + imgLoader.src = tb_pathToImage; +}); + +//add thickbox to href & area elements that have a class of .thickbox +function tb_init(domChunk){ + jQuery(domChunk).click(function(){ + var t = this.title || this.name || null; + var a = this.href || this.alt; + var g = this.rel || false; + tb_show(t,a,g); + this.blur(); + return false; + }); +} + +function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link + + try { + if (typeof document.body.style.maxHeight === "undefined") {//if IE 6 + jQuery("body","html").css({height: "100%", width: "100%"}); + jQuery("html").css("overflow","hidden"); + if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6 + jQuery("body").append("
                    "); + jQuery("#TB_overlay").click(tb_remove); + } + }else{//all others + if(document.getElementById("TB_overlay") === null){ + jQuery("body").append("
                    "); + jQuery("#TB_overlay").click(tb_remove); + } + } + + if(tb_detectMacXFF()){ + jQuery("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash + }else{ + jQuery("#TB_overlay").addClass("TB_overlayBG");//use background and opacity + } + + if(caption===null){caption="";} + jQuery("body").append("
                    ");//add loader to the page + jQuery('#TB_load').show();//show loader + + var baseURL; + if(url.indexOf("?")!==-1){ //ff there is a query string involved + baseURL = url.substr(0, url.indexOf("?")); + }else{ + baseURL = url; + } + + var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/; + var urlType = baseURL.toLowerCase().match(urlString); + + if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images + + TB_PrevCaption = ""; + TB_PrevURL = ""; + TB_PrevHTML = ""; + TB_NextCaption = ""; + TB_NextURL = ""; + TB_NextHTML = ""; + TB_imageCount = ""; + TB_FoundURL = false; + if(imageGroup){ + TB_TempArray = jQuery("a[@rel="+imageGroup+"]").get(); + for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) { + var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString); + if (!(TB_TempArray[TB_Counter].href == url)) { + if (TB_FoundURL) { + TB_NextCaption = TB_TempArray[TB_Counter].title; + TB_NextURL = TB_TempArray[TB_Counter].href; + TB_NextHTML = "  Next >"; + } else { + TB_PrevCaption = TB_TempArray[TB_Counter].title; + TB_PrevURL = TB_TempArray[TB_Counter].href; + TB_PrevHTML = "  < Prev"; + } + } else { + TB_FoundURL = true; + TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length); + } + } + } + + imgPreloader = new Image(); + imgPreloader.onload = function(){ + imgPreloader.onload = null; + + // Resizing large images - orginal by Christian Montoya edited by me. + var pagesize = tb_getPageSize(); + var x = pagesize[0] - 150; + var y = pagesize[1] - 150; + var imageWidth = imgPreloader.width; + var imageHeight = imgPreloader.height; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + } + } else if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + } + } + // End Resizing + + TB_WIDTH = imageWidth + 30; + TB_HEIGHT = imageHeight + 60; + jQuery("#TB_window").append(""+caption+"" + "
                    "+caption+"
                    " + TB_imageCount + TB_PrevHTML + TB_NextHTML + "
                    close or Esc Key
                    "); + + jQuery("#TB_closeWindowButton").click(tb_remove); + + if (!(TB_PrevHTML === "")) { + function goPrev(){ + if(jQuery(document).unbind("click",goPrev)){jQuery(document).unbind("click",goPrev);} + jQuery("#TB_window").remove(); + jQuery("body").append("
                    "); + tb_show(TB_PrevCaption, TB_PrevURL, imageGroup); + return false; + } + jQuery("#TB_prev").click(goPrev); + } + + if (!(TB_NextHTML === "")) { + function goNext(){ + jQuery("#TB_window").remove(); + jQuery("body").append("
                    "); + tb_show(TB_NextCaption, TB_NextURL, imageGroup); + return false; + } + jQuery("#TB_next").click(goNext); + + } + + document.onkeydown = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } else if(keycode == 190){ // display previous image + if(!(TB_NextHTML == "")){ + document.onkeydown = ""; + goNext(); + } + } else if(keycode == 188){ // display next image + if(!(TB_PrevHTML == "")){ + document.onkeydown = ""; + goPrev(); + } + } + }; + + tb_position(); + jQuery("#TB_load").remove(); + jQuery("#TB_ImageOff").click(tb_remove); + jQuery("#TB_window").css({display:"block"}); //for safari using css instead of show + }; + + imgPreloader.src = url; + }else{//code to show html + + var queryString = url.replace(/^[^\?]+\??/,''); + var params = tb_parseQuery( queryString ); + + TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL + TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL + ajaxContentW = TB_WIDTH - 30; + ajaxContentH = TB_HEIGHT - 45; + + if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window + urlNoQuery = url.split('TB_'); + jQuery("#TB_iframeContent").remove(); + if(params['modal'] != "true"){//iframe no modal + jQuery("#TB_window").append("
                    "+caption+"
                    close or Esc Key
                    "); + }else{//iframe modal + jQuery("#TB_overlay").unbind(); + jQuery("#TB_window").append(""); + } + }else{// not an iframe, ajax + if(jQuery("#TB_window").css("display") != "block"){ + if(params['modal'] != "true"){//ajax no modal + jQuery("#TB_window").append("
                    "+caption+"
                    close or Esc Key
                    "); + }else{//ajax modal + jQuery("#TB_overlay").unbind(); + jQuery("#TB_window").append("
                    "); + } + }else{//this means the window is already up, we are just loading new content via ajax + jQuery("#TB_ajaxContent")[0].style.width = ajaxContentW +"px"; + jQuery("#TB_ajaxContent")[0].style.height = ajaxContentH +"px"; + jQuery("#TB_ajaxContent")[0].scrollTop = 0; + jQuery("#TB_ajaxWindowTitle").html(caption); + } + } + + jQuery("#TB_closeWindowButton").click(tb_remove); + + if(url.indexOf('TB_inline') != -1){ + jQuery("#TB_ajaxContent").append(jQuery('#' + params['inlineId']).children()); + jQuery("#TB_window").unload(function () { + jQuery('#' + params['inlineId']).append( jQuery("#TB_ajaxContent").children() ); // move elements back when you're finished + }); + tb_position(); + jQuery("#TB_load").remove(); + jQuery("#TB_window").css({display:"block"}); + }else if(url.indexOf('TB_iframe') != -1){ + tb_position(); + if(jQuery.browser.safari){//safari needs help because it will not fire iframe onload + jQuery("#TB_load").remove(); + jQuery("#TB_window").css({display:"block"}); + } + }else{ + jQuery("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method + tb_position(); + jQuery("#TB_load").remove(); + tb_init("#TB_ajaxContent a.thickbox"); + jQuery("#TB_window").css({display:"block"}); + }); + } + + } + + if(!params['modal']){ + document.onkeyup = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } + }; + } + + } catch(e) { + //nothing here + } +} + +//helper functions below +function tb_showIframe(){ + jQuery("#TB_load").remove(); + jQuery("#TB_window").css({display:"block"}); +} + +function tb_remove() { + jQuery("#TB_imageOff").unbind("click"); + jQuery("#TB_closeWindowButton").unbind("click"); + jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();}); + jQuery("#TB_load").remove(); + if (typeof document.body.style.maxHeight == "undefined") {//if IE 6 + jQuery("body","html").css({height: "auto", width: "auto"}); + jQuery("html").css("overflow",""); + } + document.onkeydown = ""; + document.onkeyup = ""; + return false; +} + +function tb_position() { +jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'}); + if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6 + jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'}); + } +} + +function tb_parseQuery ( query ) { + var Params = {}; + if ( ! query ) {return Params;}// return empty object + var Pairs = query.split(/[;&]/); + for ( var i = 0; i < Pairs.length; i++ ) { + var KeyVal = Pairs[i].split('='); + if ( ! KeyVal || KeyVal.length != 2 ) {continue;} + var key = unescape( KeyVal[0] ); + var val = unescape( KeyVal[1] ); + val = val.replace(/\+/g, ' '); + Params[key] = val; + } + return Params; +} + +function tb_getPageSize(){ + var de = document.documentElement; + var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; + var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; + arrayPageSize = [w,h]; + return arrayPageSize; +} + +function tb_detectMacXFF() { + var userAgent = navigator.userAgent.toLowerCase(); + if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) { + return true; + } +} + + diff --git a/app/assets/javascripts/tinymce/changelog.txt b/app/assets/javascripts/tinymce/changelog.txt new file mode 100644 index 0000000..a7c6bb6 --- /dev/null +++ b/app/assets/javascripts/tinymce/changelog.txt @@ -0,0 +1,1303 @@ +Version 3.4.2 (2011-04-07) + Added new 'paste_text_sticky_default' option to paste plugin, enables you to set the default state for paste as plain text. + Added new autoresize_bottom_margin option to autoresize plugin that enables you to add an extra margin at the bottom. Patch contributed by Andrew Ozz. + Rewritten the fullpage plugin to handle style contents better and have a more normalized behavior across browsers. + Fixed bug where contents inserted with mceInsertContent wasn't parsed using the default dom parser. + Fixed bug where blocks containing a single anchor element would be treated as empty. + Fixed bug where merging of table cells on IE 6, 7 wouldn't look correctly until the contents was refreshed. + Fixed bug where context menu wouldn't work properly on Safari since it was passing out the ctrl key as pressed. + Fixed bug where image border color/style values were overwritten by advimage plugin. + Fixed bug where setting border in advimage plugin would throw error in IE. + Fixed bug where empty anchors list in link settings wasn't hidden. + Fixed bug where xhtmlextras popups were missing localized popup-size parameters. + Fixed bug where the context menu wouldn't select images on WebKit browsers. + Fixed bug where paste plugin wouldn't properly extract the contents on WebKit due to recent changes in browser behavior. + Fixed bug where focus of the editor would get on control contents on IE lost due to a bug in the ColorSplitButton control. + Fixed bug where contextmenu wasn't disabled on noneditable elements. + Fixed bug where getStyle function would trigger error when called on element without style property. + Fixed bug where editor fail to load if Javascript Compressor was used. + Fixed bug where list-style-type=lower-greek would produce errors in IE<8. + Fixed bug where spellchecker plugin would produce errors on IE6-7. + Fixed bug where theme_advanced_containers configuration option causes error. + Fixed bug where the mceReplaceContent command would produce an error since it didn't correctly handle a return value. + Fixed bug where you couldn't enter float point values for em in dialog input fields since it wouldn't be considered a valid size. + Fixed bug in xhtmlxtras plugin where it wasn't possible to remove some attributes in the attributes dialog. +Version 3.4.1 (2011-03-24) + Added significantly improved list handling via the new 'lists' plugin. + Added 'autolink' plugin to enable automatically linking URLs. Similar to the behavior IE has by default. + Added 'theme_advanced_show_current_color' setting to enable the forecolor and backcolor buttons to continuously show the current text color. + Added 'contextmenu_never_use_native' setting to disable the ctrl-right-click showing the native browser context menu behaviour. + Added 'paste_enable_default_filters' setting to enable the default paste filters to be disabled. + Fixed bug where selection locations on undo/redo didn't work correctly on specific contents. + Fixed bug where an exception would be trown on IE when loading TinyMCE inside an iframe. + Fixed bug where some ascii numeric entities wasn't properly decoded. + Fixed bug where some non western language codes wasn't properly decoded/encoded. + Fixed bug where undo levels wasn't created when deleting contents on IE. + Fixed bug where the initial undo levels bookmark wasn't updated correctly. + Fixed bug where search/replace wouldn't be scoped to editor instances on IE8. + Fixed bug where IE9 would produce two br elements after block elements when pasting. + Fixed bug where IE would place the caret at an incorrect position after a paste operation. + Fixed bug where a paste operation using the keyboard would add an extra undo level. + Fixed bug where some attributes/elements wasn't correctly filtered when invalid contents was inserted. + Fixed bug where the table plugin couldn't correctly handle invalid table structures. + Fixed bug where charset and title of the page were handled incorrectly by the fullpage plugin. + Fixed bug where toggle states on some of the list boxes didn't update correctly. + Fixed bug where sub/sub wouldn't work correctly when done as a caret action in Chrome 10. + Fixed bug where the constrain proportions checkbox wouldn't work in the media plugin. + Fixed bug where block elements containing trailing br elements wouldn't treated properly if they where invalid. + Fixed bug where the color picker dialog wouldn't be rendered correctly when using the o2k7 theme. + Fixed bug where setting border=0 using advimage plugin invalid style attribute content was created in Chrome. + Fixed bug with references to non-existing images in css of fullpage plugin. + Fixed bug where item could be unselected in spellchecker's language selector. + Fixed bug where some mispelled words could be not highlighted using spellchecker plugin. + Fixed bug where spellchecking would merge some words on IE. + Fixed bug where spellchecker context menu was not always positioned correctly. + Fixed bug with empty anchors list in advlink popup when Invisible Elements feature was disabled. + Fixed bug where older IE versions wouldn't properly handle some elements if they where placed at the top of editor contents. + Fixed bug where selecting the whole table would enable table tools for cells and rows. + Fixed bug where it wasn't possible to replace selected contents on IE when pasting using the paste plugin. + Fixed bug where setting text color in fullpage plugin doesn't work. + Fixed bug where the state of checkboxes in media plugin wouldn't be set correctly. + Fixed bug where black spade suit character was not included in special character selector. + Fixed bug where setting invalid values for table cell size would throw an error in IE. + Fixed bug where spellchecking would remove whitespace characters from PRE block in IE. + Fixed bug where HR was inserted inside P elements instead of splitting them. + Fixed bug where extra, empty span tags were added when using a format with both selector and inline modes. + Fixed bug where bullet lists weren't always detected correctly. + Fixed bug where deleting some paragraphs on IE would cause an exception. + Fixed bug where the json encoder logic wouldn't properly encode \ characters. + Fixed bug where the onChange event would be fired when the editor was first initialized. + Fixed bug where mceSelected wouldn't be removed properly from output even if it's an internal class. + Fixed issue with table background colors not being transparent. This improves compliance with users browser color preferences. + Fixed issue where styles were not included when using the full page plugin. + Fixed issue where drag/drop operations wasn't properly added to the undo levels. + Fixed issue where colors wasn't correctly applied to elements with underline decoration. + Fixed issue where deleting some paragraphs on IE would cause an exception. +Version 3.4 (2011-03-10) + Added accessibility example with various accessibility options contributed by Ephox. + Fixed bug where attributes wasn't properly handled in the xhtmlxtras plugin. + Fixed bug where the image.htm had some strange td artifacts probably due to auto merging. + Fixed bug where the ToolbarGroup had an missing reference to this in it's destroy method. + Fixed bug with the resizeBy function in the advanced theme where it was scaled by the wrong parent. + Fixed bug where an exception would be thrown by the element if the page was served in xhtml mode. + Fixed bug where mceInsertContent would throw an exception when page was served in xhtml mode. + Fixed bug where you couldn't select a forground/background color when page was served in xhtml mode. + Fixed bug where the editor would scroll to the toolbar when clicked due to a call to focus in ListBox. + Fixed bug where pages with rtl dir wouldn't render split buttons correctly when using the o2k7 theme. + Fixed bug where anchor elements with names wasn't properly collapsed as they where in 3.3.x. + Fixed bug where WebKit wouldn't properly handle image selection if it was done left to right. + Fixed bug where the formatter would align images when the selection range was collapsed. + Fixed bug where the image button would be active when the selection range was collapsed. + Fixed bug where the element_format option wasn't used by the new (X)HTML serializer logic. + Fixed bug where the table cell/row dialogs would produce empty attributes. + Fixed bug where the tfoot wouldn't be added to the top of the table. + Fixed bug where the formatter would merge siblings with white space between them. + Fixed bug where pasting headers and paragraphs would produce an extra paragraph. + Fixed bug where the ColorSplitButton would throw an exception if you clicked out side a color. + Fixed bug where IE9 wouldn't properly produce new paragraphs on enter if the current paragraph had formatting. + Fixed bug where multiple BR elements at end of block elements where removed. + Fixed bug where fullscreen plugin wouldn't correctly display the edit area on IE6 for long pages. + Fixed bug where paste plugin wouldn't properly encode raw entities when pasting in plain text mode. + Fixed bug where the search/replace plugin wouldn't work correctly on IE 9. + Fixed so the drop menus doesn't get an outline border visible when focused, patch contributed by Ephox. + Fixed so the values entered in the color picker are forced to hex values. + Removed dialog workaround for IE 9 beta since the RC is now out and people should upgrade. + Removed obsolete calls in various plugins to the mceBeginUndoLevel command. +Version 3.4b3 (2011-02-10) + Added WAI-ARIA support for the main UI and dialogs this feature was contributed by Ephox. + Added iframe support to media plugin in order to handle the new YouTube HTML5 video formats. + Fixed bug where anchors would wrap the text contents after it due to a bug in the DomParser logic. + Fixed bug where the selected state wouldn't be removed on ListBox controls when a menu item was selected. + Fixed bug where IE could throw an unspecified error exception when the getBookmark logic was executed. + Fixed bug where IE would throw an invalid argument error when focus was applied to an empty editor instance. + Fixed bug where applying inline format wouldn't work if the start cell in the selection was empty. + Fixed bug where auto detection logic for YouTube and Google Video wouldn't work in the new media plugin. + Fixed bug where td elements would get a colspan/rowspan of 1 when created by the table plugin. + Fixed bug where removal/padding of empty elements wasn't handled correctly. + Fixed bug where internal elements would show up in element path. + Fixed bug where internal elements would get serialized as valid output. + Fixed bug where color wasn't correctly applied to anchor elements. + Fixed bug where float option in the style plugin dialog wouldn't be handled correctly on WebKit. + Fixed bug where the tinymce.dom.TreeWalker prev function wouldn't walk the DOM correctly. + Fixed bug where mceInsertContent command could produce empty block elements after the inserted content. + Fixed bug where mceInsertContent command wouldn't apply visual aids on tables and similar elements. + Fixed bug where empty block elements would get double br bogus elements in them. + Fixed bug where the color menu wouldn't apply the color correctly on IE when the viewport was to small. + Fixed bug where right clicking out side the body element of the editor iframe would prevent paste from working on IE. + Fixed bug where the onContextMenu event wouldn't fire correctly on IE if you clicked out side the body element. + Fixed bug where the onContextMenu event wouldn't fire correctly on modern Opera versions that now support it by default. + Fixed bug where legacy content wasn't converted correctly when inserted using mceInsertContent or through the source dialog. + Fixed bug where resizing images or tables wouldn't update the style attribute correctly or leave data-mce prefixed attributes. + Fixed bug where adding links wouldn't work correctly when using TinyMCE jQuery version with jQuery 1.5. + Fixed bug where single quotes inside param elements wasn't treated correctly by the media plugin. + Fixed bug where pasting plain text in WebKit wouldn't work correctly. It will now auto detect the WebKit bug and use plain text mode. + Fixed bug where the DomParser would fail to move out invalid elements within invalid elements on complex contents. + Fixed bug where paste as plain text would not decode html entities properly. + Fixed bug where large paragraphs would cause incorrect scrolling behavior if you would split them using enter. + Fixed bug where the SaxParser wouldn't properly parse some specific short ended elements. + Fixed so mceReplaceContent supports caret position and makes sure that the contents inserted gets validated. + Fixed so unnecessary traling br elements in blocks gets removed on Gecko/WebKit when using mceInsertContent command. + Moved some plugin css contents into the skin content css files to reduce the number of http requests. + Moved some plugin specific images into the theme img directory since they can then be shared. +Version 3.4b2 (2011-01-13) + Added new custom flash player, this player supports mp4 and flv and has skin support. + Fixed so mceInsertContent handles context correctly to enforce valid nesting of elements. + Fixed bug where scrolling would become jerky on IE on some contents. + Fixed bug where paste as plain text would throw exception of missing entities setting. + Fixed bug where anchor nodes where removed by the new serializer engine. + Fixed bug where IE would crash if when backspace where used on some specific contents. + Fixed bug where pasting of plain text in WebKit would result in merging of text lines. + Fixed bug where it wasn't possible to delete images or tables using backspace on IE9. + Fixed bug where urls in styles would generate a JS error due to incorrect scope. + Fixed bug where copy paste from Java applications would produce extra contents in FF on Mac. + Fixed bug where the verify_html option wouldn't allow all elements and attributes. +Version 3.4b1 (2010-12-20) + Added new serialization engine that increases performance and enforces valid output according to the specified schema settings. + Added new HTML parser logic used by the serialization engine and can handle malformed html contents. + Added new valid_children config option, enables more fine grain control of elements can be inside other elements. + Added new entities encoding logic boost performance and will only encode entities based on context i.e. attributes/text nodes. + Added new protect setting that enables users to protect template items from being removed by the serializer logic. + Added new {$caret} marker for the mceInsertContent command. Makes it possible to move the caret to a specific position when inserting contents. + Added new validation of anchor names. Only valid W3C names will be accepted. + Replaced the internal _mce_ prefixed attributes to the more standard HTML5 data-mce- prefix. This will also resolve future browser santiaztion issues. + Fixed bug where the paste plugin wouldn't convert Word lists with more than 9 items to real ol lists. Patch contributed by Mike (yogaboy). + Fixed bug where clicking on a format title would produce errors if the current selection didn't have any formats. + Fixed bug where paste of simple texts wouldn't work correctly in Gecko using the paste plugin since it keeps block formatting. + Fixed bug where confirm dialogs didn't display correctly due to resent IE9 fixes. + Fixed bug where spaces in URLs wouldn't be properly encoded to %20 if the user entered them in the link dialogs. Patch contributed by Ephox. + Fixed bug where the image alignment buttons wouldn't reposition the resize handles on FF due to a browser issue. Patch contributed by Ephox. + Fixed bug where the compareBoundaryPoints method of the IE Range class didn't work correctly. Patch contributed by Ephox. + Fixed bug where selection of elements using double click wouldn't select the clicked element but rather the parent node on FF. Patch contributed by Ephox. + Fixed bug where IE would scroll the user to the current selection causing parent document to scroll as well. Patch contributed by Ephox. + Fixed bug where style compression would incorrectly compress items with different values. It now only compresses if the values are the same. Patch contributed by Ephox. + Fixed bug where FF would add non breaking spaces outside TD elements if formatting was applied to table cells. Patch contributed by Ephox. + Fixed bug where the caret position would be lost on WebKit browsers if you pasted images multiple times. Patch contributed by Ephox. + Fixed bug where non word contents like * would be counted as words in the wordcount pluging. Patch contributed by David Balatero. + Fixed bug where the toggle absolute button in the layer plugin wouldn't remove the existing internal style attribute first. + Fixed bug where the autosave plugin would generate an exception on IE if the user had disabled userdata persistence. + Fixed bug where the paste plugin would remove dashed classes on IE since the regexps didn't include that character. + Fixed bug where applying text color would not add spans inside link elements. This is needed due to CSS style inheritance. + Fixed bug where applying block formats to empty elements wouldn't render correctly on IE. + Fixed bug where the searchreplace plugin would add a f or r character when shortcuts where used on IE while using default dialogs. + Fixed bug where Opera wouldn't load scripts correctly since the onreadystate would fire even though the script wasn't loaded. + Fixed issue where   wouldn't be handled correctly in the bbcode plugin if entity_encoding was set to raw. + Fixed issue where contents would flicker since the content css files where asynchronously loaded. + Fixed bug where WebKit wouldn't create links on images with a float style. +Version 3.3.9.3 (2010-12-20) + Fixed issue where WebKit wouldn't correctly apply ins/del in xhtmlxtras plugin. + Fixed bug where paste as plaintext on WebKit wouldn't produce br and p elements correctly. + Fixed bug where the confirm dialog texts would be incorrectly placed due to recent IE 9 workarounds in the window.css. + Fixed bug where applying text color would not add spans inside link elements. This is needed due to CSS style inheritance. +Version 3.3.9.2 (2010-09-29) + Fixed bug where placing the caret in IE 9 beta 1 would not work correctly if you clicked out side the document body element. + Fixed bug where IE 9 beta 1 wouldn't resize the editor correctly since the events didn't fire as previous versions did. + Fixed bug where FF would produce an error message when being rendered inside a hidden div element. + Fixed bug where resize logic could produce a cookie with a width/height less than the size of the container. + Fixed bug where content_css wouldn't populate the styles dropdown correctly. +Version 3.3.9.1 (2010-09-23) + Fixed bug where WebKit browsers wouldn't activate the image button when images where selected. + Fixed bug where Opera Presto 10.60 deletes elements when restoring bookmarks. + Fixed bug where IE9 beta1 doesn't handle regexp replacement values correctly. + Fixed bug where IE9 beta1 didn't render the inline dialogs correctly due to a bug with CSS clip. + Fixed bug where IE9 beta1 would produce error messages on load since they removed the document.recalc method. + Fixed bug where IE9 beta1 would produce since they haven't implemented document.implementation.createDocument correctly. + Fixed bug where IE9 beta1 would searchreplace doesn't work since their native DOM Range doesn't have a find method. + Fixed bug where IE9 beta1 would render the source view incorrectly due to incorrect viewport size measurements. + Fixed bug where IE9 beta1 would crash when running the basic functionality unit tests. + Fixed bug where IE9 beta1 would wrap elements in blocks correctly due to changes to the selection object. + Fixed bug where IE9 beta1 would fail to insert contents since they havn't implemented the createContextualFragment method in their DOM Range. + Fixed bug where IE9 beta1 would fail to handle image selection since they currently doesn't support control selections in their DOM Range. + Fixed bug where IE9 beta1 would fail to load scripts since they fire the onload event before the scripts are parsed and executed. +Version 3.3.9 (2010-09-08) + Fixed bug where inserting table rows into a table with subtable would produce an incorrect column count. + Fixed bug where the selection of cells in a table with subtables could produce invalid selections. + Fixed bug where the table plugin would produce a script error if you tried to move the caret before a first child table. + Fixed bug where the keep_styles feature on IE would move the caret to an incorrect location at the end of list blocks. + Fixed so attributes from legacy elements such as font gets retained when they get converted to spans. + Fixed minor issue where the select boxes wouldn't be set the not set by default in the table dialog. +Version 3.3.8 (2010-06-30) + On IE8+ and FireFox 3.5+, dragging an image now correctly adds an undo + event. + Fixed bug where WebKit would not move the caret to a correct position after a paste operation. + Fixed bug where WebKit would produce a div wrapper element when pasting some contents. + Fixed bug where the visual chars and nonbreaking plugin wouldn't show nbsp elements correctly. + Fixed bug where the format states would be enabled even after the format was removed. + Fixed bug where the delete key would move the caret to an incorrect position. + Fixed bug where it wasn't possible to toggle of the current font size/family/style by clicking the title item. + Fixed bug where the abbr element wouldn't get serialized correctly on IE6. + Fixed so that the examples checks if they are executed from the local file system since that might not work properly. +Version 3.3.7 (2010-06-10) + Fixed bug where context menu would produce an error on IE if you right clicked twice and left clicked once. + Fixed bug where resizing of the window on WebKit browsers in fullscreen mode wouldn't position the statusbar correctly. + Fixed bug where IE would produce an error if the editor was empty and you where undoing to that initial level. + Fixed bug where setting the table background on gecko would produce \" entities inside the url style property. + Fixed bug where the button states wouldn't be updated correctly on IE if you placed the caret inside the new element. + Fixed bug where undo levels wasn't properly added after applying styles or font sizes. + Fixed bug where IE would throw an error if you used "select all" on empty elements and applied formatting to that. + Fixed bug where IE could select one extra character when you did a bookmark call on a caret location. + Fixed bug where IE could produce a script error on delete since it would sometimes produce an invalid DOM. + Fixed bug where IE would return the wrong start element if the whole element was selected. + Fixed bug where formatting states wasn't updated on IE if you pressed enter at the end of a block with formatting. + Fixed bug where submenus for the context menu wasn't removed correctly when the editor was destroyed. + Fixed bug where Gecko could select the wrong element after applying format to multiple elements. + Fixed bug where Gecko would delete parts of the previous element if the selection range was a element selection. + Fixed bug where Gecko would not merge paragraph elements correctly if they contained br elements. + Fixed bug where the cleanup button could produce span artifacts if you pressed it twice in a row. + Fixed bug where the fullpage plugin header/footer would be have it's header reseted to it's initial state on undo. + Fixed bug where an empty paragraph would be collapsed if you performed a cleanup while having the caret inside it. + Fixed a few memory leaks on IE especially with drop menus in listboxes and the spellchecker. + Fixed so formats applied to the current caret gets merged to reduce the number of output elements. + Added the latest version of Sizzle for the CSS selector logic to fix a compatibility issue with prototype. +Version 3.3.6 (2010-05-20) + Fixed bug where a editor.focus call could produce errors on IE in very specific scenarios. + Fixed bug where Gecko would produce an error if you unformatted text inside an empty element. + Fixed bug where IE would produce an error if the caret was placed before a table and you used the align buttons. + Fixed bug where the font size drop down didn't display the a preview correctly. + Fixed bug where the paste plugin wouldn't include all contents some times on WebKit browsers. + Fixed bug where the plain text mode toggle wouldn't work properly on WebKit. + Fixed bug where the editors statusbar would become invisible when you resized the window in fullscreen mode. +Version 3.3.5.1 (2010-05-07) + Fixed a critical bug with the fullscreen plugin. Produced error messages when the state was toggled on/off. +Version 3.3.5 (2010-05-06) + Added new merge_with_parents option to formats, enables the control of removal of elements with similar parents. + Fixed so the default behavior for applying classes isn't a toggle state but the old behavior from before the 3.3 release. + Fixed bug where selecting contents using double click on Gecko would produce errors when using removing format. + Fixed bug where the IE DOM could get messed up when non valid contents was pasted into the editor. + Fixed bug where merging selected table cells using the context menu didn't work as expected. + Fixed bug where some nestled formatting would be applied incorrectly. + Fixed bug with enter in list items when using the force_br_newlines mode on WebKit patch contributed by Ryan Koopmans. + Fixed bug where undo/redo could produce js errors on some specific operations. + Fixed bug where the theme_advanced_font_sizes didn't work as before 3.3 when complex settings where used. + Fixed bug where the table plugin would copy cell/row id attributes when making new rows/cells. +Version 3.3.4 (2010-04-27) + Fixed bug where fullscreen plugin would add two editor instances to EditorManager collection. + Fixed bug where it was difficult to enter text on non western languages such as Japanese on IE. + Fixed bug where removing contents from nodes could result in an exception when using undo/redo. + Fixed bug with selection of images inside layers or other resizable containers on IE. + Fixed so editors isn't initialized on iPhone/iPad devices since they don't have caret support. +Version 3.3.3 (2010-04-19) + Added new script_loaded callback function setting for the jQuery plugin. + Added various fixes and new rpc methods for the spellchecker plugin. Patch contributed by Michael Peters. + Removed some unnecessary inline style information from some of the dialogs. + Fixed some issues with the chaining for the TinyMCE jQuery plugin. + Fixed so any extra arguments passed to patched jQuery functions gets passed through. Patch contributed by Lee Henson. + Fixed so spellchecking/contextmenu can be toggled on/off if the browser has native spellchecker support. + Fixed bug where some texts in the new paste plugin wasn't placed in language pack. + Fixed bug where IE would produce an incorrect information message when cutting. + Fixed bug where removing items using the xhtmlxtras plugin wouldn't work correctly. + Fixed bug where setting table background images would add extra quotes on Gecko. + Fixed bug where shortcut for bold/italic/underline wouldn't work properly on WebKit. + Fixed bug where IE would produce an error message if only contents was an image tag and bold was used. + Fixed bug where the caret would move if alignment was applied to empty block elements. + Fixed bug where some shortcut key commands wouldn't apply formatting correctly. +Version 3.3.2 (2010-03-25) + Fixed bug where it was possible to scale the editor iframe smaller than the editor UI. + Fixed bug where some of the resizing option didn't work with the new live resize. + Fixed bug where the format listbox didn't show nestled formats correctly. + Fixed bug where the native listboxes didn't work correctly. + Fixed bug where font size selection in using the legacyoutput plugin would produce errors. + Fixed so block and blockquote formats remove their matching element regardless of it's attributes. +Version 3.3.1 (2010-03-18) + Added new live resize feature, the editor contents is now visible while resizing. + Fixed bug where some valid_element patterns would produce an unknown property error. + Fixed bug where it wasn't possible to toggle off blockquotes. + Fixed bug where an undo level wasn't produced when applying formatting using the styles dropdown. + Fixed bug where IE 6/7 wouldn't perform caret formatting due to a focus/event bug in IE. + Fixed bug where undo/redo wasn't restoring the previous selection correctly. + Fixed bug where the caret would become invisible if you resized the editor in latest Gecko. + Fixed bug where the class attribute wasn't completely removed in IE 6/7 when the removeClass function was used. + Fixed so the matchNode method of the Formatter class returns the matched format rule. + Fixed so it's possible to apply formatting to both blocks and as inline elements. +Version 3.3 (2010-03-10) + Fixed bug where backspace on a table on IE would produce an empty tbody and some JS exceptions. + Fixed bug where some redundant children wasn't removed properly when applying inline styles to them. + Fixed bug where Chrome would produce incorect dialog sizes if the inlinepopups plugin wasn't used. + Fixed bug where spans with different classes would get merged if they where siblings to each other. + Fixed bug where IE 8 would crash if you used the spellchecker. + Fixed bug where Input Method for non western languages didn't work correctly. + Fixed bug where the UI would render incorrectly in FF 3.6 on Mac due to a bug n their rendering engine. + Fixed bug where WebKit wouldn't scroll down correctly if Shift+Enter was used. Patch contributed by Thomas Andersen. +Version 3.3rc1 (2010-02-23) + Fixed bug with new legacyoutput plugin not working correctly on it's own. + Fixed bug some performance issues with removing text formats. + Fixed bug where TinyMCE specific attributes wasn't removed properly by remove format. + Fixed bug where it wasn't possible to align images within inline elements. + Fixed bug where Ctrl+Delete/Backspace would produce an invalid argument exception on IE. + Fixed bug where the search/replace logic could produce an infinite loop on IE for reverse searches. + Fixed bug where cloning formats in cells didn't work properly on IE. + Fixed bug where IE6 would produce a horizontal scroll bar. + Fixed so remove jQuery method removes the TinyMCE instance as well as the specified textarea. + Fixed so selected rows and cells gets updated using the row/cell properties dialogs. +Version 3.3b2 (2010-02-04) + Fixed bug where sometimes img elements would be removed by split method in DOMUtils. + Fixed bug where merging of span elements could occur on bookmark nodes. + Fixed bug where classes wasn't properly removed when removeformat was used on IE 6. + Fixed bug where multiple calls to an tinyMCE.init with mode set to exact could produce the same unique ID. + Fixed bug with the IE selection implementation when it was feeded an document range. + Fixed bug where block elements formatting wasn't properly removed by removeformat on all browsers. + Fixed bug where selection location was lost if you performed a manual cleanup. + Fixed bug where removeformat wouldn't remove span elements within styled block elements. + Fixed bug where an error would be thrown if you clicked on the separator lines in menus. + Fixed bug with the jQuery plugin adding always adding a querystring value to other resources. + Fixed bug where IE would produce an error message if you had an empty editor instance. + Fixed bug where Shift+Enter didn't produce br elements on WebKit browsers. + Fixed bug where a temporary marker element wasn't removed by the paste plugin. + Fixed bug where inserting a table would produce two undo levels instead of one. +Version 3.3b1 (2010-01-25) + Added new text formatting engine. Fixes a lot of browser quirks and adds new possibilities. + Added new advlist plugin that enables you to set the formats of list elements. + Added new paste plugin logic that enables you to retain style information from Office. + Added new autosave plugin logic that automatically saves contents in local storage. + Added new valid_styles option. Adds the possibility to restrict styles and their order. + Added new theme_advanced_runtime_fontsize option to display the runtime font size in font size select box. + Added new jquery plugin version that handles the gzip compressor amongst other things. Contributed by Speednet. + Added new $ function to tinymce namespace and editor instances for the jQuery build. + Added the possibility to get editors by index as well as name in the tinyMCE.editors collection. + Fixed so the contents inside the editor renders in standards mode by default. + Fixed bug where it wasn't possible to move the caret on short documents running in standards mode on IE. + Fixed bug where the decode method of the DOMUtils class could end up in an endless loop. + Fixed bug where it was possible to bypass the paste cleanup on non IE browsers if you clicked while pasting. + Fixed bug where some attributes wasn't serialized correctly on IE if wildcard attribute patters where used. + Fixed bug where entity decoding was performed on strings that didn't have any valid entities in them. + Fixed bugs with the insertNode method of the IE DOMRange implementation. Patch contributed by Scott McNaught. + Rewrote the getBookmark/moveToBookmark selection logic to boost performance on larger documents. + Rewrote the table plugin to include new cell selection logic and fixed various bugs and issues. + Merged the tinyMCE, tinymce and tinymce.EditorManager into the same instance makes more sense. + Removed browser setting since the browser support for TinyMCE is not far better than it was when that setting was introduced. + Changed the mce_ attribute prefix to the more standard _mce_ prefix. This is similar to browser vendors prefixes. + Optimized performance with named entities on Gecko. Regexp replace was executing very slowly probably due to a Gecko bug. + Optimized performance of the IE specific selection/range implementation. + Removed the safari plugin since we now replaced all text formatting logic to custom code. +Version 3.2.7 (2009-09-22) + Fixed bug where uppercase paragraphs could still produce an invalid DOM tree on IE. + Fixed bug where split command didn't work on WebKit since the node serializer needs a real document to work with. + Fixed bug where it was impossible in Gecko to place the caret before a table if it was the first one. + Fixed bug where linking to urls like ../../ would produce an extra traling slash ../..//. + Fixed bug where the template cdate functionality was using an old 2.x API call. Patch contributed by vectorjohn. + Fixed bug where urls to the same site but different protocol would be converted when relative_urls where set to false. Patch contributed by Ted Rust. + Fixed bug where the paste plugin would remove mceItem prefixed classes. + Fixed bug where the paste plugin would sometimes add items in a reverse order on WebKit. + Fixed bug where the paste buttons would present an error message on Gecko even if you changed user.js. Patch contributed by Todd (teeaykay). + Fixed bug where Opera would crash if you had tables incorrectly placed inside paragraphs. + Fixed bug where styles elements wasn't properly processed if you had bad input HTML. + Fixed bug where style attributes wasn't properly forced into a specific format. + Fixed bug and issues with boolean attributes like checked, nowrap etc. + Fixed bug where input elements could override attributes on form elements. + Fixed bug where script or style elements could get modified by the DOMUtils processHTML method. + Fixed bug where the selected attribute could get lost when force root blocks logic got executed on IE. Patch contributed by Attila Mezei-Horvati. + Fixed bug where getAttribs method didn't handle boolean attributes correctly on IE. + Fixed so the paste from word dialog is presented if you paste content on an IE with to restrictive security settings. + Fixed so the paste_strip_class_attributes option is set to none by default in the paste plugin. + Removed default border=0 on tables for the default value of valid_elements. +Version 3.2.6 (2009-08-19) + Added new wordcount plugin, this will display the number of typed words as you write. Contributed by Andrew Ozz. + Added new getNext and getPrev methods to DOM utils. These will return the first matching sibling. + Fixed bug where it was impossible to place the caret after a table on Gecko. It will now add a paragraph after tables. + Fixed bug where inline dialogs would fail if used in a window opened using a showModalDialog. Patch contributed by Derek Britt. + Fixed bug where IE could sometimes render a unknown runtime error on invalid input HTML. + Fixed bug where some incorrectly placed tables wouldn't be moved outside the paragraphs on IE. + Fixed bug where uppercase script/style element wouldn't be handled correctly and converted to valid lowercase. + Fixed bug where some WebKit versions on Mac OS X would produce issues with hidden select fields. + Fixed bug where the media plugin would fail on WebKit since the node wasn't properly imported to the right document. + Fixed bug where absolute URLs for the TinyMCE script using a base href element would cause loading problems in IE 6/7. + Fixed bug where pasting using the paste plugin wasn't possible on IE with to restrictive security settings. + Fixed bug where pasting of whitespace was impossible using the new custom paste method. + Fixed bug where pasting on some WebKit browsers would not work if you pasted specific contents due to a WebKit bug. + Fixed bug where doctypes with multiple lines would not be parsed correctly by the fullpage plugin. Patch contributed by Colin. + Fixed bug where the autoresize plugin would break the fullscreen functionality. + Fixed bug where tables would be chopped up running on IE using invalid contents and pasting paragraphs into a cell. + Fixed bug where the each method of jQuery build didn't iterate styleSheets. We now use the TinyMCE API one instead. + Fixed bug where auto switching to paragraphs after headers some times failed in Gecko. + Fixed so all editor options gets passed to the Serializer class. Patch contributed by Jasper Mattsson. + Fixed so script/style blocks isn't wrapped in paragraphs as other inline elements. + Fixed so the XHR requests sends the X-Requested-With HTTP header. + Fixed so the data url scheme is handled in the tinymce.util.URI class. + Changed inline documentation to use moxiedoc style comments. + Removed the compat2x plugin people should have upgraded to the 3.x API by now. 3.0 was released more then a year ago. + Re-added Gecko specific message for users who doesn't understand the security concept regarding paste. +Version 3.2.5 (2009-06-29) + Added new jQuery plugin for the jQuery specific package. This enables you to more easily load and use TinyMCE. + Added new autoresize plugin contributed by Peter Dekkers. This plugin will auto resize the editor to the size of the contents. + Fixed so all packages have the same directory structure. Previous releases had a different structure for the production package. + Fixed so the paste from word dialog forces the contents to be processed as word contents even if it's not. + Fixed so the jQuery build adapter build works. It's currently only excluding Sizzle. + Fixed so noscript element contents is retained during the editing process. + Fixed bug where the getBookmark method would need a "simple" string input when the documented way is a boolean. + Fixed bug where invalid contents could break the fix_table_elements logic. + Fixed bug where Sizzle specific attributes would be serialized if the valid_elements was set to *[*]. + Fixed bug where IE would produce an error if you specified a relative content_css and opened the paste dialog. + Fixed bug where pasting images on IE would produce broken images if they came from an external site. + Fixed bug where memory was leaked if you add/remove controls dynamically. Some event handlers wasn't removed properly. + Fixed bug where domain relaxing wasn't treated correctly if you added it after the TinyMCE script element. + Fixed bug where the activeEditor wasn't set to null if the last editor instance was removed. + Fixed bug where IE was leaking memory on the onbeforeunload event due to some recently introduced logic. Patch contributed by Options. + Fixed bug where inserting tables in Safari 4 didn't work due to a new WebKit bug where some element names are reserved. + Fixed bug where URLs having a :// value in the query string would make it absolute regardless of URL settings. + Fixed the WebKit specific bug where DOM Ranges would fail if the node wasn't attached to something in a different way. + Removed the auto_resize option and the resizeToContent method from the tinymce.Editor class. Use the new autoresize plugin instead. +Version 3.2.4.1 (2009-05-25) + Fixed bug where Gecko browsers would produce an extra space after for example strong when loaded from sub domains. + Fixed bug where script elements would be removed if they where placed inside a paragraph element. + Fixed bug where IE 8 would produce 1 item remaining when loading CSS files dynamically with an empty cache. + Fixed bug where bound events would be removed from other editor instances if a specific one was removed. + Fixed various bugs and issues with script and style elements inside the editor. + Fixed so all script contents gets wrapped in CDATA sections so that they can be parsed using a XML parser. + Fixed so it's impossible for elements marked as closed to have child nodes rendered in output. +Version 3.2.4 (2009-05-21) + Added new paste_remove_styles/paste_remove_styles_if_webkit option to paste plugin concept contributed by Hadrien Gardeur. + Added new functionality to paste plugin contributed by Scott Eade aka monkeybrain. + Added new paste_block_drop option to the paste plugin this is disabled by default and will block any drag/drop event. + Added new bind/unbind methods to DOMUtils these works like Event.add/Event.remove but is easier to access. + Added new paste_dialog_width/paste_dialog_height options to paste pluign. Enables you to change the dialog sizes. + Fixed bug on IE 8 where it would sometimes produce a "1 item remaining" status message that would never finish. + Fixed bug on Safari 4 beta that would produce DOM Range exceptions on the DOMUtils split method since the browser has a bug. + Fixed bug where the paste plugin could accidentally think that some word sentences was supposed to be list elements. + Fixed bug where paste plugin would produce one extra empty undo level on some browsers. + Fixed bug where spans wasn't produced correctly on new line when the keep_styles option was enabled. + Fixed bug where the caret would be placed at the beginning of contents in IE 8 if you selected colors from the color pickers. + Fixed so the Event class is a normal class instead of a static one. The tinymce.dom.Event is now a global instance of that class. + Fixed so internal events for instances gets removed when the DOMUtils instance is removed. + Fixed so preventDefault and stopPropagation methods can be used on the event object in all browsers. +Version 3.2.3.1 (2009-05-05) + Fixed bug where paragraphs containing form elements such as input or textarea would be removed. + Fixed bug where some IE versions would produce a wrapper function for events attributes. + Fixed bug where table cell contents could be removed if you pressed return/enter at the end of the cell contents. + Fixed bug where the paste plugin would remove a extra character if the selection range was collapsed. + Fixed bug where creating tables with % width wouldn't be handled correctly on WebKit browsers. +Version 3.2.3 (2009-04-23) + Added new paste plugin logic. This new version will autodetect Word contents and clean it up. + Added a optional root element argument to getPos so you can tell it where to stop the calculation. + Added new DOM ready logic to remove the usage of document.write. We now use basically the same method as jQuery. + Fixed bug where WebKit browsers would fail when selecting all contents in the area using Ctrl+A. + Fixed bug where IE would produce paragraphs with empty inline style elements. + Fixed bug where WebKit browsers would fail when inserting tables with a non pixel width. + Fixed bug where block elements could get a redundant br element at the end of the element. + Fixed bug where the tabfocus plugin only worked with a single editor instance on page. + Fixed bug where IE 8 was loosing caret position if the selection was collapsed and a menu was clicked. + Fixed bug with application/xhtml+xml mode where menus wasn't working properly. + Fixed bug where the onstop workaround fix for IE would produce errors in an ASP update panel. + Fixed bug where the submit function override could produce errors if executed in the wrong scope. + Fixed bug where the area element wasn't closed by a short ending. + Fixed various number issues in the style plugins properties dialog. Contributed by datpaulchen. + Fixed issues with size suffix values in the style plugin dialog. + Fixed issue where hasDuplicate variable would leak out to the global space due to a bug in the Sizzle engine. + Fixed issue where the paste event would fire a dialog warning on IE since we extracted the text contents. + Updated Sizzle engine to the latest version, this version fixes a few bugs that was reported. +Version 3.2.2.3 (2009-03-26) + Fixed regression bug with the getPos method, it would return invalid if the view port was to small. +Version 3.2.2.2 (2009-03-25) + Fixed so the DOMUtils getPos method can be used cross documents if needed. + Fixed bug where undo/redo wasn't working correctly in Gecko browsers. +Version 3.2.2.1 (2009-03-19) + Added support for tel: URL prefixes. Even though this doesn't match any official RFC. + Fixed so the select method of the Selection class selects the first best suitable contents. + Fixed bug where the regexps for www. prefixes for link and advlink dialogs would match wwwX. + Fixed bug where the preview dialog would fail to open if the content_css wasn't defined. Patch contributed by David Bildström (ChronoZ). + Fixed bug where editors wasn't converted in application/xhtml+xml mode due to an issue with Sizzle. + Fixed bug where alignment would fail if multiple lines where selected. + Updated Sizzle engine to the latest version, this version fixes a few bugs that was reported. +Version 3.2.2 (2009-03-05) + Added new CSS selector engine. Sizzle the same one that jQuery and other libraries are using. + Added new is and getParents methods to the DOMUtils class. These use the new Sizzle engine to select elements. + Added new removeformat_selector option, enables you to specify a CSS selector pattern of elements to remove when using removeformat. + Fixed so the getParent method can take CSS expressions when selecting it's parents. + Added new ant based build process, includes a new javabased preprocessor and a yuicompressor ant task. + Moved the tab_focus logic into a plugin called tabfocus, so the old tab_focus option has been removed from the core. + Replaced the TinyMCE custom unit testing framework with Qunit and rewrote all tests to match the new logic. + Moved the examples/testcases to a root directory called tests since it now includes slickspeed. + Fixed bug where nbsp wasn't replaced correctly in ForceBlocks.js. Patch contributed by thorn. + Fixed bug where an dom exception would be thrown in Gecko when the theme_advanced_path path was set to false under xml application mode. + Fixed bug where it was impossible to get out of a link at the end of a block element in Gecko. + Fixed bug where the latest WebKit nightly would fail when changing font size and font family. + Fixed bug where the latest WebKit nightly would fail when opening dialogs due to changes to the arguments object. + Fixed bug where paragraphs wasn't added to elements positioned absolute using classes. + Fixed bug where font size values with dot's like 1.4em would produce a class instead of the style value. + Fixed bug where IE 8 would return an incorrect position for elements. + Fixed bug where IE 8 would render colorpicker/filepicker icons incorrectly. + Fixed bug where trailing slashes for directories in URLs would be removed. + Fixed bug where autostart and other boolean values in the media dialog wouldn't be stored/parsed correctly. + Fixed bug where the repaint call for the media plugin wouldn't be executed due to a typo in the source. + Fixed bug where id attribute of object elements wasn't kept intact by the media plugin. + Fixed bug where preview of embeded elements when the media_use_script option was used would fail. + Fixed bug where inlinepopups could be rendered at an incorrect location on IE 6 while dragging. + Fixed bug where the blocker shim could be placed at an incorrect location on IE 6. + Fixed bug where the multiple and size attributes of select elements would produce incorrect values while running in IE. + Fixed bug where IE would loose the caret position is you selected a color from the color drop down. + Fixed bug where remove format wouldn't work on IE since it couldn't remove span elements that had style information. + Fixed bug where Opera was removing links when removing formatting from selected contents. + Fixed bug where paragraphs could be produced inside non positional elements styled with the CSS position value of static. + Fixed bug where removeformat wouldn't work if you selected part of a span in IE. + Fixed bug where media plugin didn't retain the style attribute on embed/object elements. + Fixed bug where auto focus on empty editor instances could produce strange results if you inserted an image into it. + Fixed bug where   characters would be removed in FF when inserted with the mceInsertContent or selection.setContent methods. + Fixed bug where warning message of missing paste support wasn't displayed on WebKit browsers. + Fixed bug where anchor links could include other links. The selected range is now unlinked before adding news links to it. + Fixed memory leak when TinyMCE was used with prototype. Patch contributed by James Ots. + Fixed so the non documented fullpage_hide_in_source_view option for the fullpage plugin works again in the 3.x branch. + Fixed so tables doesn't get inserted into paragraphs by default since it's not W3C valid. Can be disabled by using the fix_table_elements option. + Fixed so the source view dialog sets a source_view state to the event object. Enables plugins to intercept the source view mode. + Fixed various validation issues with the html dialogs and pages. + Removed ask mode option since there is way better ways of doing this now. Use the add/remove control methods instead. + Removed logic for compatibility with Safari 2.x, this browser is no longer supported since no one is using it. + Removed the auto domain relaxing feature. If loading scripts cross sub domains it's better to specify the document.domain by hand. +Version 3.2.1.1 (2008-11-27) + Added new theme_advanced_default_background_color/theme_advanced_default_foreground_color options. Patch contributed by David Bildström (ChronoZ). + Fixed font style formatting compatibility issue with Adobe Air. + Fixed so legacy font elements get converted into spans even if cleanup_on_startup isn't enabled. + Fixed bug where pre elements could be incorrectly modified by an IE bug workaround. Patch contributed by hu vime. + Fixed bug where input elements inside inlinepopups wasn't editable in Firefox 2. + Fixed bug where the xhtmlxtras plugin wasn't replacing attribute values correctly. + Fixed bug where menu buttons in skin variants would look strange due to IE 8 fixes. + Fixed bug where WebKit browsers would on backspace take you back to the previous page if the editor was empty. + Fixed bug where DOMUtils decode method wouldn't handle strings larger than 4096kb due to node chunking. + Fixed bug where meta key wasn't handled as ctrl key on Mac OS X for custom keyboard short cuts. + Fixed bug where init event would get fired twice on WebKit on Mac OS X. +Version 3.2.1 (2008-11-04) + Added support for custom icon image for drop menus. Use icon_src to set a custom image directly. + Added new media_strict option to media plugin. Enables you to control if the flash embed is strict or not. Enabled by default. + Fixed so the editors script files gets dynamically loaded without using XHR or eval. + Fixed so the media plugin outputs valid XHTML object elements for Flash movies. Can be disabled with the media_strict option. + Fixed so dynamic loading doesn't require eval calls on non IE browsers for better Air support. + Fixed bug where the editor wasn't treated as empty if the remaining paragraph had attributes. + Fixed bug where id's of elements was removed ones they got wrapped in paragraphs. Patch contributed by ChronoZ. + Fixed bug where WebKit browsers where placing list elements inside paragraph elements. + Fixed bug where inserting images or links would produce absolute urls on WebKit browsers. + Fixed bug where values for checked, readonly, disabled and selected attributes was incorrect on IE. + Fixed bug where positive values for checked, readonly, disabled and selected attributes wasn't forced to valid values. + Fixed bug where selecting the first option in a native select box would produce an undefined error. + Fixed bug where tabindex 32768 could be outputted on IE if element attributes where cloned. + Fixed bug where the media dialogs preview window would display incorrect contents due to duplicate clsid prefixes. + Fixed bug where non pixel or percent heights for textarea elements would produce errors on IE. + Fixed bug where cdata sections in script elements wasn't handled correctly. + Fixed bug where nowrap of table cells would produce a 65535 value output. + Fixed bug where media plugin would produce an error if you selected the first item in the items list. + Fixed bug where media plugin would modify links with the item _value in them. + Fixed so table width/height is better forced if inline_styles is enabled. Patch contributed by daKmoR. + Fixed css for IE 8 such as opacity and other rendering quirks. +Version 3.2.0.2 (2008-10-02) + Fixed bug where the SelectBox and NativeSelectBox wasn't updated correctly if undefined was passed to them. + Fixed bug where the style dropdown wasn't correctly changed back to it's original state when element had no class. + Fixed bug where multiple pending font styles wasn't handled correctly. + Fixed so you can disable all auto css loading for dialogs by setting the popups_css option to false. +Version 3.2.0.1 (2008-09-17) + Fixed bug where font sizes and faces wouldn't be changed correctly when there was a parent with a different style. + Fixed bug where adding fonts to the same selection would produce redundant spans. +Version 3.2 (2008-09-11) + Added new text style support, it will now use span elements internally instead of font elements. + Added new improved support for the theme_advanced_font_sizes option, check the Wiki for details. + Added new keep_style setting that maintains the text style on return/enter on non IE browsers, enabled by default. + Added new onBeforeSetContent/onBeforeGetContent/onSetContent/onGetContent events to the Selection class. + Added new selectByIndex method to ListBox class. This enables you to select list items by an index instead of a value. + Added new possibility to the select method of the ListBox class. This can now have a selector function as it's value argument. + Added new possibility to skip the loading of popups css by setting the feature popup_css to the value false. + Added new possibility to skip translation of popups by setting the translate_i18n feature to false. + Added new element_format option enables you to produce HTML element endings instead of XHTML. But we are still in the XHTML is better camp. + Added missing allowfullscreen and quality options for flash elements, this will now get correctly stored. + Fixed bug where table cell dialog didn't close properly unless the accessibility_warnings option was set to false. + Fixed bug where the modal dialog blocker element for inlinepopups wasn't placed at a correct location if the page had scroll. + Fixed bug where non inline dialogs didn't close correctly if the inlinepopups plugin was used. + Fixed bug where non inline dialogs could make the modal dialog blocker to work incorrectly. + Fixed bug where style select wasn't populated correctly if you pressed the arrow. Patch by Hari Karam Singh. + Fixed bug where toggling the fullscreen mode didn't restore scrollbars on IE when the editor was inside a frame. Patch by Jacob Barrett. + Fixed bug where inserting flash contents using the template plugin didn't work correctly. + Fixed bug where inserting flash contents using the selection.setContent or mceInsertContent command didn't work correctly. + Fixed bug where IE would produce an exception if a comment started with -. + Fixed bug where the blockquote button would wrap lists incorrectly on non IE browsers. + Fixed bug where Opera would display BR elements in the element path. + Fixed bug where xhtmlxtras didn't insert elements correctly on IE. + Fixed bug where the buttons wasn't activated correctly in the xhtmlxtras plugin. + Fixed bug where adding an object as the style attribute for the dom setAttribs method wouldn't work. + Fixed bug where the background color would bleed out to parent container element in Gecko. + Fixed bug where the insert column actions for tables would fail if you did it in a thead or tfoot. Patch contributed by T Andersen (tan73). + Fixed bug where event blocker element wasn't positioned correctly for the inlinepopups plugin. + Fixed bug where pasting from Office 2007 would produce an odd comment in the contents. + Fixed bug where the paste as plain text could remove an extra character. Patch contributed by Speednet. + Fixed bug where some characters where missing for the paste_replace_list option. Patch contributed by Speednet. + Fixed bug where removing non existing editor instances by the mceRemoveControl command would produce an error. + Fixed bug where meta elements with the name description would produce errors in IE. + Fixed bug where color and background colors wouldn't be updated properly. + Fixed bug where the createMenuButton of tinymce.ControlManager didn't implement the last class argument. + Fixed bug where the editor_css option was relative from the TinyMCE installation directory not the current page. + Fixed bug where elements wouldn't be padded if the element contained bogus br elements. For example TD elements. + Fixed bug where parsing of in fullpage plugin would produce an error. + Fixed bug where relative urls with just ./ would become an empty string. + Fixed bug where outdent button would be disabled if inline_styles where set to false. + Fixed bug where replace with an empty search string would produce an error on IE. + Fixed bug where restoring the overflow state of the body in fullscreen plugin running on IE would produce vertical scrollbars. + Fixed bug where pressing return/enter in list items would sometimes move the caret the to top of the content area in FF. + Fixed bug where the style listbox wouldn't be updated correctly if you used the use_native_selects option. + Fixed bug where WebKit browsers would produce a div element when ending list elements using return. + Fixed so translation of popup contents only occurs if it's needed. + Optimized the URI object in regards or converting absolute URIs to relative URIs. +Version 3.1.1 (2008-08-18) + Added new getSize method to DOMUtils it will return the dimensions only of an element. + Added new alert/confirm methods to the tinyMCEPopup class to prevent focus problems and also to shorten method calls. + Added new plugin_preview_inline option to preview plugin to enable/disable native/inline dialogs. + Added new readonly option. If this is set the editor will only display the contents for the user. + Added missing tabindex and accesskey to input elements in the default valid_elements setup. + Updated firebug lite to 1.2, to enable it use the tiny_mce_dev.js?debug=1 on the development package. + Fixed so the preview dialog in the preview plugin uses inline dialogs/popups. + Fixed so CDATA sections remains intact through the serialization process of the DOM tree. + Fixed various issues with the getAttrib command. It will now return more correct values. + Fixed bug where the embed element wasn't properly parsed in the media plugin it now supports 3 formats. + Fixed bug where the noshade attribute was serialized incorrectly on IE. + Fixed bug where editing an existing link element didn't force it relative. + Fixed bug where image link creation fails on Safari if the image is aligned. + Fixed bug where it was possible to scroll the fullscreen mode in Opera 9.50. + Fixed bug where removal of center image alignment would fail. Patch contributed by Andrew Ozz. + Fixed bug where inlinedialogs didn't work properly if the doctype was incorrect in IE. + Fixed bug where cross domain loading didn't work correctly in Opera 9.50. + Fixed bug where breaking huge text blocks with return/enter key would scroll to end of block. + Fixed bug where replace button kept inserting the replacement text even if there is no more matches. + Fixed bug with fullpage plugin where value wasn't set correctly. Patch contributed by Pascal Chantelois. + Fixed bug where the dom utils setAttrib method call could produce an exception if the input was null/false. + Fixed bug where pressing backspace would sometimes remove one extra character in Gecko browsers. + Fixed bug where the native confirm/alert boxes would move focus to parent document if fired in dialogs. + Fixed bug where Opera 9.50 was telling you that the selection is collapsed even when it isn't. + Fixed bug where mceInsertContent would break up existing elements in Opera and Gecko. + Fixed bug where TinyMCE fails to detect some keyboard combos on Mac, contributed by MattyRob. + Fixed bug where replace all didn't move the caret to beginning of text before searching. + Fixed bug where the oninit callback wasn't executed correctly when the strict_loading_mode option was used, thanks goes to Nicholas Oxhoej. + Fixed bug where a access denied exception was thrown if some other script specified document.domain before loading TinyMCE. + Fixed so setting language to empty string will skip language loading if translations are made by some backend. + Fixed so dialog_type is automatically modal if you use the inlinepopups plugin use dialog_type : "window" to re-enable the old behavior. +Version 3.1.0.1 (2008-06-18) + Fixed bug where the Opera line break fix didn't work correctly on Mac OS X and Unix. + Fixed bug where IE was producing the default value the maxlength attribute of input elements. +Version 3.1.0 (2008-06-17) + Fixed bug where the paste as text didn't work correctly it encoded produced paragraphs and br elements. + Fixed bug where embed element in XHTML style didn't work correctly in the media plugin. + Fixed bug where style elements was forced empty in IE. The will now be wrapped in a comment just like script elements. + Fixed bug where some script elements wrapped in CDATA could fail to be serialized correctly. + Fixed bug where FF 3 produced -moz- internal styles in some style attributes. + Fixed bug where query strings and external URLs didn't work correctly in style attributes. + Fixed bug where shape attribute of area elements got serialized as rect regardless of it's initial value in IE 6. + Fixed bug where selection of elements inside layers would fail in IE since focus was moved to the document body. + Fixed bug where pressing enter/return in an editable select box would produce an __mce_add_custom__ class value. + Fixed bug where changing font size of text placed inside a colored text chunk would remove the parent node. + Fixed bug where Opera 9.5 final produced a strange line break behavior due to a workaround for previous Opera versions. + Fixed bug where text/background color would produce a strange focus problem when you tried to click on the body in IE. + Fixed issue where selecting the title of an listbox equals the old 2.x behavior of changing the value to an empty string. + Fixed issue where it was common for the media plugin to break if the _value attribute wasn't added for the param element. + Fixed issue where the wrong parent editor instance might be updated if you use fullscreen mode in an incorrect way. + Fixed issue where Safari was producing a warning about the base element not being closed correctly. + Removed redundant form element name matching from regexp in the DOMUtils class. +Version 3.0.9 (2008-06-02) + Added new contextmenu_offset_x/contextmenu_offset_y options for the contextmenu plugin. + Added cite attribute to the default rule for the blockquote element. + Added support for using arrow keys for selection of items in listboxes. + Added support for using arrow keys for selection of items in dropmenus. + Fixed bug where blockformat change on elements with BR inside them didn't change correctly on Firefox. + Fixed bug where removing table rows inside thead or tfoot would remove the whole table if it was the last one. + Fixed bug where XHR synchronous mode didn't execute the callback handlers synchronously. + Fixed bug where setting border to 0 didn't add border: 0 to the style attribute when using the advimage dialog. + Fixed bug where the selection of images and table cells didn't work correctly when the editor is placed in a frame and running on IE. + Fixed bug where the store/restore of a selection didn't work correctly in non IE browsers. + Fixed bug where only the first element would be invalid for the invalid_elements option. + Fixed bug where paste as plain text didn't encode the characters correctly when they where inserted. + Fixed bug where HTML source window couldn't be maximized on Gecko when the maximizable feature was enabled. + Fixed bug where color selection using the color picker could produce exception in IE. + Fixed bug where font size changes could produce produce extra redundant elements. + Fixed bug where IE could produce unknown runtime error if you replaced a image with another image from a separate frame. + Fixed bug where the domLoaded state for the Event class wasn't set correctly if the editor was loaded dynamically using the gzip compressor. + Fixed bug where handling of the base element for a page would produce incorrect urls. Based on a patch contributed by John LeSueur. + Fixed bug where table constraint alert boxes was presented with an empty value and wasn't the skinned inline ones. + Fixed bug where the onChange event wasn't fired when the form was submitted. It's now also triggered when the save method is called. + Fixed bug where encoding set to xml didn't work as expected. It now encodes the contents into XML entities. + Fixed bug where numrows didn't work correctly for the merge cells dialog of the table plugin. + Fixed bug where the onGetContent event was fired even when the no_events flag was set. + Fixed bug where the preview panels for the advimage and the media plugin could overflow on Safari and FF 3. + Fixed bug where the editing and removal of abbr elements using the xhtmlxtras plugin working correctly on IE. + Fixed bug where save button in the save plugin didn't work correctly on IE. + Fixed bug where dragging layers didn't work as expected since it would snap back to it's original location if you saved. + Fixed bug where the description of the template plugin dialog wasn't updated correctly. + Fixed bug where the values for frame and rules in the table dialogs where swapped. + Fixed bug where the elements like ins, del, cite, acronym and abbr didn't have the default editing style as the old 2.x branch. + Fixed bug where ask mode would lock the focused textarea if you pressed cancel in the confirm dialog on FF 3. + Fixed bug where ask mode would produce contents for empty textareas if you reloaded the page. + Fixed so the onGetContent event gets the full pass through object just like the other events. + Fixed so attributes for block elements remains the same when you change format of a element. +Version 3.0.8 (2008-04-30) + Fixed bug where IE would produce an error if textareas without names where converted. + Fixed bug where editor wasn't forced empty when there was only a single br or empty paragraph left. + Fixed bug where IE would produce an warning message if object elements where produced in the media plugins preview running on https. + Fixed bug where new addVer function didn't handle hash items correctly. Patch contributed by Mirek Burkon. + Fixed bug where font_size_style_values option wasn't applied correctly to fonts inside the editor. + Fixed bug where image selection could be lost if a image was edited using context menu on IE. + Fixed bug where style values wasn't updated properly due to an invalid regexp. + Fixed bug where IE 6 where displaying warning message about insecure items when inserting an image while using https. Patch contributed by Norifumi Sunaoka. + Fixed bug where IE was producing an auto save message if you selected a color from the color split button. + Fixed bug where backspace sometimes would move the caret to the end of the previous block in Gecko. + Fixed bug where the rowlayout manager didn't work as described in the documentation. + Fixed bug where the default options for the fullpage plugin wasn't applied correctly. + Fixed bug where selection would jump one character if you applied a styles to a words in non IE browsers. + Fixed bug where undo levels wasn't added correctly if you went back in undo history and added a new event. + Fixed bug where font size dropdown didn't mark the selected size in IE. + Fixed bug where the size of the editor was determined using clientWidth instead of offsetWidth. + Fixed so the onchange event doesn't fire on the initial undo level, it will also fire when the editor is blurred. + Fixed so the advhr plugin produces XHTML valid output instead of non standard attributes. + Fixed so blockquote gets converted into [quote] in when the bbcode plugin is enabled. + Fixed so theme_advanced_font_sizes can be named for example Font 1=1, Font 2=2 etc. + Fixed so editor_selector/editor_deselector can be regexps. By default only strings are allowed not part regexps like before. + Fixed so that the version suffix is optional. It still requires the build process so you need to export it manually. + Fixed so it's possible to tab to table cells in non Gecko browsers and also produce new rows if you tab at the end of a table. Contributed by Josh Peek. +Version 3.0.7 (2008-04-14) + Added new version suffix to all internal GET requests to make sure that the users cache gets cleared correctly. + Fixed issue with isDirty returning true event if it wasn't dirty on IE due to changes in tables during initialization. + Fixed memory leak in IE where if a page was unloaded before all images on the page was loaded it would leak. + Fixed bug in IE where underline and strikethrough could produce an exception error message. + Fixed bug where inserting paragraphs in totally empty table cells would produce odd effects. + Fixed bug where layer style data wasn't updated correctly due to some performance enhancements with the DOM serializer. + Fixed bug where it would convert the wrong element if there was two elements with the same name and id on the page. + Fixed bug where it was possible to add style information to the body element using the style plugin. + Fixed bug where Gecko would add an extra undo level some times due to the blur event. + Fixed bug where the underline icon would get active if the caret was inside a link element. + Fixed bug where merging th cells not working correctly. Patch contributed by André R. + Fixed bug where forecolorpicker and backcolorpicker buttons where rendered incorrectly when the o2k7 skin was used. + Fixed bug where comment couldn't contain -- since it's invalid markup. It will now at least not break on those invalid comments. + Fixed bug where apos wasn't handled correctly in IE. It will now convert apos to ' on IE since that browser doesn't support that entity. + Fixed bug where entities wasn't encoded correctly inside pre elements since they where protected from whitespace removal. + Fixed bug where color split buttons where rendered incorrectly on IE6 when using the non default theme. + Fixed so caret is placed after links ones they are created, to improve usability of the editor. + Fixed so you can select tables by clicking on it's borders in non IE browsers to normalize the behavior. + Fixed so the menus can be toggled by clicking once more on the icon in listboxes, menubuttons and splitbuttons based on code contributed by Josh Peek. + Fixed so buttons can be labeled, currently only works with the default skin, so it's kind of experimental. Patch contributed by Daniel Insley. + Fixed so forecolorpicker and backcolorpicker remembers the last selected color. Patch contributed by Shane Tomlinson. + Fixed so that you can only execute the mceAddEditor command once for the same instance name. + Fixed so command functions added with addCommand can pass though the call to default handles if it returns true. +Version 3.0.6.2 (2008-04-07) + Fixed bug where empty tables couldn't be edited correctly on non IE browsers if they where loaded into the editor. + Fixed bug where it was impossible to resize layers correctly in IE since it thought it was an image. + Fixed bug where an editor instance was stealing focus in IE resulting in a scroll to the editor on page reloads. + Fixed bug where Safari was crashing on Mac OS X if you closed dialogs using the Esc key. +Version 3.0.6.1 (2008-04-04) + Added support for the missing mceAddFrameControl command. The input for this command has changed so consult the Wiki. + Fixed bug where sub menus for the drop menus would leave an empty element behind. + Fixed memory leak in IE if the editor was placed in a frame or iframe. +Version 3.0.6 (2008-04-03) + Added elements to the default value of valid_elements option. It now contains all XHTML strict elements and a few transitional. + Added more accessibility fixes, it's now possible to navigate and close list boxes and split button menus with the keyboard. + Added missing getInfo method to the contextmenu and safari plugin, this caused problems for the Drupal module. + Added new inlinepopups_zindex option to the inlinepopups plugin so that you can configure the default start z-index. + Added new setControlType method to the tinymce.ControlManager class. This method enables you to override the default classes. + Added ability to specific an optional control class to use instead of the default one for the ControlManager methods. Based on concept by Josh Peek. + Fixed bug where attribute rules for the DOM Serializer couldn't contain - or _ characters in their names. + Fixed bug where inlinepopups event blocker and modal dialog blocker elements produced vertical scrollbars. + Fixed bug where there was a rendering issue with quirks mode in Safari moving the resize handle to an incorrect position. + Fixed bug with forecolor/backcolor controls on IE. Sometimes elements positioned relative will generate display errors. + Fixed bug where a p2 was leaking out in the global name space when you selected a color from the forecolor/backcolor controls. + Fixed bug where empty paragraphs didn't work as expected in browsers other than IE. + Fixed bug where the load method of the tinymce.dom.ScriptLoader didn't check if the file was already loaded. + Fixed bug where the load method for the PluginManager and ThemeManager didn't check if a plugin/theme by a specific name was all ready loaded. + Fixed bug where the theme_advanced_link_targets option didn't work correctly with the advanced themes link dialog. Patch contributed by Arnold B. + Fixed bug where the style command would merge classes into empty span elements. + Fixed bug where the style command would remove empty span elements outside the current selection. + Fixed bug where the fix for the Safari backspace bug removed all editor contents if it was filled with empty paragraphs. + Fixed bug where alert and confirm boxes opened by the inlinepopups plugin would produce an exception if domain relaxing was used. + Fixed bug where Safari was adding style attributes to all elements when you paste them into the editor. + Fixed bug where the spellchecker menus was visually incorrect since the space for the non existing icon was still there. + Fixed bug where remove_linebreaks option didn't remove line breaks inside the text contents of a element. + Fixed bug where Safari 3.1 was introducing _mc_tmp into paragraphs due to the new querySelectorAll and a TinyMCE specific workaround. + Fixed bug where getParam method in the Editor class was returning incorrect objects and would mess up the font drop down. Patch contributed by speednet. + Fixed bug where the table dialog would produce an exception in IE when you edited tables since it tried to place focus in a disabled field. + Fixed bug where class attribute on some span elements was removed on cleanup. + Fixed bug where resizing the editor in IE could produce an exception if the editor width/height got to be a negative value. + Fixed bug where wmv files wouldn't play since the src param was used instead of the url param. + Fixed bug where br elements would be added here and there in Gecko. Geckos internal _moz_dirty br elements where serialized as well. + Fixed bug where editing named anchors would produce two anchors instead of one updated one. + Fixed bug where arrow and function keys didn't work when an noneditable element was focused within the editor. + Fixed bug where the dispatcher could produce an exception if the listener list was altered inside an event callback. + Fixed bug where it was impossible to totally empty the editor contents on Safari due to an mistreatment of nbsp as whitespace. Patch contributed by Andrew Ozz. + Fixed bug where TinyMCE would not convert textareas with the same name attribute value. It will now generate an unique id for those textareas. + Fixed bug where backspace/delete key was deleting td elements inside tables while running on Gecko. + Fixed bug where Firefox 3.0b4 and Opera 9.26 where scrolling to the top of document when pressing return/enter. + Fixed bug where the template plugin wasn't just inserting the mceTmpl tagged element. + Fixed bug where the alert method of the default WindowManager implementation didn't translate input language strings like the inlinepopups dialog does. + Fixed bugs with the backspace behavior in Gecko. The caret was placed on incorrect locations in the DOM sometimes. + Fixed so advimage dialog and table dialogs has support for editable select boxes for the class value. + Fixed so the media, pagebreak and spellchecker doesn't load it's default content.css file if the content_css option is set to false. + Fixed so the paste_use_dialog option works again it's enabled by default but can be disabled on IE. Patch contributed by Speednet. + Fixed so that the fullscreen editor is focused when switching fullscreen editing on. + Fixed so it's possible to edit images and links inside tables using the context menu. + Fixed so table dialogs and the advanced image dialog doesn't loose selection in IE if the dialogs where navigated/submitted with the keyboard. + Fixed so the theme_advanced_blockformats options can have named items for example title 1=h1;title 2=h2. + Fixed so it's possible to add a custom editor_css for the simple theme. + Fixed quirks with directionality rtl, patch contributed by Andrew Ozz. + Fixed so the inlinepopups default start zIndex is 300000. + Fixed typo in media plugin Shockware is now replaced with Shockwave. + Fixed psuedo memory leak in IE with the replaceChild method inside the DOMUtils.replace method. + Fixed so memory is released when an editor instance is removed from page. + Optimized the color split button menus so that they use less event handlers. + Removed the util/mclayer.js file since it's no longer used by any of the TinyMCE dialogs and is considered deprecated. +Version 3.0.5 (2008-03-12) + Added new black skin variant to the o2k7 skin contributed by Stefan Moonen. + Added new explode method to the tinymce core class. This does a split but removed whitespace it also defaults to a , delimiter. + Added new detection logic for IE 8 standards mode into the DOMUtils class strMode can now be checked to see if that mode is on/off. + Added new noscale option value for the scale select box for Flash in the media plugin. + Fixed bug where the menu for the ColorSplitButton wasn't removed when the editor was removed. + Fixed bug where font colors couldn't be edited correctly since the style of the element didn't get updated correctly. + Fixed bug where class of elements would get lost when TinyMCE was fixing incorrect HTML markup. + Fixed bug where table editing would produce double height values. + Fixed bug where width style value wouldn't be removed if you switched width unit from cm/em to pixels or percent. + Fixed bug where the search/replace input box wasn't auto focused like the other dialogs. + Fixed bug where the old mceAddControl command would use the fullscreen settings next time it created an instance. + Fixed bug where multiple lines where added to the target cell if you merged multiple empty cells. + Fixed bug where drop down menus would be incorrectly positioned inside scrollable divs. + Fixed bug where the separators of the silver skin variant didn't display correctly in IE 6. + Fixed bug where createStyleSheet seems to load scripts at opposite order in some IE versions. + Fixed bug where directionality could produce odd results for the UI and the dialogs. + Fixed bug where the DOM serializer wouldn't serialize custom namespaced attributes in IE 6 using the *[*] valid elements rule. + Fixed bug where table caption would be inserted after the thead element if you swapped a tr to be inside the thead. + Fixed bug where the youtube detection logic for the media plugin was to generic. + Fixed so the deprecated and undocumented theme_advanced_path_location set to none won't hide the whole statusbar. + Fixed so most input lists can have whitespace in them they are now split using the new tinymce.explode method. + Fixed so the popup_css and popup_css_add URLs are relative to where the current document is located. + Fixed various bugs and quirks with the store/restore selection logic. + Fixed so the editor starts in IE 8 standards mode but still that browser is very very buggy. + Fixed so dialog_type set to modal will block the background and other inline windows and only give access to the front most window. +Version 3.0.4.1 (2008-03-08) + Fixed critical bug where it was impossible to edit images when inlinepopups where used due to lost selection in IE. +Version 3.0.4 (2008-03-07) + Added new option constrain_menus, this enables you to force view port constraints on all menus. Contributed by Shane Tomlinson. + Fixed bug where table background wasn't visible inside the editor due to a default CSS rule overriding the style attribute. + Fixed bug where links would get a null class added if no styles was used in IE. + Fixed bug where spellchecker was auto focusing the editor in IE. + Fixed bug where document.domain would produce invalid argument if the editor was loaded in IE6 over a network UNC path. + Fixed bug where table height attribute was used, this is deprecated in XHTML so it now adds it as an style. + Fixed bug where textareas with style values would produce error in IE. + Fixed so the first element in each dialog is focused by default to enhance keyboard usage. + Fixed so you can add a mceFocus class to elements to make it auto focused. + Fixed so you can close dialogs using the esc key. + Fixed so you can press return/enter to submit the action of each dialog. + Fixed so tabbing inside an inline popups wont focus the resize anchor elements. + Fixed so you can press ok in inline alert messages using the return/enter key. + Fixed so textareas can be set to non px or % sizes for example em, cm, pt etc. + Fixed so non pixel values can be used in width/height properties for tables. + Fixed so the custom context menu can be disabled by holding down ctrl key while clicking. + Fixed so the layout for the o2k7 skin looks better if you don't have separators before and after list boxes. + Fixed so the sub classes get a copy of the super class constructor function to ease up type checking. + Fixed so font sizes for the format block previews are normalized according to http://www.w3.org/TR/CSS21/sample.html (it can be overridden). + Fixed so font sizes for h1-h6 in the default content.css is normalized according to http://www.w3.org/TR/CSS21/sample.html (it can be overridden). +Version 3.0.3 (2008-03-03) + Fixed bug where an error about document.domain would be thrown if TinyMCE was loaded using a different port. + Fixed bug where mode exact would convert textareas without id or name if the elements option was omitted. + Fixed bug where the caret could be placed at an incorrect location when backspace was used in Gecko. + Fixed bug where local file:// URLs where converted into absolute domain URLs. + Fixed bug where an error was produced if a editor was removed inside an editor command. + Fixed bug where force_p_newlines didn't effect the paste plugin correctly. + Fixed bug where the paste plugin was producing an exception on IE if you pasted contents with middots. + Fixed bug where delete key could produce exceptions in Gecko sometimes due to the fix for the table cell bug. + Fixed bug where the layer plugin would produce an visual add class called mceVisualAid this one is now renamed to mceItemVisualAid to mark it internal. + Fixed bug where TinyMCE wouldn't initialize properly if ActiveX controls was disabled in IE. + Fixed bug where tables and other elements that had visual aids on them would produce an extra space after any custom class names. + Fixed bug where search with an empty string would produce some odd "invalid pointer" error in IE. + Fixed bug where elements like menus where placed at incorrect positions in Opera 9.26. + Fixed bug where IE was loosing focus of the editor when you clicked some dropmenu and if it was placed in a frame or iframe. + Fixed bug where focus of images could be lost in IE if you focused the accessibility confirm dialog in the advimage plugin. + Fixed bug where nestled font elements would produce odd output like missing font elements. + Fixed bug where text colors and styles got removed if invalid_elements included the font element. + Fixed bug where text-decoration set to underline or line-through would remove other styles from span elements. + Fixed bug where editor contents like \n\n would be incorrectly handled and processed as real line feeds. + Fixed bug where incorrectly encoded urls with ampersands in them would be decoded incorrectly. + Optimized the DOMUtils decode method to be a lot faster if the string doesn't have any entities to decode. +Version 3.0.2.1 (2008-02-26) + Fixed alert/confirm dialogs so they display correctly. +Version 3.0.2 (2008-02-26) + Added new body_id option that enables you to specify the id of the body inside the editor iframe based on ideas by David Bildström (ChronoZ). + Added new body_class option that enables you to set the class for the body of the editor iframe based on ideas by David Bildström (ChronoZ). + Added new CSS class to the default content.css files mceForceColors that forces white background and black text can be used with the body_class option. + Added new type parameter to the Editor.getParam function to reduce redundant logic for parsing hash tables. + Added new isDone method to the ScriptLoaded class, this enables you to check if a script has been loaded or not. + Added new resizeTo and resizeBy methods for the advanced theme. Can be called using tinyMCE.activeEditor.theme.resizeTo(w, h); + Added new skin_variant option this can be used to extend existing skins with slight modifications like color. + Added new variant of the o2k7 skin called "silver" based on a contribution made by Stefan Moonen. + Fixed bug where the template plugin might produce errors if the template_mdate_classes wasn't configured. + Fixed bug where the media plugin didn't convert the URLs for movies once they where inserted. + Fixed bug where the style field for the advlink dialog didn't work correctly if you edited an existing link. + Fixed bug where alignment of toolbars would fail in editor was uses in a quirks mode on IE, fix contributed by Peter Wood & Art Lawry. + Fixed bug where initialization of multiple editors at the same time using the mceAddControl method would produce errors. + Fixed bug where initialization of editors using mceAddControl command or new tinymce.Editor calls would fail during page load. + Fixed bug where the check for domain relaxing could fail if the document.domain property was changed by another script. + Fixed bug where textareas couldn't be named description or any other name that matches the meta elements in IE and Opera. + Fixed bug where the element path would fail sometimes in IE due to "unknown runtime error" on innerHTML. + Fixed bug where Safari would crash if you was hiding the editor before serializing the contents. + Fixed bug where the editor wasn't scaled propertly in fullscreen mode using the old fullscreen_new_window option. + Fixed bug where render method didn't load language packs in IE and Opera if you rendered an editor during page load. + Fixed bug where resizing the browser window in fullscreen didn't resize the editor. + Fixed bug where the blockquote command didn't move the caret inside the new empty blockquote if you used it on an empty document. + Fixed bug where auto in a style width/height for the textarea would produce an editor with the size value of 100. Fix contributed by Shane Tomlinson. + Fixed bug where restoration of selection at the beginning of an element could fail in Gecko. + Fixed bug where caret restoration after a cleanup could place the it at an incorrect location. + Fixed bug where delete key inside td elements would delete the cell in Gecko. + Fixed so the blockquote button toggles individual lines. This behavior is a bit more like the old indentation behavior in the 2.x branch. + Fixed so the dialog language packs only gets loaded the first time you open a dialog. + Fixed so all classes in the whole UI is prefixed with "mce" to avoid collisions, use the skin converter to update your existing skins. + Fixed so all classes in the inlinepopups logic is prefixed with "mce" to avoid collisions, use the skin converter to update your existing skins. + Fixed so that the window in fullscreen mode can be resized when fullscreen_new_window option is enabled. + Fixed so blockquote elements are formatted in the source output with an linefeed before and after it. + Optimized the editor initialization by reducing the number of calls to getBookmark/moveToBookmark. +Version 3.0.1 (2008-02-21) + Added spellchecker plugin into the main package, but without any backend can be specified with the spellchecker_rpc_url option. + Added src attribute for script elements to the default valid_elements option value. + Added extra parameter to the class_filter callback it can now also filter out classes based on the whole CSS rule. + Added support for domain relaxing, TinyMCE can now be loaded from an remote domain as long as they are on the same root domain. + Added support for custom elements the new custom_elements option enables you to add non HTML elements to the editor. + Added support for the W3C Selectors API that was added to latest nightly build of WebKit. + Fixed bug where some object param element wasn't stored correctly using the media plugin. + Fixed bug where Opera was scrolling to top of page is drop menus on list boxes where displayed. + Fixed bug where IE6 was crashing if a format block was used on a container with anchor elements. + Fixed bug where spans with font sizes wasn't handled correctly when editor was loading contents. + Fixed bug where mode exact couldn't convert editors with name only. Id is no longer required but recommended. + Fixed bug where the mceInsertRawHTML command produced an extra undo level. + Fixed bug where the specific_textareas mode didn't work correctly this is the same thing as textareas now. + Fixed bug where the values of input elements in the HTML page of dialogs pages where changed in IE. + Fixed bug where fullscreen and fullpage plugins didn't work well together. + Fixed bug where embed elements wasn't handled properly in the media plugin. + Fixed bug where style information on span elements gets munged when fonts are converted to spans. + Fixed bug where some entities in element attributes where encoded incorrectly in the latest WebKit build. + Fixed bug where initialization would fail in IE if there where two input elements with the name submit in the form. + Fixed bug where fullscreen mode didn't work correctly in IE when the fullscreen_new_window option was used. + Fixed bug where invalid contents like an ul inside a p element would produce odd results in IE. + Fixed bug where Opera 9.2x was placing the drop menus at incorrect locations if the editor was placed in a table. + Fixed bug where Opera was producing odd results if enter/return was pressed while having forced_root_blocks disabled. + Fixed bug where layer plugin was stealing focus in IE on initialization. + Fixed bug where body attributes wasn't set properly in the fullpage plugin, fix contributed by Hiroaki Kawai. + Fixed bug where insert image and insert link dialogs where producing an extra level in the undo history. + Fixed bug where Gecko would produce an error if empty elements like
                    where inserted using mceInsertContent. + Fixed bug where center alignment of images produced odd results inside table cells. + Fixed bug where center alignment of images couldn't be toggled correctly. + Fixed bug where alignment of images inside tables would produce double float style items in IE if the fix_table_elements option was enabled. + Fixed bug where a variable called 'v' was polluting the global namespace. Objects tinymce and tinyMCE are the only ones allowed to be global. + Fixed bug where insert table from context menu couldn't insert new tables inside existing tables. + Fixed bug where Safari wouldn't produce br elements on enter when the force_br_newlines option was enabled. + Fixed bug where switching cell type in table cell dialog would produce odd attributes in IE. + Fixed bug where Gecko was outputting internal attributes if valid_elements where set to "*[*]". + Fixed bug where the style plugin would produce non hex colors inside the dialog when running on Gecko. + Fixed bug where an empty src value for insert image would remove the currently selected image if it wasn't and image element. + Fixed bug where hidden input elements would break the logic for the tab_focus option. + Fixed bug where save button wasn't working correctly in fullscreen mode. + Fixed bug where the editor was forced to be placed in a form element if the save_onsavecallback option was used. + Fixed bug where upper case param attributes wasn't parsed correctly in the media plugin. + Fixed bug where render method of tinymce.Editor class would produce an exception if the strict_loading_mode option was omitted. + Fixed bug where nodeChanged event could be fired while the editor was loading and there for produce an exception in FF. + Fixed bug where no undo levels where added if the user created new table rows using the tab key on Gecko. + Fixed bug where tables would be broken if you selected a different block format for contents withing an table cell. + Fixed bug where the render method of the tinymce.Editor class didn't setup the tinymce.EditorManager.settings object correctly. + Fixed bug where the advanced image dialog would go to the first tab if the alternative image was changed using the file browser link. + Fixed bug where the forced_root_block option would produce BR elements inside empty blocks if the block wasn't a paragraph. + Fixed bug where the forced_root_block doesn't work correctly on IE if the specified element was something else than paragraphs. + Fixed bug where selection of images would get lost if user selected something from the context menu in IE. + Fixed bug where the context menu plugin would pollute the global namespace with two variables p1 and p2. + Fixed compatibility issue with Mootools, it is destroying document.getElementById on unload in IE. (Mantra: You don't own the internal objects). + Fixed bugs where dialogs/tabs and other UI elements where rendered incorrectly in Firefox 3. + Fixed so the auto CSS class importer is compatible with 2.x. + Fixed so the editor UI and inlinedialogs works correctly with the YUI CSS reset package. + Fixed so header and footer elements are forced to lower case when the fullpage plugin is used. + Fixed so load prefixes "-" for plugins and themes isn't required if the plugin/theme was loaded by the ThemeManager/PluginManager. + Fixed so the JSONRequest uses application/json content type to make Ruby on rails happy. + Fixed so the CSS rule is more exact for the body in the default content.css files. Body is now defined as "body.mceContentBody" instead of just "body". + Fixed so the tiny_mce_dev.js uses XHR instead of document.write to load scripts to resolve an issue with Opera 9.50. + Fixed so language pack loading can be disabled by setting the language option to false. Can be useful for systems with their own language pack management. +Version 3.0 (2008-01-30) + Added map and area elements to the default valid_elements list and also some indentation rules. + Fixed bug where empty paragraphs wasn't padded when loading contents. + Fixed bug where the RowLayout manager didn't work at all. + Fixed bug where style attribute data would get messed up in advimage dialog. + Fixed bug where the table dialogs class select wasn't updated correctly. + Fixed bug where elements would get extra whitespace around on insert when body was present in valid_elements. + Fixed bug where coords attribute of the area element wasn't handled properly in IE. + Fixed bug where Safari didn't produce BR elements on shift+return. + Fixed bug where force blocks would cast odd invalid attribute exception in IE. + Fixed bug where media plugin would produce extra whitespace before and after objects. + Fixed bug where cleanup_callback could break the contents of the editor. But use the new event system instead of this option. + Fixed bug where the tab_focus option didn't work between editor instanced. You can now tab between editors. + Fixed bug where the load function of the ScriptLoader class didn't load single files without the load que as it was supposed to. + Fixed bug where the execcommand_callback parameter order was incorrect. Recommendation use the new addCommand method. + Fixed bug where range.select calls sometimes failed on some IE versions. + Fixed bug where Safari was scrolling to top of document when enter/returned was pressed. + Fixed bug where fullscreen_new_window option didn't work correctly. + Fixed bug where the nonbreaking plugin inserted an space instead of an non breaking space the first time. + Fixed bug where the visualization of non breaking spaces where visual in element path. + Fixed so the focus is restored to the editor after inserting an custom character. + Fixed so the isNotDirty state is set to false if a new undo level is added. + Fixed so pointless style information for borders gets removed in IE. + Fixed so the resize button has a se-resize cursor css value. +Version 3.0rc2 (2008-01-18) + Added new fix_nesting option to fix bug #1867292, this is disabled by default. + Added new indentation option enables you to specify how much each indent/outdent call will add/remove. + Added easier support for enabling/disabling icon columns on drop menues. + Added new menu button control class. This control is very similar to the splitbutton but without any onclick action. + Added support for previous tab focus (shift+tab). The tab_focus setting now takes two items next and previous element. + Fixed bug where iframes inside the editor got removed in Firefox on initial load. + Fixed bug where the CSS for abbr elements wasn't applied correctly in IE. + Fixed bug where mceAddControl on element inside a hidden container produced errors. + Fixed bug where closed anchors like produced strange results. + Fixed bug where caret would jump to the top of the editor if enter was pressed a the end of a list. + Fixed bug where remove editor failed if the editor wasn't properly initialized. + Fixed bug where render call on for a non existing element produced exception. + Fixed bug where parent window was hidden when the color picker was used in a non inlinepopups setup. + Fixed bug where onchange event wasn't fired correctly on IE when color picker was used in dialogs. + Fixed bug where save plugin could not save contents if the converted element wasn't an textarea. + Fixed bug where events might be fired even after an editor instance was removed such as blur events. + Fixed bug where an exception about undefined undo levels could be throwed sometimes. + Fixed bug where the plugin_preview_pageurl option didn't work. + Fixed bug where adding/removing an editor instance very fast could produce problems. + Fixed bug where the link button was highlighted when an anchor element was selected. + Fixed bug where the selected contents where removed if a new anchor element was added. + Fixed bug where splitbuttons where rendered one pixel down in the default theme. + Fixed bug where some buttons where placed at incorrect positions in the o2k7 theme. + Fixed bug that made it impossible to visually disable a custom button that used an image instead of CSS sprites. + Fixed bug where it wasn't possible to press delete/backspace if the editor was added+removed and re-added due to a FF bug. + Fixed bug where an entities option with only 38,amp,60,lt,62,gt would fail in IE. + Fixed bug where innerHTML sometimes generated unknown runtime error on IE. + Fixed bug where content_css files wasn't loaded in the template preview iframe. + Fixed bug where scroll position was incorrect when toggling fullscreen mode. + Fixed bug where restoration of overflow didn't work correctly when disabling fullscreen mode in Opera. + Fixed bug where drop menus where places at incorrect locations if the editor was placed in a scrollable container element. + Fixed bug where hideMenu didn't hide sub menus correctly. It will now hide all menus recursively. + Fixed so theme_advanced_path_location can be used in init options for compatibility reasons. + Fixed so the drop menu colors matches the rest of o2k7 theme. + Fixed so the preview example.html file is updated to the new 3.x API. + Fixed so the margins are the same by default inside the editable area between IE and other browsers. + Fixed so editor contents gets stored before it the onSubmit event is fired. +Version 3.0rc1 (2008-01-08) + Added new classes for toolbar rows in advanced theme mceToolbarRow1..n enabled you to change appearance of individual rows. + Added auto detection for the strict_loading_mode option when running in application/xhtml+xml mode on Gecko. + Optimized the HTML serializer by bundling some post process methods together. + Fixed so that the toolbars have unique IDs, enables you to alter the toolbars using the ControlManager and the DOM. + Fixed bug where delta values for dialog sizes in language packs didn't work correctly due to missing string to number casting. + Fixed bug where paragraph generation logic didn't handle hr or table elements correctly if they where the only element. + Fixed bug where some elements got extra linebreaks added after or before it in HTML output. + Fixed bug where it was hard to modify existing style data on table rows and table cells. + Fixed bug where the dom.getRect method didn't handle non pixel values correctly. + Fixed bug where strikethrough and underline couldn't be toggled on existing span elements. + Fixed bug where the postprocessor searched for nsbp instead of nbsp entities. + Fixed bug where it was impossible to edit links that had child elements within them. + Fixed bug where it was possible to click on the parent item of a submenu. + Fixed bug where mouseover/mouseout images couldn't be removed in advimage dialog. + Fixed bug where drop menus didn't work when running in application/xhtml+xml mode. + Fixed bug where Opera added doctype to output in application/xhtml+xml mode. + Fixed bug where some DOM methods didn't work correctly in the application/xhtml+xml mode. + Fixed bug where the inlinepopups didn't work correctly in the application/xhtml+xml mode. + Fixed bug where the ColorSplitButton didn't display correctly in the application/xhtml+xml mode. + Fixed bug where the UI layout was incorrect on Gecko browsers when running in application/xhtml+xml mode. + Fixed bug where the word paste plugin produced exception while running in application/xhtml+xml mode. + Fixed bug where there wasn't any hidden input element generated for divs while running in application/xhtml+xml mode. + Fixed bug where indentation of script/style/pre elements where incorrect. + Fixed bug where script element contents was removed in IE. + Fixed bug where script element contents got entity encoded. + Fixed bug where you couldn't edit existing element styles using the styles plugin. + Fixed bug where styles wasn't updated properly sometimes due to an performance enhancement. + Fixed bug where font sizes couldn't be changed using the style plugin. + Fixed bug where an error was produced in Gecko browsers when switching back from fullscreen mode. + Fixed bug where Opera was producing br elements after elements like h3. + Fixed bug where TinyMCE couldn't be loaded on a page using - characters in it's URL. + Fixed bug where the editor container element was forced to have a specific name. + Fixed bug with force_br_newlines option on Firefox, even though it should never be used (Read FAQ). + Fixed bug where onclick event had an return true; prefix added when creating an popup. + Fixed bug where the theme_advanced_statusbar_location option couldn't handle the value "none". + Fixed issue with URLs with multiple at characters for example an Zope URI. + Fixed so simple and advanced themes doesn't collide. + Fixed so a elements gets removed when the href field is left empty, the href attribute is required in a link after all. + Fixed so img elements gets removed when the src field is left empty, the src attribute is required for all images after all. + Removed the indent and encode methods from the tinymce.dom.Serializer class due to performance enhancement and reduction of the API size. +Version 3.0b3 (2007-12-14) + Added new getElement method to Editor class, returns the element that was replaced with the editor instance. + Added new unavailable prefix for disabled controls for accessibility reasons. + Fixed bug where regexp patterns couldn't be used for the editor_selector/editor_deselector options. + Fixed bug where the DOM wasn't properly initialized before the onInit event was executed in popups. + Fixed bug where font sizes where reduced by font size actions on previous spans in Safari. + Fixed bug where HR elements got places at the wrong location in IE. + Fixed bug where align/justify didn't work correctly on multiple paragraphs. + Fixed bug with missing translation for cell scope settings. + Fixed bug where selection/caret position was lost on some table actions. + Fixed bug where editor instances couldn't be added to hidden div elements. + Fixed bug where list elements in Safari would get an odd ID attribute. + Fixed bug where IE would return when the editor was completely empty. + Fixed bug where accessibility title attribute for access keys wasn't setup properly. + Fixed bug where forecolorpicker and backcolorpicker control names wasn't working. + Fixed bug where inserting template content didn't work in Safari due to selection exception. + Fixed bug where absolute URLs to remote hosts couldn't be used for background images. + Fixed bug where mysterious span elements where produced in Safari when injecting HTML contents. + Fixed bug where the media plugin didn't work correctly on the latest Opera 9.24. + Fixed bug where indentation of HTML output wasn't applied to all block elements. + Fixed bug where Safari was production DOM exception if you pressed enter in an empty editor. + Fixed bug where media plugin didn't parse script tags correctly patch contributed by Mathieu Campagna. + Fixed bug where the drop menus of list boxes like blockformat could produce scrolling of the page. + Fixed bug where the drop menus where placed at an incorrect location if TinyMCE was placed in a scrollable div. + Fixed bug where submit buttons couldn't be named submit, it's not recommended to name submit buttons submit anyway. + Fixed bug where the stylelistbox produced an exception if there was only one class in the list box. + Fixed bug where the stylelistbox wasn't updated correctly when the current class was removed. + Fixed bug where the formatblock command sometimes removed the body element. + Fixed bug where fullscreen switching in IE sometimes produced an exception when the spellchecker plugin was enabled. + Fixed issue where FF produced an empty paragraph when the editor was completely empty. + Fixed issue with size of image dialog in the advanced theme. + Fixed issues with the bbcode plugin it now also handles spans and the [font] rule. + Fixed so the style compression feature is a bit smarter to resolve issues with Opera. + Reintroduced the remove_linebreaks option, this is enabled by default. +Version 3.0b2 (2007-11-29) + Added type and compact attributes to the default valid_elements list for the ul and ol elements. + Added missing accessibility support to native list boxes in both the toolbar and dialogs. + Added missing access key for the element path for accessibility reasons. + Fixed support for loading themes from external URLs. + Fixed bug where setOuterHTML didn't work correctly when multiple elements where passed to it. + Fixed bug with visualchars plugin was moving elements around in the DOM. + Fixed bug with DIV elements that got converted into editors on IE. + Fixed bug with paste plugin using the old event API. + Fixed bug where the spellchecker was removing the word when it was ignored. + Fixed bug where fullscreen wasn't working properly. + Fixed bug where the base href element and attribute was ignored. + Fixed bug where redo function didn't work in IE. + Fixed bug where content_css didn't work as previous 2.x branch. + Fixed bug where preview dialog was throwing errors if the content_css wasn't defined. + Fixed bug where the theme_advanced_path option didn't work like the 2.x branch. + Fixed bug where the theme_advanced_statusbar_location was called theme_advanced_status_location. + Fixed bug where the strict_loading_mode option didn't work if you created editors dynamically without using the EditorManager. + Fixed bug where some language values wasn't translated such as insert and update in dialogs. + Fixed bug where some image attributes wasn't stored correctly when inserting an image. + Fixed bug where fullscreen mode didn't restore scrollbars when disabled. + Fixed bug where there was no visual representation for tab focus in toolbars on IE. + Fixed bug where HR elements wasn't treated as block elements so forced_root_block would fail on these. + Fixed bug where autosave presented warning message even when the form was submitted normally. + Fixed typo of openBrower it's now openBrowser in form_utils.js. + Fixed various HTML problems like missing TD elements and duplicated doctypes. + Fixed default values for theme_advanced_resize_horizontal, theme_advanced_resizing_use_cookie to be 2.x compatible. + Moved spellchecker JS files into the development package. + Removed support for theme_advanced_path_location since the theme_advanced_statusbar_location is the correct option name. +Version 3.0b1 (2007-11-21) + Added new tab_focus option, that enables you to specify a element id or that the next element to be focused on tab key down. + Added new addQueryValueHandler method to the tinymce.Editor class. + Added new class_filter option, this enables you to specify a function that can filter out CSS classes for the styles list box. + Added support form [url=url]title[/url] to the bbcode plugin. + Renamed the addCommandQueryState method in the tinymce.Editor class to addQueryStateHandler. + Renamed loadQue to loadQueue, to correct spelling. + Removed the createDOM method from the window manager and replace it with a createInstance method. + Removed the add to beginning of class attribute parameter of the DOMUtils.addClass method. + Fixed bug with the forced_root_block option, didn't work correctly with multiple inline elements. + Fixed bug where image dialogs replaced the current image element with a new one even when it was updated. + Fixed bug where the submit trigger wasn't executed when divs where converted into editor instances. + Fixed bug where div elements that got converted into editors didn't get a hidden input element generated for them. + Fixed bug where the the media_use_script option for the media plugin wasn't working correctly. + Fixed bug where the font size and font family listboxes wasn't updated correctly on Safari. + Fixed bug where the height of the fieldset in default image dialog for the advanced theme was to small. + Fixed bug where the font sizes behaved incorrectly after a cleanup on Safari. + Fixed bug where formatblock didn't work correctly in Safari on some elements. + Fixed bug where template plugin didn't insert content correctly unless some options where specified. + Fixed bug where charmap on Safari produced scrollbars. + Fixed bug where there was white artifacts in some dialogs due to missing background color. + Fixed bug where port was added to all external URLs if the editor was loaded from a custom port. + Fixed bug where the context menus got duplicated on Safari 3.0.4 on Mac OS X. + Fixed bug where dialogs like paste from word was huge on Firefox. + Fixed bug with media plugin not working with windows media objects. + Fixed bug where a forever loop was created if multiple instances where submitted using form.submit. + Fixed bug with editing a table produce error in IE when inlinepopups where used. + Fixed bug where the style plugin generated ugly looking style information in IE. + Fixed bug where the inline dialogs that got opened while in fullscreen mode wasn't visible. + Fixed bug where it was difficult to place the caret inside the word paste dialog. + Fixed bug where Opera produced strange border in the word paste dialog. + Fixed bug where viewport constraints could move a inlinepopup to a negative x, y position if the viewport was to small. + Fixed bug where template plugin was producing an error due to a deprecated API call. + Fixed bug where drag drop of images failed in Gecko if a document_base_url was specified. + Fixed bug where Firefox 3 failed to apply block formats like H1-H6 it still breaks on DIVs this has been reported to bugzilla. + Fixed bug where IE was producing a warning dialog about non secure items when running TinyMCE over HTTPS. + Fixed bug where the onbeforeunload event was triggered when menus or dialogs where opened. + Fixed bug where the fullscreen mode of the HTML view source box threw an error. + Fixed bug where the mceFocus command didn't work correctly. + Fixed bug where the selection could get lost in IE using inlinepopups. + Fixed so the body of the editor area has the mceContentBody class just like the 2.x branch. + Fixed so the media icon gets active when a media element is selected. +Version 3.0a3 (2007-11-13) + Added new experimental jQuery and Prototype framework adapters to the development package. + Added new translation.html file for the development package. Helps with the internationalization of TinyMCE. + Added new setup callback option, use this callback to add events to TinyMCE. This method is recommended over the old callbacks. + Added new API documetation to all classes, functions, events, properties to the Wiki with examples etc. + Added new init method to all plugins and themes, since it's shorter to write and it mimics interface capable languages better. + Fixed various CSS issues in the default skin such as alignment of split buttons and separators. + Fixed issues with mod_security. It didn't like that a content type of text/javascript was forced in a XHR. + Fixed all events so that they now pass the sender object as it's first argument. + Fixed some DOM methods so they now can take an array as input. + Fixed so addButton and the methods of the ControlManager uses less arguments and it now uses a settings object instead. + Fixed various issues with the tinymce.util.URI class. + Fixed bug in IE and Safari and the on demand gzip loading feature. + Fixed bug with moving inline windows sometimes failed in IE6. + Fixed bug where save_callback function wasn't executed at all. + Fixed bug where inlinepopups produces scrollbars if windows where moved to the corners of the browser. + Fixed bug where view HTML source failed when inserting a embedded media object. + Fixed bug where the listbox menus didn't display correctly on IE6. + Fixed bug where undo level wasn't added when editor was blurred. + Fixed bug where spellchecker wasn't disabled when fullscreen mode was enabled. + Fixed bug where Firefox could crash some times when the user switched to fullscreen mode. + Fixed bug where tinymce.ui.DropMenu didn't remove all item data when an item was removed from the menu. + Fixed bug where anchor list in advlink dialog wasn't populated correctly in Safari. + Fixed bug where it wasn't possible to edit tables in IE when inlinepopups was enabled. + Fixed bug where it wasn't possible to change the table width of an existing table. + Fixed bug where xhtmlxtras like abbr didn't work correctly on IE. + Fixed bug where IE6 had some graphics rendering issues with the inlinepopups. + Fixed bug where inlinepopup windows where moved incorrectly when they were boundary checked for min width. + Fixed bug where textareas without id or name couldn't be converted into editor instances. + Fixed bug where TinyMCE was stealing element focus on IE. + Fixed bug where the getParam method didn't handle false values correctly. + Fixed bug where inlinepopups was clipped by other TinyMCE instances or relative elements in IE. + Fixed bug where the contextmenu was clipped by other TinyMCE instances or relative elements in IE. + Fixed bug where listbox menus was clipped by other TinyMCE instances or relative elements in IE. + Fixed bug where listboxes wasn't updated correctly when the a value wasn't found by select. + Fixed various CSS issues that produced odd rendering bugs in IE. + Fixed issues with tinymce.ui.DropMenu class, it required some optional settings to be specified. + Fixed so multiple blockquotes can be removed with a easier method than before. + Optimized some of the core API to boost performance. + Removed some functions from the core API that wasn't needed. +Version 3.0a2 (2007-11-02) + Fixed critical bug where IE generaded an error on a hasAttribute call in the serialization engine. + Fixed critical bug where some dialogs didn't open in the non dev package. + Fixed bug when using the theme_advanced_styles option. Error was thrown in some dialogs. + Fixed bug where the close buttons produced an error when native windows where used. + Fixed bug in default skin so that split buttons gets activated correctly. + Fixed so plugins can be loaded from external urls outsite the plugins directory. +Version 3.0a1 (2007-11-01) + Rewrote the core and most of the plugins and themes from scratch. + Added new and improved serialization engine, faster and more powerful. + Added new internal event system, things like editor.onClick.add(func). + Added new inlinepopups plugin, the dialogs are now skinnable and uses clearlooks2 as default. + Added new contextmenu plugin, context menus can now have submenus and plugins can add items on the fly. + Added new skin support for the simple and advanced themes you can alter the whole UI using CSS. + Added new o2k7 skin for the simple and advanced themes. + Added new custom list boxes for font size/format/style etc with preview support. + Added new UI management, enabled plugins to create controls like splitbuttons or menus easier. + Added new JSON parser/serializer and JSON-RPC class to the core API. + Added new cookie utility class to the core API. + Added new Unit testing class to the core API only available in dev mode. + Added new firebug lite integration when loading the dev version of TinyMCE. + Added new Safari plugin, fixes lots compatibility of issues with Safari 3.x. + Added new URI/URL parsing it now handles the hole RFC and even some exceptions. + Added new pagebreak plugin, enables you to insert pagebreak comments like + Added new on demand loading of plugins and themes. Enables you to load and init TinyMCE at any time. + Added new throbber/progress visualization a plugin can show/hide this when it's needed. + Added new blockquote button. Enables you to wrap paragraphs in blockquotes. + Added new compat2x plugin. Will provide a TinyMCE 2.x API for older plugins. + Added new theme_advanced_resizing_min_width, theme_advanced_resizing_min_height options. + Added new theme_advanced_resizing_max_height, theme_advanced_resizing_max_height options. + Added new use_native_selects option. Enables you to toggle native listboxes on and off. + Added new docs_url option enables you to specify where the TinyMCE user documentation is located. + Added new frame and rules options for the table dialog. + Added new global rule for valid_elements/extended_valid_elements enables you to specify global attributes for all elements. + Added new deny attribute rule characher so it's possible to deny global attribute rules on specific elements. + Added new unit tests in the dev package of TinyMCE. Runs tests on the core API, commands and settings of the editor. + Readded the inline_styles option and enabled it by default so deprecated attributes are no longer used. + Removed all button images and replaced them with CSS sprite images. Reduces the number of requests needed. + Removed lots of language files and merged them into the base language files. Reduces the number of requests needed. + Removed lots of unnecessary files and merged many of them together to reduce requests and improve loading speed. + Reduced the over all script size by 33% and the number of files/requests by 75% so it loads a lot faster. + Fixed so convert_fonts_to_spans are enabled by default. So no more font tags. + Fixed so underline and strikethrough uses spans instread of deprecated U and STRIKE elements. + Fixed so indent/outdent adds/removed margin-left instead of blockquotes. + Fixed so alignment of paragraphs results in a text-align style value instead of the deprecated align attribute. + Fixed so alignment of images uses float or vertical-align style values instead of the deprecated align attribute. + Fixed so all classes from @import stylesheets gets imported into the editor. + Fixed so the directionality can toggle the dir attribute on and off. + Fixed so the fullscreen_settings can be used for all types of fullscreen modes. + Fixed so the advanced HR dialog gets displayed when inserting a HR not only on edit. + Fixed bug where word wrap didn't work in the source editor on Safari. + Fixed so non HTML elements can be used within the editor such as + Fixed various memory leaks in IE and reduced the unload cleanups needed. + Fixed so the preformatted option adds an invisible container pre tag inside the editor. + Renamed the _template plugin to example and updated it to use the new 3.x API. diff --git a/app/assets/javascripts/tinymce/examples/accessibility.html b/app/assets/javascripts/tinymce/examples/accessibility.html new file mode 100644 index 0000000..6905940 --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/accessibility.html @@ -0,0 +1,101 @@ + + + +Full featured example + + + + + + + + + +
                    +
                    +

                    Full featured example, with Accessibility settings enabled

                    + +

                    + This page has got the TinyMCE set up to work with configurations related to accessiblity enabled. + In particular +

                      +
                    • the content_css is set to false, to ensure that all default browser styles are used,
                    • +
                    • the browser_preferred_colors dialog option is used to ensure that default css is used for dialogs,
                    • +
                    • and the detect_highcontrast option has been set to ensure that highcontrast mode in Windows browsers + is detected and the toolbars are displayed in a high contrast mode.
                    • +
                    +

                    + + +
                    + +
                    + +
                    + + +
                    +
                    + + + + diff --git a/app/assets/javascripts/tinymce/examples/css/content.css b/app/assets/javascripts/tinymce/examples/css/content.css new file mode 100644 index 0000000..a76c38a --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/css/content.css @@ -0,0 +1,105 @@ +body { + background-color: #FFFFFF; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} + +td { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +pre { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +.example1 { + font-weight: bold; + font-size: 14px +} + +.example2 { + font-weight: bold; + font-size: 12px; + color: #FF0000 +} + +.tablerow1 { + background-color: #BBBBBB; +} + +thead { + background-color: #FFBBBB; +} + +tfoot { + background-color: #BBBBFF; +} + +th { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 13px; +} + +/* Basic formats */ + +.bold { + font-weight: bold; +} + +.italic { + font-style: italic; +} + +.underline { + text-decoration: underline; +} + +/* Global align classes */ + +.left { + text-align: inherit; +} + +.center { + text-align: center; +} + +.right { + text-align: right; +} + +.full { + text-align: justify +} + +/* Image and table specific aligns */ + +img.left, table.left { + float: left; + text-align: inherit; +} + +img.center, table.center { + margin-left: auto; + margin-right: auto; + text-align: inherit; +} + +img.center { + display: block; +} + +img.right, table.right { + float: right; + text-align: inherit; +} diff --git a/app/assets/javascripts/tinymce/examples/css/word.css b/app/assets/javascripts/tinymce/examples/css/word.css new file mode 100644 index 0000000..049a39f --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/css/word.css @@ -0,0 +1,53 @@ +body { + background-color: #FFFFFF; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} + +p {margin:0; padding:0;} + +td { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +pre { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +.example1 { + font-weight: bold; + font-size: 14px +} + +.example2 { + font-weight: bold; + font-size: 12px; + color: #FF0000 +} + +.tablerow1 { + background-color: #BBBBBB; +} + +thead { + background-color: #FFBBBB; +} + +tfoot { + background-color: #BBBBFF; +} + +th { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 13px; +} diff --git a/app/assets/javascripts/tinymce/examples/custom_formats.html b/app/assets/javascripts/tinymce/examples/custom_formats.html new file mode 100644 index 0000000..ba9d1eb --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/custom_formats.html @@ -0,0 +1,111 @@ + + + +Custom formats example + + + + + + + + + +
                    +
                    +

                    Custom formats example

                    + +

                    + This example shows you how to override the default formats for bold, italic, underline, strikethough and alignment to use classes instead of inline styles. + There are more examples on how to use TinyMCE in the Wiki. +

                    + + +
                    + +
                    + + + [Show] + [Hide] + [Bold] + [Get contents] + [Get selected HTML] + [Get selected text] + [Get selected element] + [Insert HTML] + [Replace selection] + +
                    + + +
                    +
                    + + + diff --git a/app/assets/javascripts/tinymce/examples/full.html b/app/assets/javascripts/tinymce/examples/full.html new file mode 100644 index 0000000..e4d187e --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/full.html @@ -0,0 +1,101 @@ + + + +Full featured example + + + + + + + + + +
                    +
                    +

                    Full featured example

                    + +

                    + This page shows all available buttons and plugins that are included in the TinyMCE core package. + There are more examples on how to use TinyMCE in the Wiki. +

                    + + +
                    + +
                    + + + [Show] + [Hide] + [Bold] + [Get contents] + [Get selected HTML] + [Get selected text] + [Get selected element] + [Insert HTML] + [Replace selection] + +
                    + + +
                    +
                    + + + + diff --git a/app/assets/javascripts/tinymce/examples/index.html b/app/assets/javascripts/tinymce/examples/index.html new file mode 100644 index 0000000..6ebfbea --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/index.html @@ -0,0 +1,10 @@ + + + + TinyMCE examples + + + + + + diff --git a/app/assets/javascripts/tinymce/examples/lists/image_list.js b/app/assets/javascripts/tinymce/examples/lists/image_list.js new file mode 100644 index 0000000..7ba049a --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/lists/image_list.js @@ -0,0 +1,9 @@ +// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system. +// There images will be displayed as a dropdown in all image dialogs if the "external_link_image_url" +// option is defined in TinyMCE init. + +var tinyMCEImageList = new Array( + // Name, URL + ["Logo 1", "media/logo.jpg"], + ["Logo 2 Over", "media/logo_over.jpg"] +); diff --git a/app/assets/javascripts/tinymce/examples/lists/link_list.js b/app/assets/javascripts/tinymce/examples/lists/link_list.js new file mode 100644 index 0000000..0d46433 --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/lists/link_list.js @@ -0,0 +1,10 @@ +// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system. +// There links will be displayed as a dropdown in all link dialogs if the "external_link_list_url" +// option is defined in TinyMCE init. + +var tinyMCELinkList = new Array( + // Name, URL + ["Moxiecode", "http://www.moxiecode.com"], + ["Freshmeat", "http://www.freshmeat.com"], + ["Sourceforge", "http://www.sourceforge.com"] +); diff --git a/app/assets/javascripts/tinymce/examples/lists/media_list.js b/app/assets/javascripts/tinymce/examples/lists/media_list.js new file mode 100644 index 0000000..79b3f1b --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/lists/media_list.js @@ -0,0 +1,14 @@ +// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system. +// There flash movies will be displayed as a dropdown in all media dialog if the "media_external_list_url" +// option is defined in TinyMCE init. + +var tinyMCEMediaList = [ + // Name, URL + ["Some Flash", "media/sample.swf"], + ["Some Quicktime", "media/sample.mov"], + ["Some AVI", "media/sample.avi"], + ["Some RealMedia", "media/sample.rm"], + ["Some Shockwave", "media/sample.dcr"], + ["Some Video", "media/sample.mp4"], + ["Some FLV", "media/sample.flv"], +]; \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/examples/lists/template_list.js b/app/assets/javascripts/tinymce/examples/lists/template_list.js new file mode 100644 index 0000000..e06d357 --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/lists/template_list.js @@ -0,0 +1,9 @@ +// This list may be created by a server logic page PHP/ASP/ASPX/JSP in some backend system. +// There templates will be displayed as a dropdown in all media dialog if the "template_external_list_url" +// option is defined in TinyMCE init. + +var tinyMCETemplateList = [ + // Name, URL, Description + ["Simple snippet", "templates/snippet1.htm", "Simple HTML snippet."], + ["Layout", "templates/layout1.htm", "HTML Layout."] +]; \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/examples/media/logo.jpg b/app/assets/javascripts/tinymce/examples/media/logo.jpg new file mode 100644 index 0000000..ad535d6 Binary files /dev/null and b/app/assets/javascripts/tinymce/examples/media/logo.jpg differ diff --git a/app/assets/javascripts/tinymce/examples/media/logo_over.jpg b/app/assets/javascripts/tinymce/examples/media/logo_over.jpg new file mode 100644 index 0000000..79fcd88 Binary files /dev/null and b/app/assets/javascripts/tinymce/examples/media/logo_over.jpg differ diff --git a/app/assets/javascripts/tinymce/examples/media/sample.avi b/app/assets/javascripts/tinymce/examples/media/sample.avi new file mode 100644 index 0000000..238bb68 Binary files /dev/null and b/app/assets/javascripts/tinymce/examples/media/sample.avi differ diff --git a/app/assets/javascripts/tinymce/examples/media/sample.dcr b/app/assets/javascripts/tinymce/examples/media/sample.dcr new file mode 100644 index 0000000..353b3ce Binary files /dev/null and b/app/assets/javascripts/tinymce/examples/media/sample.dcr differ diff --git a/app/assets/javascripts/tinymce/examples/media/sample.flv b/app/assets/javascripts/tinymce/examples/media/sample.flv new file mode 100644 index 0000000..799d137 Binary files /dev/null and b/app/assets/javascripts/tinymce/examples/media/sample.flv differ diff --git a/app/assets/javascripts/tinymce/examples/media/sample.mov b/app/assets/javascripts/tinymce/examples/media/sample.mov new file mode 100644 index 0000000..9c0a093 Binary files /dev/null and b/app/assets/javascripts/tinymce/examples/media/sample.mov differ diff --git a/app/assets/javascripts/tinymce/examples/media/sample.ram b/app/assets/javascripts/tinymce/examples/media/sample.ram new file mode 100644 index 0000000..e2ce04c --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/media/sample.ram @@ -0,0 +1 @@ +http://streaming.uga.edu/samples/ayp_lan.rm \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/examples/media/sample.rm b/app/assets/javascripts/tinymce/examples/media/sample.rm new file mode 100644 index 0000000..8947706 Binary files /dev/null and b/app/assets/javascripts/tinymce/examples/media/sample.rm differ diff --git a/app/assets/javascripts/tinymce/examples/media/sample.swf b/app/assets/javascripts/tinymce/examples/media/sample.swf new file mode 100644 index 0000000..9f5fc4a Binary files /dev/null and b/app/assets/javascripts/tinymce/examples/media/sample.swf differ diff --git a/app/assets/javascripts/tinymce/examples/menu.html b/app/assets/javascripts/tinymce/examples/menu.html new file mode 100644 index 0000000..e48650a --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/menu.html @@ -0,0 +1,18 @@ + + + +Menu + + + +

                    Examples

                    +Full featured +Simple theme +Skin support +Word processor +Custom formats +Accessibility Options + + diff --git a/app/assets/javascripts/tinymce/examples/simple.html b/app/assets/javascripts/tinymce/examples/simple.html new file mode 100644 index 0000000..70720ca --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/simple.html @@ -0,0 +1,47 @@ + + + +Simple theme example + + + + + + + + + +
                    +

                    Simple theme example

                    + +

                    + This page shows you the simple theme and it's core functionality you can extend it by changing the code use the advanced theme if you need to configure/add more buttons etc. + There are more examples on how to use TinyMCE in the Wiki. +

                    + + + + +
                    + + +
                    + + + diff --git a/app/assets/javascripts/tinymce/examples/skins.html b/app/assets/javascripts/tinymce/examples/skins.html new file mode 100644 index 0000000..c150858 --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/skins.html @@ -0,0 +1,216 @@ + + + +Skin support example + + + + + + + + + +
                    +

                    Skin support example

                    + +

                    + This page displays the two skins that TinyMCE comes with. You can make your own by creating a CSS file in themes/advanced/skins//ui.css + There are more examples on how to use TinyMCE in the Wiki. +

                    + + + + +
                    + + + +
                    + + + +
                    + + + +
                    + + +
                    + + + diff --git a/app/assets/javascripts/tinymce/examples/templates/layout1.htm b/app/assets/javascripts/tinymce/examples/templates/layout1.htm new file mode 100644 index 0000000..a38df3e --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/templates/layout1.htm @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +
                    Column 1Column 2
                    Username: {$username}Staffid: {$staffid}
                    diff --git a/app/assets/javascripts/tinymce/examples/templates/snippet1.htm b/app/assets/javascripts/tinymce/examples/templates/snippet1.htm new file mode 100644 index 0000000..b2520be --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/templates/snippet1.htm @@ -0,0 +1 @@ +This is just some code. diff --git a/app/assets/javascripts/tinymce/examples/translate.html b/app/assets/javascripts/tinymce/examples/translate.html new file mode 100644 index 0000000..1427afe --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/translate.html @@ -0,0 +1,80 @@ + + + +Full featured example + + + + + + + + + + +
                    +

                    Translation

                    + +

                    This page enables you to translate TinyMCE by using XML files.

                    +

                    Steps to translate:

                    +
                      +
                    1. Download one of the language XML files from the TinyMCE site.
                    2. +
                    3. Place it in /jscripts/tiny_mce/langs directory, for example /jscripts/tiny_mce/langs/sv.xml.
                    4. +
                    5. Change the language init option in this file to match the XML file code. For example: sv
                    6. +
                    7. TinyMCE will now use the XML file instead of the .js versions.
                    8. +
                    9. Modify the XML file until everything is translated
                    10. +
                    11. Modify the author information, this is optional.
                    12. +
                    13. Upload the XML file to the TinyMCE site to share it with others.
                    14. +
                    15. You can now download the .js versions of the language pack from the TinyMCE site.
                    16. +
                    + + +
                    + + + diff --git a/app/assets/javascripts/tinymce/examples/word.html b/app/assets/javascripts/tinymce/examples/word.html new file mode 100644 index 0000000..d827b6f --- /dev/null +++ b/app/assets/javascripts/tinymce/examples/word.html @@ -0,0 +1,72 @@ + + + +Word processor example + + + + + + + + + +
                    +

                    Word processor example

                    + +

                    + This page shows you how to configure TinyMCE to work more like common word processors. + There are more examples on how to use TinyMCE in the Wiki. +

                    + + + + +
                    + + +
                    + + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/de.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/de.js new file mode 100644 index 0000000..76faca9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/de.js @@ -0,0 +1,155 @@ +tinyMCE.addI18n({de:{ +common:{ +edit_confirm:"Wollen Sie diesen Textbereich mit WYSIWYG bearbeiten?", +apply:"\u00DCbernehmen", +insert:"Einf\u00FCgen", +update:"Aktualisieren", +cancel:"Abbrechen", +close:"Schlie\u00DFen", +browse:"Durchsuchen", +class_name:"CSS-Klasse", +not_set:"- unbestimmt -", +clipboard_msg:"Kopieren, Ausschneiden und Einf\u00FCgen sind im Mozilla Firefox nicht m\u00F6glich.\nM\u00F6chten Sie mehr \u00FCber dieses Problem erfahren?", +clipboard_no_support:"Wird derzeit in Ihrem Browser nicht unterst\u00FCtzt. Bitte benutzen Sie stattdessen die Tastenk\u00FCrzel.", +popup_blocked:"Leider hat Ihr Popup-Blocker ein Fenster unterbunden, das f\u00FCr den Betrieb dieses Programms n\u00F6tig ist. Bitte deaktivieren Sie den Popup-Blocker f\u00FCr diese Seite.", +invalid_data:"Fehler: Sie haben ung\u00FCltige Werte eingegeben (rot markiert).", +more_colors:"Weitere Farben" +}, +contextmenu:{ +align:"Ausrichtung", +left:"Linksb\u00FCndig", +center:"Zentriert", +right:"Rechtsb\u00FCndig", +full:"Blocksatz" +}, +insertdatetime:{ +date_fmt:"%d.%m.%Y", +time_fmt:"%H:%M:%S", +insertdate_desc:"Datum einf\u00FCgen", +inserttime_desc:"Zeit einf\u00FCgen", +months_long:"Januar,Februar,M\u00E4rz,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember", +months_short:"Jan,Feb,M\u00E4rz,Apr,Mai,Juni,Juli,Aug,Sept,Okt,Nov,Dez", +day_long:"Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag", +day_short:"So,Mo,Di,Mi,Do,Fr,Sa,So" +}, +print:{ +print_desc:"Drucken" +}, +preview:{ +preview_desc:"Vorschau" +}, +directionality:{ +ltr_desc:"Schrift von links nach rechts", +rtl_desc:"Schrift von rechts nach links" +}, +layer:{ +insertlayer_desc:"Neue Ebene einf\u00FCgen", +forward_desc:"Vor verschieben", +backward_desc:"Zur\u00FCck verschieben", +absolute_desc:"Absolute Positionierung", +content:"Neue Ebene..." +}, +save:{ +save_desc:"Speichern", +cancel_desc:"Alle \u00C4nderungen verwerfen" +}, +nonbreaking:{ +nonbreaking_desc:"Gesch\u00FCtztes Leerzeichen einf\u00FCgen" +}, +iespell:{ +iespell_desc:"Rechtschreibpr\u00FCfung", +download:"ieSpell konnte nicht gefunden werden. Wollen Sie es installieren?" +}, +advhr:{ +advhr_desc:"Trennlinie" +}, +emotions:{ +emotions_desc:"Smilies" +}, +searchreplace:{ +search_desc:"Suchen", +replace_desc:"Suchen/Ersetzen" +}, +advimage:{ +image_desc:"Bild einf\u00FCgen/ersetzen" +}, +advlink:{ +link_desc:"Link einf\u00FCgen/bearbeiten" +}, +xhtmlxtras:{ +cite_desc:"Quellenangabe", +abbr_desc:"Abk\u00FCrzung", +acronym_desc:"Akronym", +del_desc:"Entfernter Text", +ins_desc:"Eingef\u00FCgter Text", +attribs_desc:"Attribute einf\u00FCgen/bearbeiten" +}, +style:{ +desc:"CSS-Styles bearbeiten" +}, +paste:{ +paste_text_desc:"Als normalen Text einf\u00FCgen", +paste_word_desc:"Mit Formatierungen (aus Word) einf\u00FCgen", +selectall_desc:"Alles ausw\u00E4hlen" +}, +paste_dlg:{ +text_title:"Dr\u00FCcken Sie auf Ihrer Tastatur Strg+V, um den Text einzuf\u00FCgen.", +text_linebreaks:"Zeilenumbr\u00FCche beibehalten", +word_title:"Dr\u00FCcken Sie auf Ihrer Tastatur Strg+V, um den Text einzuf\u00FCgen." +}, +table:{ +desc:"Tabelle erstellen/bearbeiten", +row_before_desc:"Zeile oberhalb einf\u00FCgen", +row_after_desc:"Zeile unterhalb einf\u00FCgen", +delete_row_desc:"Zeile l\u00F6schen", +col_before_desc:"Spalte links einf\u00FCgen", +col_after_desc:"Spalte rechts einf\u00FCgen", +delete_col_desc:"Spalte l\u00F6schen", +split_cells_desc:"Verbundene Zellen trennen", +merge_cells_desc:"Zellen verbinden", +row_desc:"Eigenschaften der Zeile", +cell_desc:"Eigenschaften der Zelle", +props_desc:"Eigenschaften der Tabelle", +paste_row_before_desc:"Zeile oberhalb aus der Zwischenablage einf\u00FCgen", +paste_row_after_desc:"Zeile unterhalb aus der Zwischenablage einf\u00FCgen", +cut_row_desc:"Zeile ausschneiden", +copy_row_desc:"Zeile kopieren", +del:"Tabelle l\u00F6schen", +row:"Zeile", +col:"Spalte", +cell:"Zelle", +cellprops_delta_width:"150" +}, +autosave:{ +unload_msg:"Ihre \u00C4nderungen werden verloren gehen, wenn Sie die Seite verlassen." +}, +fullscreen:{ +desc:"Vollbildschirm" +}, +media:{ +desc:"Multimedia einbetten/bearbeiten", +edit:"Multimediaeinbettung bearbeiten" +}, +fullpage:{ +desc:"Dokument-Eigenschaften" +}, +template:{ +desc:"Vorgefertigter Vorlageninhalt einf\u00FCgen" +}, +visualchars:{ +desc:"Sichtbarkeit der Steuerzeichen an/aus" +}, +spellchecker:{ +desc:"Rechtschreibpr\u00FCfung an/aus", +menu:"Einstellungen der Rechtschreibpr\u00FCfung", +ignore_word:"Wort ignorieren", +ignore_words:"Alle ignorieren", +langs:"Sprachen", +wait:"Bitte warten...", +sug:"Vorschl\u00E4ge", +no_sug:"Keine Vorschl\u00E4ge", +no_mpell:"Keine Rechtschreibfehler gefunden." +}, +pagebreak:{ +desc:"Seitenumbruch einf\u00FCgen" +}}}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/en.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/en.js new file mode 100644 index 0000000..8a80d46 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/en.js @@ -0,0 +1,223 @@ +tinyMCE.addI18n({en:{ +common:{ +edit_confirm:"Do you want to use the WYSIWYG mode for this textarea?", +apply:"Apply", +insert:"Insert", +update:"Update", +cancel:"Cancel", +close:"Close", +browse:"Browse", +class_name:"Class", +not_set:"-- Not set --", +clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?", +clipboard_no_support:"Currently not supported by your browser, use keyboard shortcuts instead.", +popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.", +invalid_data:"{#field} is invalid", +invalid_data_number:"{#field} must be a number", +invalid_data_min:"{#field} must be a number greater than {#min}", +invalid_data_size:"{#field} must be a number or percentage", +more_colors:"More colors" +}, +colors:{ +'000000':'Black', +'993300':'Burnt orange', +'333300':'Dark olive', +'003300':'Dark green', +'003366':'Dark azure', +'000080':'Navy Blue', +'333399':'Indigo', +'333333':'Very dark gray', +'800000':'Maroon', +'FF6600':'Orange', +'808000':'Olive', +'008000':'Green', +'008080':'Teal', +'0000FF':'Blue', +'666699':'Grayish blue', +'808080':'Gray', +'FF0000':'Red', +'FF9900':'Amber', +'99CC00':'Yellow green', +'339966':'Sea green', +'33CCCC':'Turquoise', +'3366FF':'Royal blue', +'800080':'Purple', +'999999':'Medium gray', +'FF00FF':'Magenta', +'FFCC00':'Gold', +'FFFF00':'Yellow', +'00FF00':'Lime', +'00FFFF':'Aqua', +'00CCFF':'Sky blue', +'993366':'Brown', +'C0C0C0':'Silver', +'FF99CC':'Pink', +'FFCC99':'Peach', +'FFFF99':'Light yellow', +'CCFFCC':'Pale green', +'CCFFFF':'Pale cyan', +'99CCFF':'Light sky blue', +'CC99FF':'Plum', +'FFFFFF':'White' +}, +contextmenu:{ +align:"Alignment", +left:"Left", +center:"Center", +right:"Right", +full:"Full" +}, +insertdatetime:{ +date_fmt:"%Y-%m-%d", +time_fmt:"%H:%M:%S", +insertdate_desc:"Insert date", +inserttime_desc:"Insert time", +months_long:"January,February,March,April,May,June,July,August,September,October,November,December", +months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", +day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday", +day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun" +}, +print:{ +print_desc:"Print" +}, +preview:{ +preview_desc:"Preview" +}, +directionality:{ +ltr_desc:"Direction left to right", +rtl_desc:"Direction right to left" +}, +layer:{ +insertlayer_desc:"Insert new layer", +forward_desc:"Move forward", +backward_desc:"Move backward", +absolute_desc:"Toggle absolute positioning", +content:"New layer..." +}, +save:{ +save_desc:"Save", +cancel_desc:"Cancel all changes" +}, +nonbreaking:{ +nonbreaking_desc:"Insert non-breaking space character" +}, +iespell:{ +iespell_desc:"Run spell checking", +download:"ieSpell not detected. Do you want to install it now?" +}, +advhr:{ +advhr_desc:"Horizontal rule" +}, +emotions:{ +emotions_desc:"Emotions" +}, +searchreplace:{ +search_desc:"Find", +replace_desc:"Find/Replace" +}, +advimage:{ +image_desc:"Insert/edit image" +}, +advlink:{ +link_desc:"Insert/edit link" +}, +xhtmlxtras:{ +cite_desc:"Citation", +abbr_desc:"Abbreviation", +acronym_desc:"Acronym", +del_desc:"Deletion", +ins_desc:"Insertion", +attribs_desc:"Insert/Edit Attributes" +}, +style:{ +desc:"Edit CSS Style" +}, +paste:{ +paste_text_desc:"Paste as Plain Text", +paste_word_desc:"Paste from Word", +selectall_desc:"Select All", +plaintext_mode_sticky:"Paste is now in plain text mode. Click again to toggle back to regular paste mode. After you paste something you will be returned to regular paste mode.", +plaintext_mode:"Paste is now in plain text mode. Click again to toggle back to regular paste mode." +}, +paste_dlg:{ +text_title:"Use CTRL+V on your keyboard to paste the text into the window.", +text_linebreaks:"Keep linebreaks", +word_title:"Use CTRL+V on your keyboard to paste the text into the window." +}, +table:{ +desc:"Inserts a new table", +row_before_desc:"Insert row before", +row_after_desc:"Insert row after", +delete_row_desc:"Delete row", +col_before_desc:"Insert column before", +col_after_desc:"Insert column after", +delete_col_desc:"Remove column", +split_cells_desc:"Split merged table cells", +merge_cells_desc:"Merge table cells", +row_desc:"Table row properties", +cell_desc:"Table cell properties", +props_desc:"Table properties", +paste_row_before_desc:"Paste table row before", +paste_row_after_desc:"Paste table row after", +cut_row_desc:"Cut table row", +copy_row_desc:"Copy table row", +del:"Delete table", +row:"Row", +col:"Column", +cell:"Cell" +}, +autosave:{ +unload_msg:"The changes you made will be lost if you navigate away from this page.", +restore_content:"Restore auto-saved content.", +warning_message:"If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?." +}, +fullscreen:{ +desc:"Toggle fullscreen mode" +}, +media:{ +desc:"Insert / edit embedded media", +edit:"Edit embedded media" +}, +fullpage:{ +desc:"Document properties" +}, +template:{ +desc:"Insert predefined template content" +}, +visualchars:{ +desc:"Visual control characters on/off." +}, +spellchecker:{ +desc:"Toggle spellchecker", +menu:"Spellchecker settings", +ignore_word:"Ignore word", +ignore_words:"Ignore all", +langs:"Languages", +wait:"Please wait...", +sug:"Suggestions", +no_sug:"No suggestions", +no_mpell:"No misspellings found.", +learn_word:"Learn word" +}, +pagebreak:{ +desc:"Insert page break." +}, +advlist:{ +types:"Types", +def:"Default", +lower_alpha:"Lower alpha", +lower_greek:"Lower greek", +lower_roman:"Lower roman", +upper_alpha:"Upper alpha", +upper_roman:"Upper roman", +circle:"Circle", +disc:"Disc", +square:"Square" +}, +aria:{ +rich_text_area:"Rich Text Area" +}, +wordcount:{ +words: 'Words: ' +} +}}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/eo.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/eo.js new file mode 100644 index 0000000..e48d7b6 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/eo.js @@ -0,0 +1 @@ +tinyMCE.addI18n({eo:{common:{"more_colors":"Pliaj koloroj","invalid_data":"Eraro: Nevalidaj valoroj estas ru\u011dmarkitaj.","popup_blocked":"Oni detektis ke via retumilo baris fenestron kiu estas esenca por la programo. Vi bezonas malaktivigi la \u015dprucfenestroblokilo por uzi \u0109i tiun ilon.","clipboard_no_support":"Via retumilo ne subtenas \u0109i tiun eblon. Uzu la klavkombinojn.","clipboard_msg":"Kopii/eltondi/alglui ne estas disponeblaj en Mozilla nek Firefox.\\n\u0108u vi volas pliajn informojn pri \u0109i tiu problemo?","not_set":"-- N/A --","class_name":"Klaso",browse:"Ser\u0109i",close:"Fermi",cancel:"Rezigni",update:"\u011cisdatigi",insert:"Enmeti",apply:"Apliki","edit_confirm":"\u0108u vi volas uzi la spertan redaktre\u011dimon en \u0109i tiu tekstokampo?"},contextmenu:{full:"\u011cisrandigite",right:"Dekstre",center:"Centre",left:"Maldekstre",align:"Liniigo"},insertdatetime:{"day_short":"Dim,Lun,Mar,Mer,\u0134a\u016d,Ven,Sab,Dim","day_long":"Diman\u0109o,Lundo,Mardo,Merkredo,\u0134a\u016ddo,Vendredo,Sabato,Diman\u0109o","months_short":"Jan,Feb,Mar,Apr,Maj,Jun,Jul,A\u016dg,Sep,Okt,Nov,Dec","months_long":"Januaro,Februaro,Marto,Aprilo,Majo,Junio,Julio,A\u016dgusto,Septembro,Oktobro,Novembro,Decembro","inserttime_desc":"Enmeti horon","insertdate_desc":"Enmeti daton","time_fmt":"%H:%M:%S","date_fmt":"%Y-%m-%d"},print:{"print_desc":"Presi"},preview:{"preview_desc":"Anta\u016dvidi"},directionality:{"rtl_desc":"Dekstre-Maldekstren","ltr_desc":"Maldekstre-Dekstren"},layer:{content:"Nova tavolo...","absolute_desc":"\u015can\u011di al absoluta pozicio","backward_desc":"Movi malanta\u016den","forward_desc":"Movi anta\u016den","insertlayer_desc":"Enmeti novan tavolon"},save:{"save_desc":"Konservi","cancel_desc":"Nuligi \u0109iujn \u015dan\u011dojn"},nonbreaking:{"nonbreaking_desc":"Enmeti nerompeblan spaceton"},iespell:{download:"Kromprogramo por literumado ne detektita. \u0108u vi volas instali \u011din nun?","iespell_desc":"Kontroli literumadon"},advhr:{"advhr_desc":"Horizontala disigilo","delta_height":"","delta_width":""},emotions:{"emotions_desc":"Viza\u011detoj","delta_height":"","delta_width":""},searchreplace:{"replace_desc":"Ser\u0109i/anstata\u016digi","search_desc":"Ser\u0109i","delta_width":"","delta_height":""},advimage:{"image_desc":"Enmeti/redakti","delta_width":"","delta_height":""},advlink:{"link_desc":"Enmeti/redakti","delta_height":"","delta_width":""},xhtmlxtras:{"attribs_desc":"Enmeti/Redakti atributojn","ins_desc":"Enmeti","del_desc":"Forvi\u015di","acronym_desc":"Akronimo","abbr_desc":"Mallongigo","cite_desc":"Cita\u0135o","attribs_delta_height":"","attribs_delta_width":"","ins_delta_height":"","ins_delta_width":"","del_delta_height":"","del_delta_width":"","acronym_delta_height":"","acronym_delta_width":"","abbr_delta_height":"","abbr_delta_width":"","cite_delta_height":"","cite_delta_width":""},style:{desc:"Redakti CSS","delta_height":"","delta_width":""},paste:{"plaintext_mode":"La alglukomando estas en re\u011dimo de plata teksto. Klaku denove por reveni al la normala re\u011dimo.","plaintext_mode_sticky":"La alglukomando estas en re\u011dimo de plata teksto. Klaku denove por reveni al la normala re\u011dimo. Post algluo \u011di revenos al la normala re\u011dimo.","selectall_desc":"Elekti \u0109ion","paste_word_desc":"Alglui (kopiita el WORD)","paste_text_desc":"Alglui kiel platan tekston"},"paste_dlg":{"word_title":"Uzu CTRL V por alglui tekston en la fenestron.","text_linebreaks":"Konservi linisaltojn","text_title":"Uzu CTRL V por alglui tekston en la fenestron."},table:{cell:"\u0108elo",col:"Kolumno",row:"Linio",del:"Forvi\u015di tabelon","copy_row_desc":"Kopii linion","cut_row_desc":"Eltondi linion","paste_row_after_desc":"Alglui linion poste","paste_row_before_desc":"Alglui linion anta\u016de","props_desc":"Atributoj de tabelo","cell_desc":"Atributoj de \u0109eloj","row_desc":"Atributoj de liniioj","merge_cells_desc":"Unuigi \u0109elojn","split_cells_desc":"Dividi \u0109elojn","delete_col_desc":"Forigi kolumnon","col_after_desc":"Enmeti kolumnon poste","col_before_desc":"Enmeti kolumnon anta\u016de","delete_row_desc":"Forvi\u015di linion","row_after_desc":"Enmeti linion poste","row_before_desc":"Enmeti linion anta\u016de",desc:"Enmeti novan tabelon","merge_cells_delta_height":"","merge_cells_delta_width":"","table_delta_height":"","table_delta_width":"","cellprops_delta_height":"","cellprops_delta_width":"","rowprops_delta_height":"","rowprops_delta_width":""},autosave:{"warning_message":"Se vi resta\u016dros la enhavon, vi perdos \u0109ion kio estas aktuale en la redaktilo.\\n\\n\u0108u vi certas ke vi volas resta\u016dri la konservitan enhavon?","restore_content":"Resta\u016dras la enhavon a\u016dtomate konservitan.","unload_msg":"Vi perdos la faritajn \u015dan\u011dojn se vi eliros \u0109i tiun pa\u011don."},fullscreen:{desc:"Plenekrane"},media:{edit:"Redakti enhavon enkonstruitan",desc:"Enmeti/Redakti enhavon enkonstruitan","delta_height":"","delta_width":""},fullpage:{desc:"Atributoj de la dokumento","delta_width":"","delta_height":""},template:{desc:"Enmeti \u015dablonon"},visualchars:{desc:"Vidkontrolkodoj \u015daltitaj/mal\u015daltitaj"},spellchecker:{desc:"(Mal)\u015calti literumadon",menu:"Agordoj pri ortografio","ignore_word":"Ignori vorton","ignore_words":"Ignori \u0109ion",langs:"Lingvoj",wait:"Atendu...",sug:"Sugestoj","no_sug":"Sen sugestoj","no_mpell":"Neniu ortografieraro trovita."},pagebreak:{desc:"Enmeti pa\u011dosalton."},advlist:{types:"Tipoj",def:"Defa\u016dlta","lower_alpha":"Minuskla alfabeto","lower_greek":"Greka alfabeto","lower_roman":"Minusklaj romanaj ciferoj","upper_alpha":"Majuskla alfabeto","upper_roman":"Majusklaj romanaj ciferoj",circle:"Cirklo",disc:"Disko",square:"Kvadrato"}}}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/es.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/es.js new file mode 100644 index 0000000..d9ab9a6 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/es.js @@ -0,0 +1,172 @@ +tinyMCE.addI18n({es:{ +common:{ +edit_confirm:" \u00BFDesea utilizar el modo WYSIWYG para esta caja de texto?", +apply:"Aplicar", +insert:"Insertar", +update:"Actualizar", +cancel:"Cancelar", +close:"Cerrar", +browse:"Examinar", +class_name:"Clase", +not_set:"-- Ninguno --", +clipboard_msg:"Copiar/Cortar/Pegar no se encuentra disponible en Mozilla y Firefox.\n \u00BFDesea obtener m\u00E1s informaci\u00F3n acerca de este tema?", +clipboard_no_support:"Su navegador no soporta las funciones de cortapapeles, use los accesos por teclado.", +popup_blocked:"Lo sentimos, su bloqueo de ventanas emergentes ha deshabilitado una ventana que provee funcionalidades a la aplicaci\u00F3n. Necesita deshabilitar este bloqueo en este sitio para poder utilizar todas las funciones.", +invalid_data:"Error: Introdujo un valor no v\u00E1lido, est\u00E1n marcados en rojo.", +more_colors:"M\u00E1s colores" +}, +contextmenu:{ +align:"Alineaci\u00F3n", +left:"Izquierda", +center:"Centrado", +right:"Derecha", +full:"Justificado" +}, +insertdatetime:{ +date_fmt:"%d-%m-%Y", +time_fmt:"%H:%M:%S", +insertdate_desc:"Insertar fecha", +inserttime_desc:"Insertar hora", +months_long:"Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre", +months_short:"Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic", +day_long:"Domingo,Lunes,Martes,Mi\u00E9rcoles,Jueves,Viernes,S\u00E1bado,Domingo", +day_short:"Dom,Lun,Mar,Mie,Jue,Vie,Sab,Dom" +}, +print:{ +print_desc:"Imprimir" +}, +preview:{ +preview_desc:"Vista previa" +}, +directionality:{ +ltr_desc:"Direcci\u00F3n izquierda a derecha", +rtl_desc:"Direcci\u00F3n derecha a izquierda" +}, +layer:{ +insertlayer_desc:"Insertar nueva capa", +forward_desc:"Avanzar", +backward_desc:"Retroceder", +absolute_desc:"Cambiar a posici\u00F3n absoluta", +content:"Nueva capa..." +}, +save:{ +save_desc:"Guardar", +cancel_desc:"Cancelar todos los cambios" +}, +nonbreaking:{ +nonbreaking_desc:"Insertar caracter de espacio 'non-breaking'" +}, +iespell:{ +iespell_desc:"Corrector ortogr\u00E1fico", +download:"No se detect\u00F3 'ieSpell'. \u00BFDesea instalarlo ahora?" +}, +advhr:{ +advhr_desc:"Regla horizontal" +}, +emotions:{ +emotions_desc:"Emoticones" +}, +searchreplace:{ +search_desc:"Buscar", +replace_desc:"Buscar/Reemplazar" +}, +advimage:{ +image_desc:"Insertar/editar imagen" +}, +advlink:{ +link_desc:"Insertar/editar hiperv\u00EDnculo" +}, +xhtmlxtras:{ +cite_desc:"Cita", +abbr_desc:"Abreviatura", +acronym_desc:"Acr\u00F3nimo", +del_desc:"Borrado", +ins_desc:"Inserci\u00F3n", +attribs_desc:"Insertar/Editar atributos" +}, +style:{ +desc:"Editar Estilo CSS" +}, +paste:{ +paste_text_desc:"Pegar como texto plano", +paste_word_desc:"Pegar desde Word", +selectall_desc:"Elegir todo", +plaintext_mode_sticky:"Paste is now in plain text mode. Click again to toggle back to regular paste mode. After you paste something you will be returned to regular paste mode.", +plaintext_mode:"Paste is now in plain text mode. Click again to toggle back to regular paste mode." +}, +paste_dlg:{ +text_title:"Use CTRL+V en su teclado para pegar el texto en la ventana.", +text_linebreaks:"Keep linebreaks", +word_title:"Use CTRL+V en su teclado para pegar el texto en la ventana." +}, +table:{ +desc:"Inserta una nueva tabla", +row_before_desc:"Insertar fila (antes)", +row_after_desc:"Insertar fila (despu\u00E9s)", +delete_row_desc:"Suprimir fila", +col_before_desc:"Insertar columna (antes)", +col_after_desc:"Insertar columna (despu\u00E9s)", +delete_col_desc:"Suprimir columna", +split_cells_desc:"Dividir celdas", +merge_cells_desc:"Vincular celdas", +row_desc:"Propiedades de la fila", +cell_desc:"Propiedades de la celda", +props_desc:"Propiedades de la tabla", +paste_row_before_desc:"Pegar filas (antes)", +paste_row_after_desc:"Pegar filas (despu\u00E9s)", +cut_row_desc:"Cortar fila", +copy_row_desc:"Copiar fila", +del:"Eliminar tabla", +row:"Fila", +col:"Columna", +cell:"Celda" +}, +autosave:{ +unload_msg:"Los cambios realizados se perder\u00E1n si sale de esta p\u00E1gina.", +restore_content:"Reestablecer contenido guardado autom\u00E1ticamente", +warning_message:"Se reestablece en contenido guardado, perder\u00E1 todo el contenido que est\u00E1 actualmente en el editor.\n\nEst\u00E1 seguro de que quiere reestablecer el contenido guardado." +}, +fullscreen:{ +desc:"Cambiar a modo Pantalla Completa" +}, +media:{ +desc:"Insertar/editar medio embebido", +edit:"Editar medio embebido" +}, +fullpage:{ +desc:"Propiedades del documento", +delta_width:"Ancho", +delta_height:"Alto" +}, +template:{ +desc:"Insertar contenido de plantilla predefinida" +}, +visualchars:{ +desc:"Caracteres de control ON/OFF." +}, +spellchecker:{ +desc:"Cambiar a corrector ortogr\u00E1fico", +menu:"Configuraci\u00F3n de corrector ortogr\u00E1fico", +ignore_word:"Ignorar", +ignore_words:"Ignorar todo", +langs:"Idiomas", +wait:"Espere...", +sug:"Sugerencias", +no_sug:"Sin sugerencias", +no_mpell:"No se encontraron errores." +}, +pagebreak:{ +desc:"Insertar fin de p\u00E1gina" +}, +advlist:{ +types:"Tipo", +def:"Preestablecido", +lower_alpha:"Menos opaco", +lower_greek:"Menos greek", +lower_roman:"Menos roman", +upper_alpha:"M\u00E1s opaco", +upper_roman:"M\u00E1s roman", +circle:"Circulo", +disc:"Disc", +square:"Cuadro" +}}}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/fr.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/fr.js new file mode 100644 index 0000000..40238fc --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/fr.js @@ -0,0 +1,154 @@ +tinyMCE.addI18n({fr:{ +common:{ +edit_confirm:"Voulez-vous utiliser le mode WYSIWYG pour cette zone de texte?", +apply:"Appliquer", +insert:"Ins\u00E9rer", +update:"Mettre \u00E0 jour", +cancel:"Annuler", +close:"Fermer", +browse:"Naviguer", +class_name:"Classe", +not_set:"-- Non init. --", +clipboard_msg:"Copier/Couper/Coller n'est pas disponible sous Mozilla et sous Firefox.\nVoulez-vous plus d'information sur ce probl\u00E8me?", +clipboard_no_support:"Actuellement non support\u00E9 par votre navigateur.\r\n Utilisez les raccourcis clavier \u00E0 ma place.", +popup_blocked:"D\u00E9sol\u00E9, nous avons d\u00E9tect\u00E9 que votre bloqueur de popup a bloqu\u00E9 une fen\u00EAtre dont l'application a besoin. Vous devez d\u00E9sactiver votre bloqueur de popup pour pouvoir utiliser cet outil.", +invalid_data:"Erreur: Valeurs incorrectes entr\u00E9es. Elles sont marqu\u00E9es en rouge.", +more_colors:"Plus de couleurs" +}, +contextmenu:{ +align:"Alignement", +left:"Gauche", +center:"Centr\u00E9", +right:"Droite", +full:"Justifi\u00E9" +}, +insertdatetime:{ +date_fmt:"%d-%m-%Y", +time_fmt:"%H:%M:%S", +insertdate_desc:"Ins\u00E9rer date", +inserttime_desc:"Ins\u00E9rer heure", +months_long:"Janvier,F\u00E9vrier,Mars,Avril,Mai,Juin,Juillet,Ao\u00FBt,Septembre,Octobre,Novembre,D\u00E9cembre", +months_short:"Jan,F\u00E9v,Mar,Avr,Mai,Juin,Juil,Ao\u00FBt,Sep,Oct,Nov,D\u00E9c", +day_long:"Dimanche,Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimanche", +day_short:"Dim,Lun,Mar,Mer,Jeu,Ven,Sam,Dim" +}, +print:{ +print_desc:"Imprimer" +}, +preview:{ +preview_desc:"Pr\u00E9visualiser" +}, +directionality:{ +ltr_desc:"\u00C9criture de gauche \u00E0 droite", +rtl_desc:"\u00C9criture de droite \u00E0 gauche" +}, +layer:{ +insertlayer_desc:"Ins\u00E9rer une nouvelle couche", +forward_desc:"D\u00E9placer vers l'avant", +backward_desc:"D\u00E9placer vers l'arri\u00E8re", +absolute_desc:"Activer le positionnement absolu", +content:"Nouvelle couche\u2026" +}, +save:{ +save_desc:"Sauver", +cancel_desc:"Annuler tous les changements" +}, +nonbreaking:{ +nonbreaking_desc:"Ins\u00E9rer une espace ins\u00E9cable" +}, +iespell:{ +iespell_desc:"Lancer le v\u00E9rificateur d'orthographe", +download:"ieSpell non install\u00E9. Voulez-vous l'installer maintenant?" +}, +advhr:{ +advhr_desc:"Ins\u00E9rer trait horizontal" +}, +emotions:{ +emotions_desc:"\u00C9motions" +}, +searchreplace:{ +search_desc:"Chercher", +replace_desc:"Chercher/Remplacer" +}, +advimage:{ +image_desc:"Ins\u00E9rer/\u00C9diter image" +}, +advlink:{ +link_desc:"Ins\u00E9rer/\u00C9diter lien" +}, +xhtmlxtras:{ +cite_desc:"Citation", +abbr_desc:"Abr\u00E9viation", +acronym_desc:"Acronyme", +del_desc:"Effacement", +ins_desc:"Insertion", +attribs_desc:"Ins\u00E9rer/\u00C9diter les attributs" +}, +style:{ +desc:"\u00C9diter la feuille de style CSS" +}, +paste:{ +paste_text_desc:"Coller en tant que texte brut", +paste_word_desc:"Coller \u00E0 partir d'un texte cr\u00E9\u00E9 sous Word", +selectall_desc:"S\u00E9lectionner tout" +}, +paste_dlg:{ +text_title:"Utilisez CTRL+V sur votre clavier pour coller le texte dans la fen\u00EAtre.", +text_linebreaks:"Conserver les sauts de ligne", +word_title:"Utilisez CTRL+V sur votre clavier pour coller le texte dans la fen\u00EAtre." +}, +table:{ +desc:"Ins\u00E9rer un nouveau tableau", +row_before_desc:"Ins\u00E9rer ligne avant", +row_after_desc:"Ins\u00E9rer ligne apr\u00E8s", +delete_row_desc:"Effacer ligne", +col_before_desc:"Ins\u00E9rer colonne avant", +col_after_desc:"Ins\u00E9rer colonne apr\u00E8s", +delete_col_desc:"Effacer colonne", +split_cells_desc:"Scinder les cellules fusionn\u00E9es", +merge_cells_desc:"Fusionner les cellules", +row_desc:"Propri\u00E9t\u00E9s de la ligne", +cell_desc:"Propri\u00E9t\u00E9s de la cellule", +props_desc:"Propri\u00E9t\u00E9s du tableau", +paste_row_before_desc:"Coller la ligne avant", +paste_row_after_desc:"Coller la ligne apr\u00E8s", +cut_row_desc:"Couper la ligne", +copy_row_desc:"Copier la ligne", +del:"Effacer tableau", +row:"Ligne", +col:"Colonne", +cell:"Cellule" +}, +autosave:{ +unload_msg:"Les changements que vous avez faits seront perdus si vous changez de page." +}, +fullscreen:{ +desc:"Passer en mode plein \u00E9cran" +}, +media:{ +desc:"Ins\u00E9rer/\u00C9diter un fichier m\u00E9dia", +edit:"\u00C9diter un fichier m\u00E9dia" +}, +fullpage:{ +desc:"Propri\u00E9t\u00E9s du document" +}, +template:{ +desc:"Ins\u00E9rer un mod\u00E8le pr\u00E9d\u00E9fini." +}, +visualchars:{ +desc:"Activer les caract\u00E8res de mise en page." +}, +spellchecker:{ +desc:"Activer le v\u00E9rificateur d'orthographe", +menu:"Param\u00E8tres du v\u00E9rificateur d'orthographe", +ignore_word:"Ignorer mot", +ignore_words:"Ignorer tout", +langs:"Langues", +wait:"Patientez SVP\u2026", +sug:"Suggestions", +no_sug:"Aucune suggestions", +no_mpell:"Aucune erreur trouv\u00E9e." +}, +pagebreak:{ +desc:"Ins\u00E9rer saut de page." +}}}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/hy.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/hy.js new file mode 120000 index 0000000..78e6f7f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/hy.js @@ -0,0 +1 @@ +en.js \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/it.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/it.js new file mode 100644 index 0000000..af57d85 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/it.js @@ -0,0 +1 @@ +tinyMCE.addI18n({it:{common:{"more_colors":"Colori aggiuntivi...","invalid_data":"Errore: valori inseriti non validi, sono marcati in rosso.","popup_blocked":"Spiacente, ma il blocco popup ha disabilitato una finestra che fornisce funzionalit\u00e0 dell\'applicazione. Si deve disabilitare il blocco popup per questo sito per poter utlizzare appieno questo strumento.","clipboard_no_support":"Attualmente non supportato dal browser in uso, usare le scorciatoie da tastiera.","clipboard_msg":"Copia/Taglia/Incolla non \u00e8 disponibile in Mozilla e Firefox.\nSi desidera avere maggiori informazioni su questo problema?","not_set":"-- Non impostato --","class_name":"Classe",browse:"Sfoglia",close:"Chiudi",cancel:"Annulla",update:"Aggiorna",insert:"Inserisci",apply:"Applica","edit_confirm":"Usare la modalit\u00e0 WYSIWYG per questa textarea?","invalid_data_number":"{#field} deve essere un numero","invalid_data_min":"{#field} deve essere un numero maggiore di {#min}","invalid_data_size":"{#field} deve essere un numero o una percentuale",value:"(valore)"},contextmenu:{full:"Giustifica",right:"Allinea a destra",center:"Centra",left:"Allinea a sinistra",align:"Allineamento"},insertdatetime:{"day_short":"Dom,Lun,Mar,Mer,Gio,Ven,Sab,Dom","day_long":"Domenica,Luned\u00ec,Marted\u00ec,Mercoled\u00ec,Gioved\u00ec,Venerd\u00ec,Sabato,Domenica","months_short":"Gen,Feb,Mar,Apr,Mag,Giu,Lug,Ago,Set,Ott,Nov,Dic","months_long":"Gennaio,Febbraio,Marzo,Aprile,Maggio,Giugno,Luglio,Agosto,Settembre,Ottobre,Novembre,Dicembre","inserttime_desc":"Inserisci ora","insertdate_desc":"Inserisci data","time_fmt":"%H:%M:%S","date_fmt":"%Y-%m-%d"},print:{"print_desc":"Stampa"},preview:{"preview_desc":"Anteprima"},directionality:{"rtl_desc":"Direzione da destra a sinistra","ltr_desc":"Direzione da sinistra a destra"},layer:{content:"Nuovo layer...","absolute_desc":"Attiva/Disattiva posizionamento assoluto","backward_desc":"Porta in sfondo","forward_desc":"Porta in rilievo","insertlayer_desc":"Inserisci nuovo layer"},save:{"save_desc":"Salva","cancel_desc":"Cancella tutte le modifiche"},nonbreaking:{"nonbreaking_desc":"Inserisci uno spazio"},iespell:{download:"ieSpell non rilevato. Installarlo ora?","iespell_desc":"Esegui controllo ortografico"},advhr:{"advhr_desc":"Riga orizzontale","delta_height":"","delta_width":""},emotions:{"emotions_desc":"Faccine","delta_height":"","delta_width":""},searchreplace:{"replace_desc":"Trova/Sostituisci","search_desc":"Trova","delta_width":"","delta_height":""},advimage:{"image_desc":"Inserisci/modifica immagine","delta_width":"","delta_height":""},advlink:{"link_desc":"Inserisci/modifica collegamento","delta_height":"","delta_width":""},xhtmlxtras:{"attribs_desc":"Inserisci/modifica attributi","ins_desc":"Inserimento","del_desc":"Cancellamento","acronym_desc":"Acronimo","abbr_desc":"Abbreviazione","cite_desc":"Citazione","attribs_delta_height":"","attribs_delta_width":"","ins_delta_height":"","ins_delta_width":"","del_delta_height":"","del_delta_width":"","acronym_delta_height":"","acronym_delta_width":"","abbr_delta_height":"","abbr_delta_width":"","cite_delta_height":"","cite_delta_width":""},style:{desc:"Modifica stile CSS","delta_height":"","delta_width":""},paste:{"plaintext_mode":"Incolla adesso e in modalit\u00e0 testo. Clicca nuovamente per tornare alla modalit\u00e0 normale.","plaintext_mode_sticky":"Incolla adesso e in modalit\u00e0 testo. Clicca nuovamente per tornare alla modalit\u00e0 normale. Dopo che avrai incollato qualcosa tornerai alla modalit\u00e0 normale","selectall_desc":"Seleziona tutto","paste_word_desc":"Incolla da Word","paste_text_desc":"Incolla come testo semplice"},"paste_dlg":{"word_title":"Premere CTRL+V sulla tastiera per incollare il testo nella finestra.","text_linebreaks":"Mantieni interruzioni di riga","text_title":"Premere CTRL+V sulla tastiera per incollare il testo nella finestra."},table:{cell:"Cella",col:"Colonna",row:"Riga",del:"Elimina tabella","copy_row_desc":"Copia riga","cut_row_desc":"Taglia riga","paste_row_after_desc":"Incolla riga dopo","paste_row_before_desc":"Incolla riga prima","props_desc":"Propriet\u00e0 tabella","cell_desc":"Propriet\u00e0 cella","row_desc":"Propriet\u00e0 riga","merge_cells_desc":"Unisci celle","split_cells_desc":"Separa celle","delete_col_desc":"Elimina colonna","col_after_desc":"Inserisci colonna dopo","col_before_desc":"Inserisci colonna prima","delete_row_desc":"Elimina riga","row_after_desc":"Inserisci riga dopo","row_before_desc":"Inserisci riga prima",desc:"Inserisci una nuova tabella","merge_cells_delta_height":"","merge_cells_delta_width":"","table_delta_height":"","table_delta_width":"","cellprops_delta_height":"","cellprops_delta_width":"","rowprops_delta_height":"","rowprops_delta_width":""},autosave:{"warning_message":"Se ripristini i dati salvati automaticamente perderai i dati attuali dell\'editor\n\nSei sicuro di voler ripristinare i dati?.","restore_content":"Ripristina i dati salvati automaticamente","unload_msg":"I cambiamenti effettuati saranno persi se si abbandona la pagina corrente."},fullscreen:{desc:"Attiva/disattiva modalit\u00e0 a tutto schermo"},media:{edit:"Modifica file multimediale",desc:"Inserisci/modifica file multimediale","delta_height":"","delta_width":""},fullpage:{desc:"Propriet\u00e0 Documento","delta_width":"","delta_height":""},template:{desc:"Inserisci contenuto da modello predefinito"},visualchars:{desc:"Attiva/disattiva caratteri di controllo visuale."},spellchecker:{desc:"Attiva/disattiva controllo ortografico",menu:"Impostazioni controllo ortografico","ignore_word":"Ignora parola","ignore_words":"Ignora tutto",langs:"Lingue",wait:"Attendere prego...",sug:"Suggerimenti","no_sug":"Nessun suggerimento","no_mpell":"Nessun errore rilevato.","learn_word":"Learn word"},pagebreak:{desc:"Inserisci intterruzione di pagina."},advlist:{types:"Tipi",def:"Default","lower_alpha":"Minuscolo alfanumerico","lower_greek":"Minuscolo lettera greca","lower_roman":"Minuscolo lettere romane","upper_alpha":"Maiuscolo alfanumerico","upper_roman":"Maiuscolo lettere romane",circle:"Cerchio",disc:"Punto",square:"Quadrato"},colors:{"333300":"Verde oliva scuro","993300":"Arancio bruciato","000000":"Nero","003300":"Verde scuro","003366":"Azzurro scuro","000080":"Blu navy","333399":"Indaco","333333":"Grigio molto scuro","800000":"Marrone",FF6600:"Arancione","808000":"Verde oliva","008000":"Verde","008080":"Verde azzurro","0000FF":"Blu","666699":"Grigio blu","808080":"Grigio",FF0000:"Rosso",FF9900:"Ambra","99CC00":"Giallo verde","339966":"Verde acqua","33CCCC":"Turchese","3366FF":"Blu royal","800080":"Porpora","999999":"Grigio topo",FF00FF:"Magenta",FFCC00:"Oro",FFFF00:"Giallo","00FF00":"Lime","00FFFF":"Acqua","00CCFF":"Blu cielo","993366":"Vinaccia",C0C0C0:"Argento",FF99CC:"Rosa",FFCC99:"Pesca",FFFF99:"Giallo chiaro",CCFFCC:"Verde chiaro",CCFFFF:"Ciano chiaro","99CCFF":"Blu cielo chiaro",CC99FF:"Prugna",FFFFFF:"Bianco"},aria:{"rich_text_area":"Area testo formattato"},wordcount:{words:"Parole:"}}}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/ja.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/ja.js new file mode 100644 index 0000000..f2ea077 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/ja.js @@ -0,0 +1,154 @@ +tinyMCE.addI18n({ja:{ +common:{ +edit_confirm:"WYSIWYG\u30E2\u30FC\u30C9\u306B\u5207\u308A\u66FF\u3048\u307E\u3059\u304B\uFF1F", +apply:"\u9069\u7528", +insert:"\u633F\u5165", +update:"\u66F4\u65B0", +cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB", +close:"\u9589\u3058\u308B", +browse:"\u53C2\u7167", +class_name:"\u30AF\u30E9\u30B9", +not_set:"-- \u672A\u8A2D\u5B9A --", +clipboard_msg:"\u30B3\u30D4\u30FC/\u5207\u308A\u53D6\u308A/\u8CBC\u308A\u4ED8\u3051\u306FMozilla\u53CA\u3073Firefox\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n\u8A73\u7D30\u306F\u3053\u3061\u3089", +clipboard_no_support:"\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u64CD\u4F5C\u306F\u304A\u4F7F\u3044\u306E\u30D6\u30E9\u30A6\u30B6\u306B\u306F\u5BFE\u5FDC\u3057\u3066\u304A\u308A\u307E\u305B\u3093\u3002\u4EE3\u308F\u308A\u306B\u30AD\u30FC\u30DC\u30FC\u30C9\u306E\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u3092\u304A\u4F7F\u3044\u4E0B\u3055\u3044\u3002", +popup_blocked:"\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u304C\u30D6\u30ED\u30C3\u30AF\u3055\u308C\u307E\u3057\u305F\u3002\u3059\u3079\u3066\u306E\u6A5F\u80FD\u3092\u3054\u5229\u7528\u306B\u306A\u308B\u306B\u306F\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u3092\u8A31\u53EF\u3057\u3066\u4E0B\u3055\u3044\u3002", +invalid_data:"\u30A8\u30E9\u30FC: \u5165\u529B\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\u3002\uFF08\u8D64\u5B57\u306E\u9805\u76EE\uFF09", +more_colors:"\u305D\u306E\u4ED6\u306E\u8272" +}, +contextmenu:{ +align:"\u914D\u7F6E", +left:"\u5DE6\u63C3\u3048", +center:"\u4E2D\u592E\u63C3\u3048", +right:"\u53F3\u63C3\u3048", +full:"\u5747\u7B49\u5272\u4ED8" +}, +insertdatetime:{ +date_fmt:"%Y-%m-%d", +time_fmt:"%H:%M:%S", +insertdate_desc:"\u65E5\u4ED8\u306E\u633F\u5165", +inserttime_desc:"\u6642\u523B\u306E\u633F\u5165", +months_long:"January,February,March,April,May,June,July,August,September,October,November,December", +months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", +day_long:"\u65E5\u66DC\u65E5,\u6708\u66DC\u65E5,\u706B\u66DC\u65E5,\u6C34\u66DC\u65E5,\u6728\u66DC\u65E5,\u91D1\u66DC\u65E5,\u571F\u66DC\u65E5,\u65E5\u66DC\u65E5", +day_short:"(\u65E5),(\u6708),(\u706B),(\u6C34),(\u6728),(\u91D1),(\u571F),(\u65E5)" +}, +print:{ +print_desc:"\u5370\u5237" +}, +preview:{ +preview_desc:"\u30D7\u30EC\u30D3\u30E5\u30FC" +}, +directionality:{ +ltr_desc:"\u5DE6\u304B\u3089\u53F3", +rtl_desc:"\u53F3\u304B\u3089\u5DE6" +}, +layer:{ +insertlayer_desc:"\u65B0\u898F\u30EC\u30A4\u30E4\u30FC\u306E\u633F\u5165", +forward_desc:"\u524D\u9762\u3078\u79FB\u52D5", +backward_desc:"\u80CC\u9762\u3078\u79FB\u52D5", +absolute_desc:"\u7D76\u5BFE\u4F4D\u7F6E\u6307\u5B9A\u306E\u5207\u66FF", +content:"\u65B0\u898F\u30EC\u30A4\u30E4\u30FC" +}, +save:{ +save_desc:"\u4FDD\u5B58", +cancel_desc:"\u5168\u3066\u306E\u5909\u66F4\u3092\u7834\u68C4" +}, +nonbreaking:{ +nonbreaking_desc:"\u6539\u884C\u306A\u3057\u30B9\u30DA\u30FC\u30B9\u306E\u633F\u5165" +}, +iespell:{ +iespell_desc:"\u30B9\u30DA\u30EB\u30C1\u30A7\u30C3\u30AF", +download:"ieSpell\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u4ECA\u3059\u3050\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B\uFF1F" +}, +advhr:{ +advhr_desc:"\u6C34\u5E73\u7DDA" +}, +emotions:{ +emotions_desc:"\u8868\u60C5\u30A2\u30A4\u30B3\u30F3" +}, +searchreplace:{ +search_desc:"\u691C\u7D22", +replace_desc:"\u691C\u7D22/\u7F6E\u63DB" +}, +advimage:{ +image_desc:"\u753B\u50CF\u306E\u633F\u5165/\u7DE8\u96C6" +}, +advlink:{ +link_desc:"\u30EA\u30F3\u30AF\u306E\u633F\u5165/\u7DE8\u96C6" +}, +xhtmlxtras:{ +cite_desc:"\u5F15\u7528", +abbr_desc:"\u7565\u8A9E", +acronym_desc:"\u982D\u5B57\u8A9E", +del_desc:"\u524A\u9664", +ins_desc:"\u633F\u5165", +attribs_desc:"\u5C5E\u6027\u306E\u633F\u5165/\u7DE8\u96C6" +}, +style:{ +desc:"CSS\u7DE8\u96C6" +}, +paste:{ +paste_text_desc:"\u30C6\u30AD\u30B9\u30C8\u3068\u3057\u3066\u8CBC\u308A\u4ED8\u3051", +paste_word_desc:"Word\u304B\u3089\u8CBC\u308A\u4ED8\u3051", +selectall_desc:"\u5168\u3066\u9078\u629E" +}, +paste_dlg:{ +text_title:"\u30AD\u30FC\u30DC\u30FC\u30C9\u3067CTRL+V\u3068\u5165\u529B\u3057\u30C6\u30AD\u30B9\u30C8\u3092\u8CBC\u308A\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002", +text_linebreaks:"\u6539\u884C\u3092\u4FDD\u6301\u3059\u308B", +word_title:"\u30AD\u30FC\u30DC\u30FC\u30C9\u3067CTRL+V\u3068\u5165\u529B\u3057\u30C6\u30AD\u30B9\u30C8\u3092\u8CBC\u308A\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002" +}, +table:{ +desc:"\u8868\u3092\u633F\u5165", +row_before_desc:"\u884C\u3092\u4E0A\u306B\u633F\u5165", +row_after_desc:"\u884C\u3092\u4E0B\u306B\u633F\u5165", +delete_row_desc:"\u884C\u3092\u524A\u9664", +col_before_desc:"\u5217\u3092\u5DE6\u306B\u633F\u5165", +col_after_desc:"\u5217\u3092\u53F3\u306B\u633F\u5165", +delete_col_desc:"\u5217\u3092\u524A\u9664", +split_cells_desc:"\u30BB\u30EB\u306E\u7D50\u5408\u3092\u89E3\u9664", +merge_cells_desc:"\u30BB\u30EB\u3092\u7D50\u5408", +row_desc:"\u884C\u306E\u30D7\u30ED\u30D1\u30C6\u30A3", +cell_desc:"\u30BB\u30EB\u306E\u30D7\u30ED\u30D1\u30C6\u30A3", +props_desc:"\u8868\u306E\u30D7\u30ED\u30D1\u30C6\u30A3", +paste_row_before_desc:"\u884C\u3092\u4E0A\u306B\u8CBC\u308A\u4ED8\u3051", +paste_row_after_desc:"\u884C\u3092\u4E0B\u306B\u8CBC\u308A\u4ED8\u3051", +cut_row_desc:"\u884C\u306E\u5207\u308A\u53D6\u308A", +copy_row_desc:"\u884C\u306E\u30B3\u30D4\u30FC", +del:"\u8868\u3092\u524A\u9664", +row:"\u884C", +col:"\u5217", +cell:"\u30BB\u30EB" +}, +autosave:{ +unload_msg:"\u4ED6\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\u3059\u308B\u3068\u7DE8\u96C6\u30C7\u30FC\u30BF\u306F\u3059\u3079\u3066\u7834\u68C4\u3055\u308C\u307E\u3059\u3002" +}, +fullscreen:{ +desc:"\u30D5\u30EB\u30B9\u30AF\u30EA\u30FC\u30F3" +}, +media:{ +desc:"\u57CB\u3081\u8FBC\u307F\u30E1\u30C7\u30A3\u30A2\u306E\u633F\u5165/\u7DE8\u96C6", +edit:"\u57CB\u3081\u8FBC\u307F\u30E1\u30C7\u30A3\u30A2\u306E\u7DE8\u96C6" +}, +fullpage:{ +desc:"\u30DA\u30FC\u30B8\u8A2D\u5B9A" +}, +template:{ +desc:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u633F\u5165" +}, +visualchars:{ +desc:"\u5236\u5FA1\u6587\u5B57\u306E\u8868\u793A" +}, +spellchecker:{ +desc:"\u30B9\u30DA\u30EB\u30C1\u30A7\u30C3\u30AFOn/Off", +menu:"\u30B9\u30DA\u30EB\u30C1\u30A7\u30C3\u30AF\u8A2D\u5B9A", +ignore_word:"\u3053\u306E\u5358\u8A9E\u3092\u7121\u8996", +ignore_words:"\u5168\u3066\u7121\u8996", +langs:"\u8A00\u8A9E", +wait:"\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044...", +sug:"\u5019\u88DC", +no_sug:"\u5019\u88DC\u306F\u6709\u308A\u307E\u305B\u3093\u3002", +no_mpell:"\u30B9\u30DA\u30EB\u30DF\u30B9\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002" +}, +pagebreak:{ +desc:"\u6539\u30DA\u30FC\u30B8\u633F\u5165" +}}}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/nl.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/nl.js new file mode 100644 index 0000000..c2ccbb4 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/nl.js @@ -0,0 +1,154 @@ +tinyMCE.addI18n({nl:{ +common:{ +edit_confirm:"Weet u zeker dat u tekst in WYSIWYG mode wilt bewerken in dit tekstveld?", +apply:"Toepassen", +insert:"Invoegen", +update:"Bijwerken", +cancel:"Annuleren", +close:"Sluiten", +browse:"Bladeren", +class_name:"Klasse", +not_set:"- Standaard -", +clipboard_msg:"Kopi\u00EBren/knippen/plakken is niet beschikbaar in Mozilla en Firefox.\nWilt u meer informatie over deze beperking?", +clipboard_no_support:"Kopi\u00EBren/knippen/plakken wordt niet ondersteund door uw browser, gebruik hiervoor de sneltoetsen.", +popup_blocked:"U zult uw popup-blocker tijdelijk moeten uitschakelen voor deze website om gebruik te kunnen maken van alle functies van deze teksteditor.", +invalid_data:"Fout: Er zijn ongeldige waardes ingevoerd, deze zijn rood gemarkeerd.", +more_colors:"Meer kleuren" +}, +contextmenu:{ +align:"Uitlijning", +left:"Links", +center:"Centreren", +right:"Rechts", +full:"Uitvullen" +}, +insertdatetime:{ +date_fmt:"%d-%m-%Y", +time_fmt:"%H:%M:%S", +insertdate_desc:"Datum invoegen", +inserttime_desc:"Tijd invoegen", +months_long:"Januari,Februari,Maart,April,Mei,Juni,Juli,Augustus,September,Oktober,November,December", +months_short:"Jan,Feb,Mar,Apr,Mei,Jun,Jul,Aug,Sep,Okt,Nov,Dec", +day_long:"Zondag,Maandag,Dinsdag,Woensdag,Donderdag,Vrijdag,Zaterdag,Zondag", +day_short:"zo,ma,di,wo,do,vr,za,zo" +}, +print:{ +print_desc:"Afdrukken" +}, +preview:{ +preview_desc:"Voorbeeld" +}, +directionality:{ +ltr_desc:"Van links naar rechts", +rtl_desc:"Van rechts naar links" +}, +layer:{ +insertlayer_desc:"Nieuwe laag invoegen", +forward_desc:"Volgende laag", +backward_desc:"Vorige laag", +absolute_desc:"Absoluut positioneren inschakelen", +content:"Nieuwe laag..." +}, +save:{ +save_desc:"Opslaan", +cancel_desc:"Alle wijzigingen annuleren" +}, +nonbreaking:{ +nonbreaking_desc:"Open ruimte invoegen" +}, +iespell:{ +iespell_desc:"Spellingcontrole", +download:"ieSpell niet gevonden. Wilt u deze nu installeren?" +}, +advhr:{ +advhr_desc:"Scheidingslijn" +}, +emotions:{ +emotions_desc:"Emoties" +}, +searchreplace:{ +search_desc:"Zoeken", +replace_desc:"Zoeken/Vervangen" +}, +advimage:{ +image_desc:"Afbeelding invoegen/bewerken" +}, +advlink:{ +link_desc:"Link invoegen/bewerken" +}, +xhtmlxtras:{ +cite_desc:"Citaat", +abbr_desc:"Afkorting", +acronym_desc:"Synoniem", +del_desc:"Verwijderd", +ins_desc:"Ingevoegd", +attribs_desc:"Attributen invoegen/bewerken" +}, +style:{ +desc:"CSS Stijl bewerken" +}, +paste:{ +paste_text_desc:"Als platte tekst plakken", +paste_word_desc:"Vanuit Word plakken", +selectall_desc:"Alles selecteren" +}, +paste_dlg:{ +text_title:"Gebruik Ctrl+V om tekst in het venster te plakken.", +text_linebreaks:"Regelafbreking bewaren", +word_title:"Gebruik Ctrl+V om tekst in het venster te plakken." +}, +table:{ +desc:"Nieuwe tabel invoegen", +row_before_desc:"Rij boven invoegen", +row_after_desc:"Rij onder invoegen", +delete_row_desc:"Rij verwijderen", +col_before_desc:"Kolom links invoegen", +col_after_desc:"Kolom rechts invoegen", +delete_col_desc:"Kolom verwijderen", +split_cells_desc:"Cellen splitsen", +merge_cells_desc:"Cellen samenvoegen", +row_desc:"Rij-eigenschappen", +cell_desc:"Cel-eigenschappen", +props_desc:"Tabeleigenschappen", +paste_row_before_desc:"Rij boven plakken", +paste_row_after_desc:"Rij onder plakken", +cut_row_desc:"Rij knippen", +copy_row_desc:"Rij kopi\u00EBren", +del:"Tabel verwijderen", +row:"Rij", +col:"Kolom", +cell:"Cel" +}, +autosave:{ +unload_msg:"De wijzigingen zullen verloren gaan als u nu deze pagina verlaat." +}, +fullscreen:{ +desc:"Volledig scherm" +}, +media:{ +desc:"Media invoegen/bewerken", +edit:"Media bewerken" +}, +fullpage:{ +desc:"Documenteigenschappen" +}, +template:{ +desc:"Voorgedefinieerd sjabloon invoegen" +}, +visualchars:{ +desc:"Zichtbare symbolen" +}, +spellchecker:{ +desc:"Spellingcontrole", +menu:"Instellingen spellingcontrole", +ignore_word:"Woord negeren", +ignore_words:"Alles negeren", +langs:"Talen", +wait:"Een ogenblik geduld\u2026", +sug:"Suggesties", +no_sug:"Geen suggesties", +no_mpell:"Geen spelfouten gevonden." +}, +pagebreak:{ +desc:"Pagina-einde invoegen" +}}}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/pt.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/pt.js new file mode 100644 index 0000000..50888d9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/pt.js @@ -0,0 +1,154 @@ +tinyMCE.addI18n({pt:{ +common:{ +edit_confirm:"Deseja usar o modo de edi\u00E7\u00E3o avan\u00E7ado neste campo de texto?", +apply:"Aplicar", +insert:"Inserir", +update:"Atualizar", +cancel:"Cancelar", +close:"Fechar", +browse:"Procurar", +class_name:"Classe", +not_set:"-- N/A --", +clipboard_msg:"Copiar/cortar/colar n\u00E3o est\u00E1 dispon\u00EDvel no Mozilla e Firefox.\nDeseja mais informa\u00E7\u00F5es sobre este problema?", +clipboard_no_support:"O seu browser n\u00E3o suporta esta fun\u00E7\u00E3o, use os atalhos do teclado.", +popup_blocked:"Detectamos que o seu bloqueador de popups bloqueou uma janela que \u00E9 essencial para a aplica\u00E7\u00E3o. Voc\u00EA precisa desativar o bloqueador de janelas de popups para utilizar esta ferramenta.", +invalid_data:"Erro: Valores inv\u00E1lidos marcados em vermelho.", +more_colors:"Mais Cores" +}, +contextmenu:{ +align:"Alinhamento", +left:"Esquerda", +center:"Centro", +right:"Direita", +full:"Justificado" +}, +insertdatetime:{ +date_fmt:"%d-%m-%Y", +time_fmt:"%H:%M:%S", +insertdate_desc:"Inserir data", +inserttime_desc:"Inserir hora", +months_long:"Janeiro,Fevereiro,Mar\u00E7o,Abril,Maio,Junho,Julho,Agosto,Setembro,Outubro,Novembro,Dezembro", +months_short:"Jan,Fev,Mar,Abr,Mai,Jun,Jul,Ago,Set,Out,Nov,Dez", +day_long:"Domingo,Segunda-feira,Ter\u00E7a-feira,Quarta-feira,Quinta-feira,Sexta-feira,S\u00E1bado,Domingo", +day_short:"Dom,Seg,Ter,Qua,Qui,Sex,Sab,Dom" +}, +print:{ +print_desc:"Imprimir" +}, +preview:{ +preview_desc:"Pr\u00E9-visualizar" +}, +directionality:{ +ltr_desc:"Da esquerda para direita", +rtl_desc:"Da direita para esquerda" +}, +layer:{ +insertlayer_desc:"Inserir nova camada", +forward_desc:"Mover para frente", +backward_desc:"Mover para tr\u00E1s", +absolute_desc:"Alternar o posicionamento absoluto", +content:"Nova camada..." +}, +save:{ +save_desc:"Salvar", +cancel_desc:"Cancelar todas as altera\u00E7\u00F5es" +}, +nonbreaking:{ +nonbreaking_desc:"Inserir um espa\u00E7o \"sem quebra\"" +}, +iespell:{ +iespell_desc:"Verificar ortografia", +download:"Plugin de ortografia n\u00E3o-detectado. Deseja instalar agora?" +}, +advhr:{ +advhr_desc:"Separador horizontal" +}, +emotions:{ +emotions_desc:"Emoticons" +}, +searchreplace:{ +search_desc:"Localizar", +replace_desc:"Localizar/substituir" +}, +advimage:{ +image_desc:"Inserir/editar imagem" +}, +advlink:{ +link_desc:"Inserir/editar hyperlink" +}, +xhtmlxtras:{ +cite_desc:"Cita\u00E7\u00E3o", +abbr_desc:"Abrevia\u00E7\u00E3o", +acronym_desc:"Acr\u00F4nimo", +del_desc:"Apagar", +ins_desc:"Inserir", +attribs_desc:"Inserir/Editar atributos" +}, +style:{ +desc:"Editar CSS" +}, +paste:{ +paste_text_desc:"Colar como texto simples", +paste_word_desc:"Colar (copiado do WORD)", +selectall_desc:"Selecionar tudo" +}, +paste_dlg:{ +text_title:"Use CTRL+V para colar o texto na janela.", +text_linebreaks:"Manter quebras de linha", +word_title:"Use CTRL+V para colar o texto na janela." +}, +table:{ +desc:"Inserir nova tabela", +row_before_desc:"Inserir linha antes", +row_after_desc:"Inserir linha depois", +delete_row_desc:"Apagar linha", +col_before_desc:"Inserir coluna antes", +col_after_desc:"Inserir coluna depois", +delete_col_desc:"Remover coluna", +split_cells_desc:"Dividir c\u00E9lulas", +merge_cells_desc:"Unir c\u00E9lulas", +row_desc:"Propriedades das linhas", +cell_desc:"Propriedades das c\u00E9lulas", +props_desc:"Propriedades da tabela", +paste_row_before_desc:"Colar linha antes", +paste_row_after_desc:"Colar linha depois", +cut_row_desc:"Cortar linha", +copy_row_desc:"Copiar linha", +del:"Apagar tabela", +row:"Linha", +col:"Coluna", +cell:"C\u00E9lula" +}, +autosave:{ +unload_msg:"As mudan\u00E7as efetuadas ser\u00E3o perdidas se sair desta p\u00E1gina." +}, +fullscreen:{ +desc:"Tela Inteira" +}, +media:{ +desc:"Inserir/Editar m\u00EDdia incorporada", +edit:"Editar m\u00EDdia incorporada" +}, +fullpage:{ +desc:"Propriedades do Documento" +}, +template:{ +desc:"Inserir template" +}, +visualchars:{ +desc:"Caracteres de controle visual ligado/desligado" +}, +spellchecker:{ +desc:"Alternar verifica\u00E7\u00E3o ortogr\u00E1fica", +menu:"Configura\u00E7\u00F5es de ortografia", +ignore_word:"Ignorar palavra", +ignore_words:"Ignorar tudo", +langs:"Linguagens", +wait:"Aguarde...", +sug:"Sugest\u00F5es", +no_sug:"Sem sugest\u00F5es", +no_mpell:"N\u00E3o foram detectados erros de ortografia." +}, +pagebreak:{ +desc:"Inserir quebra de p\u00E1gina." +}}}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/ru.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/ru.js new file mode 100644 index 0000000..029f509 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/langs/ru.js @@ -0,0 +1,157 @@ +tinyMCE.addI18n({ru:{ +common:{ +edit_confirm:"\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C WYSIWYG \u0440\u0435\u0436\u0438\u043C \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u043F\u043E\u043B\u044F?", +apply:"\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C", +insert:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C", +update:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C", +cancel:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C", +close:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C", +browse:"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440", +class_name:"\u041A\u043B\u0430\u0441\u0441", +not_set:"- \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E -", +clipboard_msg:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C / \u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C / \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C (\u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u0432 Mozilla \u0438 Firefox) \ n \u0412\u0430\u043C \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u043D\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E\u0431 \u044D\u0442\u043E\u043C?", +clipboard_no_support:"\u0412 \u0434\u0430\u043D\u043D\u044B\u0439 \u043C\u043E\u043C\u0435\u043D\u0442 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0412\u0430\u0448\u0438\u043C \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043E\u043C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0433\u043E\u0440\u044F\u0447\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0438", +popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool", +invalid_data:"\u041E\u0448\u0438\u0431\u043A\u0430: \u0412\u0432\u0435\u0434\u0435\u043D \u043E\u0448\u0438\u0431\u043E\u0447\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435, \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u043E \u043A\u0440\u0430\u0441\u043D\u044B\u043C", +more_colors:"\u0411\u043E\u043B\u044C\u0448\u0435 \u0446\u0432\u0435\u0442\u043E\u0432" +}, +contextmenu:{ +align:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435", +left:"\u041F\u043E \u043B\u0435\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E", +center:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443", +right:"\u041F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E", +full:"\u041F\u043E \u0448\u0438\u0440\u0438\u043D\u0435" +}, +insertdatetime:{ +date_fmt:"% d.% m.% Y", +time_fmt:"% H:% M:% S", +insertdate_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0434\u0430\u0442\u0443", +inserttime_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u044F", +months_long:"\u044F\u043D\u0432\u0430\u0440\u044C, \u0444\u0435\u0432\u0440\u0430\u043B\u044C, \u043C\u0430\u0440\u0442, \u0430\u043F\u0440\u0435\u043B\u044C, \u043C\u0430\u0439, \u0438\u044E\u043D\u044C, \u0438\u044E\u043B\u044C, \u0430\u0432\u0433\u0443\u0441\u0442, \u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044C, \u043E\u043A\u0442\u044F\u0431\u0440\u044C, \u043D\u043E\u044F\u0431\u0440\u044C, \u0434\u0435\u043A\u0430\u0431\u0440\u044C", +months_short:"\u044F\u043D\u0432\u0430\u0440\u044C, \u0444\u0435\u0432\u0440\u0430\u043B\u044C, \u043C\u0430\u0440\u0442, \u0430\u043F\u0440\u0435\u043B\u044C, \u043C\u0430\u0439, \u0438\u044E\u043D\u044C, \u0438\u044E\u043B\u044C, \u0430\u0432\u0433\u0443\u0441\u0442, \u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C, \u041E\u043A\u0442\u044F\u0431\u0440\u044C, \u041D\u043E\u044F\u0431\u0440\u044C, \u0414\u0435\u043A\u0430\u0431\u0440\u044C", +day_long:"\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435, \u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A, \u0432\u0442\u043E\u0440\u043D\u0438\u043A, \u0441\u0440\u0435\u0434\u0430, \u0447\u0435\u0442\u0432\u0435\u0440\u0433, \u043F\u044F\u0442\u043D\u0438\u0446\u0443, \u0441\u0443\u0431\u0431\u043E\u0442\u0443, \u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435", +day_short:"\u0412\u0441, \u041F\u043D, \u0412\u0442, \u0421\u0440, \u0427\u0442, \u041F\u0442, \u0421\u0431, \u0412\u0441" +}, +print:{ +print_desc:"\u041F\u0435\u0447\u0430\u0442\u044C" +}, +preview:{ +preview_desc:"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440" +}, +directionality:{ +ltr_desc:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0441\u043B\u0435\u0432\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043E", +rtl_desc:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0441\u043F\u0440\u0430\u0432\u0430 \u043D\u0430\u043B\u0435\u0432\u043E" +}, +layer:{ +insertlayer_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0441\u043B\u043E\u0439", +forward_desc:"\u0412\u0432\u0435\u0440\u0445", +backward_desc:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u043D\u0430\u0437\u0430\u0434", +absolute_desc:"Toggle absolute positioning", +content:"\u041D\u043E\u0432\u044B\u0439 \u0441\u043B\u043E\u0439 ..." +}, +save:{ +save_desc:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C", +cancel_desc:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F" +}, +nonbreaking:{ +nonbreaking_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u0435\u0440\u0430\u0437\u0440\u044B\u0432\u043D\u044B\u0439 \u043F\u0440\u043E\u0431\u0435\u043B" +}, +iespell:{ +iespell_desc:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043E\u0440\u0444\u043E\u0433\u0440\u0430\u0444\u0438\u044E", +download:"ieSpell \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E. \u0425\u043E\u0442\u0438\u0442\u0435 \u043F\u0440\u043E\u0438\u043D\u0441\u0442\u0430\u043B\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C?" +}, +advhr:{ +advhr_desc:"\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C" +}, +emotions:{ +emotions_desc:"\u0421\u043C\u0430\u0439\u043B\u0438\u043A\u0438" +}, +searchreplace:{ +search_desc:"\u041D\u0430\u0439\u0442\u0438", +replace_desc:"\u041D\u0430\u0439\u0442\u0438 / \u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C" +}, +advimage:{ +image_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C / \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435", +delta_width:"200" +}, +advlink:{ +link_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C / \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443", +delta_width:"200" +}, +xhtmlxtras:{ +cite_desc:"Citation", +abbr_desc:"Abbreviation", +acronym_desc:"Acronym", +del_desc:"Deletion", +ins_desc:"Insertion", +attribs_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C / \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044B" +}, +style:{ +desc:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C CSS \u0441\u0442\u0438\u043B\u044C" +}, +paste:{ +paste_text_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043A\u0430\u043A \u0442\u0435\u043A\u0441\u0442", +paste_word_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0438\u0437 Word", +selectall_desc:"\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u0432\u0441\u0435" +}, +paste_dlg:{ +text_title:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 CTRL + V \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u043E\u043A\u043D\u043E", +text_linebreaks:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u044B \u0441\u0442\u0440\u043E\u043A", +word_title:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 CTRL + V \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u043E\u043A\u043D\u043E" +}, +table:{ +desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0442\u0430\u0431\u043B\u0438\u0446\u0443", +row_before_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0434\u043E", +row_after_desc:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0441\u043B\u0435", +delete_row_desc:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443", +col_before_desc:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u043E\u043B\u0431\u0435\u0446 \u0434\u043E", +col_after_desc:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u043E\u043B\u0431\u0435\u0446 \u043F\u043E\u0441\u043B\u0435", +delete_col_desc:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u043E\u043B\u0431\u0435\u0446", +split_cells_desc:"\u0420\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u044C \u044F\u0447\u0435\u0439\u043A\u0438", +merge_cells_desc:"\u041E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u044F\u0447\u0435\u0439\u043A\u0438", +row_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u043E\u043A\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B", +cell_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u044F\u0447\u0435\u0439\u043A\u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u044B", +props_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u044B", +paste_row_before_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0434\u043E", +paste_row_after_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0441\u043B\u0435", +cut_row_desc:"\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0442\u0430\u0431\u043B\u0438\u0446\u044B", +copy_row_desc:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0442\u0430\u0431\u043B\u0438\u0446\u044B", +del:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0442\u0430\u0431\u043B\u0438\u0446\u0443", +row:"\u0421\u0442\u0440\u043E\u043A\u0430", +col:"\u041F\u043E\u043B\u0435", +cell:"\u042F\u0447\u0435\u0439\u043A\u0430", +cellprops_delta_width:"30" +}, +autosave:{ +unload_msg:"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0432\u044B \u0441\u0434\u0435\u043B\u0430\u043B\u0438, \u0431\u0443\u0434\u0443\u0442 \u043F\u043E\u0442\u0435\u0440\u044F\u043D\u044B, \u0435\u0441\u043B\u0438 \u0432\u044B \u043F\u0435\u0440\u0435\u0439\u0434\u0435\u0442\u0435 \u0441 \u044D\u0442\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B." +}, +fullscreen:{ +desc:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0432\u0435\u0441\u044C \u044D\u043A\u0440\u0430\u043D" +}, +media:{ +desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C / \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C embedded media", +edit:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C embedded media" +}, +fullpage:{ +desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430" +}, +template:{ +desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u043D\u044B\u0439 \u043A\u043E\u043D\u0442\u0435\u043D\u0442" +}, +visualchars:{ +desc:"Visual control characters on / off" +}, +spellchecker:{ +desc:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443", +menu:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438", +ignore_word:"\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043B\u043E\u0432\u043E", +ignore_words:"\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435", +langs:"\u042F\u0437\u044B\u043A\u0438", +wait:"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435 ...", +sug:"\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B", +no_sug:"\u041D\u0435\u0442 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432", +no_mpell:"\u041E\u0448\u0438\u0431\u043E\u043A \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E" +}, +pagebreak:{ +desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B" +}}}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/license.txt b/app/assets/javascripts/tinymce/jscripts/tiny_mce/license.txt new file mode 100644 index 0000000..60d6d4c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/license.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css new file mode 100644 index 0000000..0e22834 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css @@ -0,0 +1,5 @@ +input.radio {border:1px none #000; background:transparent; vertical-align:middle;} +.panel_wrapper div.current {height:80px;} +#width {width:50px; vertical-align:middle;} +#width2 {width:50px; vertical-align:middle;} +#size {width:100px;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js new file mode 100644 index 0000000..4d3b062 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.AdvancedHRPlugin",{init:function(a,b){a.addCommand("mceAdvancedHr",function(){a.windowManager.open({file:b+"/rule.htm",width:250+parseInt(a.getLang("advhr.delta_width",0)),height:160+parseInt(a.getLang("advhr.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("advhr",{title:"advhr.advhr_desc",cmd:"mceAdvancedHr"});a.onNodeChange.add(function(d,c,e){c.setActive("advhr",e.nodeName=="HR")});a.onClick.add(function(c,d){d=d.target;if(d.nodeName==="HR"){c.selection.select(d)}})},getInfo:function(){return{longname:"Advanced HR",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advhr",tinymce.plugins.AdvancedHRPlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js new file mode 100644 index 0000000..0c652d3 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js @@ -0,0 +1,57 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.AdvancedHRPlugin', { + init : function(ed, url) { + // Register commands + ed.addCommand('mceAdvancedHr', function() { + ed.windowManager.open({ + file : url + '/rule.htm', + width : 250 + parseInt(ed.getLang('advhr.delta_width', 0)), + height : 160 + parseInt(ed.getLang('advhr.delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + // Register buttons + ed.addButton('advhr', { + title : 'advhr.advhr_desc', + cmd : 'mceAdvancedHr' + }); + + ed.onNodeChange.add(function(ed, cm, n) { + cm.setActive('advhr', n.nodeName == 'HR'); + }); + + ed.onClick.add(function(ed, e) { + e = e.target; + + if (e.nodeName === 'HR') + ed.selection.select(e); + }); + }, + + getInfo : function() { + return { + longname : 'Advanced HR', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('advhr', tinymce.plugins.AdvancedHRPlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js new file mode 100644 index 0000000..b6cbd66 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js @@ -0,0 +1,43 @@ +var AdvHRDialog = { + init : function(ed) { + var dom = ed.dom, f = document.forms[0], n = ed.selection.getNode(), w; + + w = dom.getAttrib(n, 'width'); + f.width.value = w ? parseInt(w) : (dom.getStyle('width') || ''); + f.size.value = dom.getAttrib(n, 'size') || parseInt(dom.getStyle('height')) || ''; + f.noshade.checked = !!dom.getAttrib(n, 'noshade') || !!dom.getStyle('border-width'); + selectByValue(f, 'width2', w.indexOf('%') != -1 ? '%' : 'px'); + }, + + update : function() { + var ed = tinyMCEPopup.editor, h, f = document.forms[0], st = ''; + + h = ' + + + {#advhr.advhr_desc} + + + + + + + +
                    + + +
                    +
                    + + + + + + + + + + + + + +
                    + + + +
                    +
                    +
                    + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css new file mode 100644 index 0000000..0a6251a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css @@ -0,0 +1,13 @@ +#src_list, #over_list, #out_list {width:280px;} +.mceActionPanel {margin-top:7px;} +.alignPreview {border:1px solid #000; width:140px; height:140px; overflow:hidden; padding:5px;} +.checkbox {border:0;} +.panel_wrapper div.current {height:305px;} +#prev {margin:0; border:1px solid #000; width:428px; height:150px; overflow:auto;} +#align, #classlist {width:150px;} +#width, #height {vertical-align:middle; width:50px; text-align:center;} +#vspace, #hspace, #border {vertical-align:middle; width:30px; text-align:center;} +#class_list {width:180px;} +input {width: 280px;} +#constrain, #onmousemovecheck {width:auto;} +#id, #dir, #lang, #usemap, #longdesc {width:200px;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js new file mode 100644 index 0000000..4c7a9c3 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.AdvancedImagePlugin",{init:function(a,b){a.addCommand("mceAdvImage",function(){if(a.dom.getAttrib(a.selection.getNode(),"class").indexOf("mceItem")!=-1){return}a.windowManager.open({file:b+"/image.htm",width:480+parseInt(a.getLang("advimage.delta_width",0)),height:385+parseInt(a.getLang("advimage.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("image",{title:"advimage.image_desc",cmd:"mceAdvImage"})},getInfo:function(){return{longname:"Advanced image",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advimage",tinymce.plugins.AdvancedImagePlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js new file mode 100644 index 0000000..2625dd2 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js @@ -0,0 +1,50 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.AdvancedImagePlugin', { + init : function(ed, url) { + // Register commands + ed.addCommand('mceAdvImage', function() { + // Internal image object like a flash placeholder + if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1) + return; + + ed.windowManager.open({ + file : url + '/image.htm', + width : 480 + parseInt(ed.getLang('advimage.delta_width', 0)), + height : 385 + parseInt(ed.getLang('advimage.delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + // Register buttons + ed.addButton('image', { + title : 'advimage.image_desc', + cmd : 'mceAdvImage' + }); + }, + + getInfo : function() { + return { + longname : 'Advanced image', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('advimage', tinymce.plugins.AdvancedImagePlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm new file mode 100644 index 0000000..ed16b3d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm @@ -0,0 +1,235 @@ + + + + {#advimage_dlg.dialog_title} + + + + + + + + + + +
                    + + +
                    +
                    +
                    + {#advimage_dlg.general} + + + + + + + + + + + + + + + + + + + +
                    + +
                    + {#advimage_dlg.preview} + +
                    +
                    + +
                    +
                    + {#advimage_dlg.tab_appearance} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + +
                    + {#advimage_dlg.example_img} + Lorem ipsum, Dolor sit amet, consectetuer adipiscing loreum ipsum edipiscing elit, sed diam + nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Loreum ipsum + edipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam + erat volutpat. +
                    +
                    + + x + + px +
                      + + + + +
                    +
                    +
                    +
                    + +
                    +
                    + {#advimage_dlg.swap_image} + + + + + + + + + + + + + + + + + + + + + +
                    + + + + +
                     
                    + + + + +
                     
                    +
                    + +
                    + {#advimage_dlg.misc} + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + +
                    + +
                    + +
                    + + + + +
                     
                    +
                    +
                    +
                    + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif new file mode 100644 index 0000000..53bf689 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js new file mode 100644 index 0000000..72c9cbf --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js @@ -0,0 +1,458 @@ +var ImageDialog = { + preInit : function() { + var url; + + tinyMCEPopup.requireLangPack(); + + if (url = tinyMCEPopup.getParam("external_image_list_url")) + document.write(''); + }, + + init : function(ed) { + var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode(); + + tinyMCEPopup.resizeToInnerSize(); + this.fillClassList('class_list'); + this.fillFileList('src_list', 'tinyMCEImageList'); + this.fillFileList('over_list', 'tinyMCEImageList'); + this.fillFileList('out_list', 'tinyMCEImageList'); + TinyMCE_EditableSelects.init(); + + if (n.nodeName == 'IMG') { + nl.src.value = dom.getAttrib(n, 'src'); + nl.width.value = dom.getAttrib(n, 'width'); + nl.height.value = dom.getAttrib(n, 'height'); + nl.alt.value = dom.getAttrib(n, 'alt'); + nl.title.value = dom.getAttrib(n, 'title'); + nl.vspace.value = this.getAttrib(n, 'vspace'); + nl.hspace.value = this.getAttrib(n, 'hspace'); + nl.border.value = this.getAttrib(n, 'border'); + selectByValue(f, 'align', this.getAttrib(n, 'align')); + selectByValue(f, 'class_list', dom.getAttrib(n, 'class'), true, true); + nl.style.value = dom.getAttrib(n, 'style'); + nl.id.value = dom.getAttrib(n, 'id'); + nl.dir.value = dom.getAttrib(n, 'dir'); + nl.lang.value = dom.getAttrib(n, 'lang'); + nl.usemap.value = dom.getAttrib(n, 'usemap'); + nl.longdesc.value = dom.getAttrib(n, 'longdesc'); + nl.insert.value = ed.getLang('update'); + + if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseover'))) + nl.onmouseoversrc.value = dom.getAttrib(n, 'onmouseover').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1'); + + if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseout'))) + nl.onmouseoutsrc.value = dom.getAttrib(n, 'onmouseout').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1'); + + if (ed.settings.inline_styles) { + // Move attribs to styles + if (dom.getAttrib(n, 'align')) + this.updateStyle('align'); + + if (dom.getAttrib(n, 'hspace')) + this.updateStyle('hspace'); + + if (dom.getAttrib(n, 'border')) + this.updateStyle('border'); + + if (dom.getAttrib(n, 'vspace')) + this.updateStyle('vspace'); + } + } + + // Setup browse button + document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image'); + if (isVisible('srcbrowser')) + document.getElementById('src').style.width = '260px'; + + // Setup browse button + document.getElementById('onmouseoversrccontainer').innerHTML = getBrowserHTML('overbrowser','onmouseoversrc','image','theme_advanced_image'); + if (isVisible('overbrowser')) + document.getElementById('onmouseoversrc').style.width = '260px'; + + // Setup browse button + document.getElementById('onmouseoutsrccontainer').innerHTML = getBrowserHTML('outbrowser','onmouseoutsrc','image','theme_advanced_image'); + if (isVisible('outbrowser')) + document.getElementById('onmouseoutsrc').style.width = '260px'; + + // If option enabled default contrain proportions to checked + if (ed.getParam("advimage_constrain_proportions", true)) + f.constrain.checked = true; + + // Check swap image if valid data + if (nl.onmouseoversrc.value || nl.onmouseoutsrc.value) + this.setSwapImage(true); + else + this.setSwapImage(false); + + this.changeAppearance(); + this.showPreviewImage(nl.src.value, 1); + }, + + insert : function(file, title) { + var ed = tinyMCEPopup.editor, t = this, f = document.forms[0]; + + if (f.src.value === '') { + if (ed.selection.getNode().nodeName == 'IMG') { + ed.dom.remove(ed.selection.getNode()); + ed.execCommand('mceRepaint'); + } + + tinyMCEPopup.close(); + return; + } + + if (tinyMCEPopup.getParam("accessibility_warnings", 1)) { + if (!f.alt.value) { + tinyMCEPopup.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) { + if (s) + t.insertAndClose(); + }); + + return; + } + } + + t.insertAndClose(); + }, + + insertAndClose : function() { + var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el; + + tinyMCEPopup.restoreSelection(); + + // Fixes crash in Safari + if (tinymce.isWebKit) + ed.getWin().focus(); + + if (!ed.settings.inline_styles) { + args = { + vspace : nl.vspace.value, + hspace : nl.hspace.value, + border : nl.border.value, + align : getSelectValue(f, 'align') + }; + } else { + // Remove deprecated values + args = { + vspace : '', + hspace : '', + border : '', + align : '' + }; + } + + tinymce.extend(args, { + src : nl.src.value.replace(/ /g, '%20'), + width : nl.width.value, + height : nl.height.value, + alt : nl.alt.value, + title : nl.title.value, + 'class' : getSelectValue(f, 'class_list'), + style : nl.style.value, + id : nl.id.value, + dir : nl.dir.value, + lang : nl.lang.value, + usemap : nl.usemap.value, + longdesc : nl.longdesc.value + }); + + args.onmouseover = args.onmouseout = ''; + + if (f.onmousemovecheck.checked) { + if (nl.onmouseoversrc.value) + args.onmouseover = "this.src='" + nl.onmouseoversrc.value + "';"; + + if (nl.onmouseoutsrc.value) + args.onmouseout = "this.src='" + nl.onmouseoutsrc.value + "';"; + } + + el = ed.selection.getNode(); + + if (el && el.nodeName == 'IMG') { + ed.dom.setAttribs(el, args); + } else { + ed.execCommand('mceInsertContent', false, '', {skip_undo : 1}); + ed.dom.setAttribs('__mce_tmp', args); + ed.dom.setAttrib('__mce_tmp', 'id', ''); + ed.undoManager.add(); + } + + tinyMCEPopup.editor.execCommand('mceRepaint'); + tinyMCEPopup.editor.focus(); + tinyMCEPopup.close(); + }, + + getAttrib : function(e, at) { + var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2; + + if (ed.settings.inline_styles) { + switch (at) { + case 'align': + if (v = dom.getStyle(e, 'float')) + return v; + + if (v = dom.getStyle(e, 'vertical-align')) + return v; + + break; + + case 'hspace': + v = dom.getStyle(e, 'margin-left') + v2 = dom.getStyle(e, 'margin-right'); + + if (v && v == v2) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + + case 'vspace': + v = dom.getStyle(e, 'margin-top') + v2 = dom.getStyle(e, 'margin-bottom'); + if (v && v == v2) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + + case 'border': + v = 0; + + tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) { + sv = dom.getStyle(e, 'border-' + sv + '-width'); + + // False or not the same as prev + if (!sv || (sv != v && v !== 0)) { + v = 0; + return false; + } + + if (sv) + v = sv; + }); + + if (v) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + } + } + + if (v = dom.getAttrib(e, at)) + return v; + + return ''; + }, + + setSwapImage : function(st) { + var f = document.forms[0]; + + f.onmousemovecheck.checked = st; + setBrowserDisabled('overbrowser', !st); + setBrowserDisabled('outbrowser', !st); + + if (f.over_list) + f.over_list.disabled = !st; + + if (f.out_list) + f.out_list.disabled = !st; + + f.onmouseoversrc.disabled = !st; + f.onmouseoutsrc.disabled = !st; + }, + + fillClassList : function(id) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + if (v = tinyMCEPopup.getParam('theme_advanced_styles')) { + cl = []; + + tinymce.each(v.split(';'), function(v) { + var p = v.split('='); + + cl.push({'title' : p[0], 'class' : p[1]}); + }); + } else + cl = tinyMCEPopup.editor.dom.getClasses(); + + if (cl.length > 0) { + lst.options.length = 0; + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); + + tinymce.each(cl, function(o) { + lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + fillFileList : function(id, l) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + l = window[l]; + lst.options.length = 0; + + if (l && l.length > 0) { + lst.options[lst.options.length] = new Option('', ''); + + tinymce.each(l, function(o) { + lst.options[lst.options.length] = new Option(o[0], o[1]); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + resetImageData : function() { + var f = document.forms[0]; + + f.elements.width.value = f.elements.height.value = ''; + }, + + updateImageData : function(img, st) { + var f = document.forms[0]; + + if (!st) { + f.elements.width.value = img.width; + f.elements.height.value = img.height; + } + + this.preloadImg = img; + }, + + changeAppearance : function() { + var ed = tinyMCEPopup.editor, f = document.forms[0], img = document.getElementById('alignSampleImg'); + + if (img) { + if (ed.getParam('inline_styles')) { + ed.dom.setAttrib(img, 'style', f.style.value); + } else { + img.align = f.align.value; + img.border = f.border.value; + img.hspace = f.hspace.value; + img.vspace = f.vspace.value; + } + } + }, + + changeHeight : function() { + var f = document.forms[0], tp, t = this; + + if (!f.constrain.checked || !t.preloadImg) { + return; + } + + if (f.width.value == "" || f.height.value == "") + return; + + tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height; + f.height.value = tp.toFixed(0); + }, + + changeWidth : function() { + var f = document.forms[0], tp, t = this; + + if (!f.constrain.checked || !t.preloadImg) { + return; + } + + if (f.width.value == "" || f.height.value == "") + return; + + tp = (parseInt(f.height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width; + f.width.value = tp.toFixed(0); + }, + + updateStyle : function(ty) { + var dom = tinyMCEPopup.dom, b, bStyle, bColor, v, isIE = tinymce.isIE, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value}); + + if (tinyMCEPopup.editor.settings.inline_styles) { + // Handle align + if (ty == 'align') { + dom.setStyle(img, 'float', ''); + dom.setStyle(img, 'vertical-align', ''); + + v = getSelectValue(f, 'align'); + if (v) { + if (v == 'left' || v == 'right') + dom.setStyle(img, 'float', v); + else + img.style.verticalAlign = v; + } + } + + // Handle border + if (ty == 'border') { + b = img.style.border ? img.style.border.split(' ') : []; + bStyle = dom.getStyle(img, 'border-style'); + bColor = dom.getStyle(img, 'border-color'); + + dom.setStyle(img, 'border', ''); + + v = f.border.value; + if (v || v == '0') { + if (v == '0') + img.style.border = isIE ? '0' : '0 none none'; + else { + if (b.length == 3 && b[isIE ? 2 : 1]) + bStyle = b[isIE ? 2 : 1]; + else if (!bStyle || bStyle == 'none') + bStyle = 'solid'; + if (b.length == 3 && b[isIE ? 0 : 2]) + bColor = b[isIE ? 0 : 2]; + else if (!bColor || bColor == 'none') + bColor = 'black'; + img.style.border = v + 'px ' + bStyle + ' ' + bColor; + } + } + } + + // Handle hspace + if (ty == 'hspace') { + dom.setStyle(img, 'marginLeft', ''); + dom.setStyle(img, 'marginRight', ''); + + v = f.hspace.value; + if (v) { + img.style.marginLeft = v + 'px'; + img.style.marginRight = v + 'px'; + } + } + + // Handle vspace + if (ty == 'vspace') { + dom.setStyle(img, 'marginTop', ''); + dom.setStyle(img, 'marginBottom', ''); + + v = f.vspace.value; + if (v) { + img.style.marginTop = v + 'px'; + img.style.marginBottom = v + 'px'; + } + } + + // Merge + dom.get('style').value = dom.serializeStyle(dom.parseStyle(img.style.cssText), 'img'); + } + }, + + changeMouseMove : function() { + }, + + showPreviewImage : function(u, st) { + if (!u) { + tinyMCEPopup.dom.setHTML('prev', ''); + return; + } + + if (!st && tinyMCEPopup.getParam("advimage_update_dimensions_onchange", true)) + this.resetImageData(); + + u = tinyMCEPopup.editor.documentBaseURI.toAbsolute(u); + + if (!st) + tinyMCEPopup.dom.setHTML('prev', ''); + else + tinyMCEPopup.dom.setHTML('prev', ''); + } +}; + +ImageDialog.preInit(); +tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de_dlg.js new file mode 100644 index 0000000..e704596 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de_dlg.js @@ -0,0 +1,43 @@ +tinyMCE.addI18n('de.advimage_dlg',{ +tab_general:"Allgemein", +tab_appearance:"Aussehen", +tab_advanced:"Erweitert", +general:"Allgemein", +title:"Titel", +preview:"Vorschau", +constrain_proportions:"Seitenverh\u00E4ltnis beibehalten", +langdir:"Schriftrichtung", +langcode:"Sprachcode", +long_desc:"Ausf\u00FChrliche Beschreibung", +style:"Format", +classes:"Klassen", +ltr:"Links nach rechts", +rtl:"Rechts nach links", +id:"ID", +map:"Image-Map", +swap_image:"Bild austauschen", +alt_image:"Alternatives Bild", +mouseover:"bei Mauskontakt", +mouseout:"bei keinem Mauskontakt", +misc:"Verschiedenes", +example_img:"Aussehen der Vorschau", +missing_alt:"Wollen Sie wirklich keine Beschreibung eingeben? Bestimmte Benutzer mit k\u00F6rperlichen Einschr\u00E4nkungen k\u00F6nnen so nicht darauf zugreifen, ebenso solche, die einen Textbrowser benutzen oder die Anzeige von Bildern deaktiviert haben.", +dialog_title:"Bild einf\u00FCgen/bearbeiten", +src:"Adresse", +alt:"Beschreibung", +list:"Bilderliste", +border:"Rahmen", +dimensions:"Ausma\u00DFe", +vspace:"Vertikaler Abstand", +hspace:"Horizontaler Abstand", +align:"Ausrichtung", +align_baseline:"Zeile", +align_top:"Oben", +align_middle:"Mittig", +align_bottom:"Unten", +align_texttop:"Oben im Text", +align_textbottom:"Unten im Text", +align_left:"Links", +align_right:"Rechts", +image_list:"Bilderliste" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js new file mode 100644 index 0000000..d8f11e0 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js @@ -0,0 +1,45 @@ +tinyMCE.addI18n('en.advimage_dlg',{ +tab_general:"General", +tab_appearance:"Appearance", +tab_advanced:"Advanced", +general:"General", +title:"Title", +preview:"Preview", +constrain_proportions:"Constrain proportions", +langdir:"Language direction", +langcode:"Language code", +long_desc:"Long description link", +style:"Style", +classes:"Classes", +ltr:"Left to right", +rtl:"Right to left", +id:"Id", +map:"Image map", +swap_image:"Swap image", +alt_image:"Alternative image", +mouseover:"for mouse over", +mouseout:"for mouse out", +misc:"Miscellaneous", +example_img:"Appearance preview image", +missing_alt:"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.", +dialog_title:"Insert/edit image", +src:"Image URL", +alt:"Image description", +list:"Image list", +border:"Border", +dimensions:"Dimensions", +width:"Width", +height:"Height", +vspace:"Vertical space", +hspace:"Horizontal space", +align:"Alignment", +align_baseline:"Baseline", +align_top:"Top", +align_middle:"Middle", +align_bottom:"Bottom", +align_texttop:"Text top", +align_textbottom:"Text bottom", +align_left:"Left", +align_right:"Right", +image_list:"Image list" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/eo_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/eo_dlg.js new file mode 100644 index 0000000..650d422 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/eo_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.advimage_dlg',{"image_list":"Listo de bildoj","align_right":"Dekstre","align_left":"Maldekstre","align_textbottom":"Tekstosubo","align_texttop":"Tekstosupro","align_bottom":"Sube","align_middle":"Meze","align_top":"Supre","align_baseline":"Sur tekstlinio",align:"Liniigo",hspace:"Horizontala spaco",vspace:"Vertikala spaco",dimensions:"Dimensioj",border:"Bordero",list:"Listo de bildoj",alt:"Priskribo de bildo",src:"Adreso de bildo","dialog_title":"Enmeti/redakti bildon","missing_alt":"\u0108u vi certas ke vi volas da\u016drigi sen aldoni priskribon al la bildo? (Tio povas ka\u016dzi problemojn pri alireblo en iuj retumiloj)","example_img":"Anta\u016dvido",misc:"Cetera",mouseout:"Muso for",mouseover:"Muso \u015dvebado","alt_image":"Bildalternativo","swap_image":"\u015can\u011di bildon",map:"Bildomapo",id:"Id",rtl:"Dekstre-Maldekstren",ltr:"Maldekstre-Dekstren",classes:"Klasoj",style:"Stilo","long_desc":"Longa priskribo",langcode:"Lingvokodo",langdir:"Tekstodirekto","constrain_proportions":"Konservi proporcion",preview:"Anta\u016dvido",title:"Titolo",general:"\u011ceneralaj","tab_advanced":"Spertaj","tab_appearance":"Aspekto","tab_general":"\u011ceneralaj"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/es_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/es_dlg.js new file mode 100644 index 0000000..0930e30 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/es_dlg.js @@ -0,0 +1,43 @@ +tinyMCE.addI18n('es.advimage_dlg',{ +tab_general:"General", +tab_appearance:"Apariencia", +tab_advanced:"Avanzado", +general:"General", +title:"T\u00EDtulo", +preview:"Vista previa", +constrain_proportions:"Bloquear relaci\u00F3n de aspecto", +langdir:"Direcci\u00F3n del lenguaje", +langcode:"C\u00F3digo del lenguaje", +long_desc:"V\u00EDnculo para descripci\u00F3n larga", +style:"Estilos", +classes:"Clases", +ltr:"Izquierda a derecha", +rtl:"Derecha a izquierda", +id:"Id", +map:"Mapa de imagen", +swap_image:"Intercambiar imagen", +alt_image:"Imagen alternativa", +mouseover:"para mouseover", +mouseout:"para mouseout", +misc:"Miscel\u00E1neo", +example_img:"Vista previa de la imagen", +missing_alt:" \u00BFEsta seguro de continuar sin introducir una descripci\u00F3n a la imagen? Sin ella puede no ser accesible para usuarios con discapacidades, o para aquellos que usen navegadores de modo texto, o tengan deshabilitadas las im\u00E1genes de la p\u00E1gina.", +dialog_title:"Insertar/editar imagen", +src:"URL de la imagen", +alt:"Descripci\u00F3n de la imagen", +list:"Lista de imagen", +border:"Bordes", +dimensions:"Dimensiones", +vspace:"Espacio vertical", +hspace:"Espacio horizontal", +align:"Alineaci\u00F3n", +align_baseline:"L\u00EDnea base", +align_top:"Arriba", +align_middle:"Medio", +align_bottom:"Debajo", +align_texttop:"Texto arriba", +align_textbottom:"Texto abajo", +align_left:"Izquierda", +align_right:"Derecha", +image_list:"Lista de imagen" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fr_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fr_dlg.js new file mode 100644 index 0000000..134f448 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/fr_dlg.js @@ -0,0 +1,43 @@ +tinyMCE.addI18n('fr.advimage_dlg',{ +tab_general:"G\u00E9n\u00E9ral", +tab_appearance:"Apparence", +tab_advanced:"Avanc\u00E9", +general:"G\u00E9n\u00E9ral", +title:"Titre", +preview:"Pr\u00E9visualiser", +constrain_proportions:"Conserver les proportions", +langdir:"Sens de lecture", +langcode:"Code de la langue", +long_desc:"Description longue du lien", +style:"Style", +classes:"Classes", +ltr:"De gauche \u00E0 droite", +rtl:"De droite \u00E0 gauche", +id:"Id", +map:"Carte image", +swap_image:"Alterner image", +alt_image:"Image alternative", +mouseover:"au passage de la souris", +mouseout:"\u00E0 la sortie de la souris", +misc:"Divers", +example_img:"Apparence de l'image", +missing_alt:"\u00CAtes-vous s\u00FBr de vouloir continuer sans inclure de description de l'image? Sans description, l'image peut ne pas \u00EAtre accessible \u00E0 certains utilisateurs handicap\u00E9s visuellement, ceux utilisant un navigateur texte, ou ceux qui naviguent sans affichage des images.", +dialog_title:"Ins\u00E9rer/\u00C9diter image", +src:"URL de l'image", +alt:"Description de l'image", +list:"Liste d'images", +border:"Bordure", +dimensions:"Dimensions", +vspace:"Espacement vertical", +hspace:"Espacement horizontal", +align:"Alignement", +align_baseline:"Base", +align_top:"Haut", +align_middle:"Milieu", +align_bottom:"Bas", +align_texttop:"Haut du texte", +align_textbottom:"Bas du texte", +align_left:"Gauche", +align_right:"Droite", +image_list:"Liste d'images" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ja_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ja_dlg.js new file mode 100644 index 0000000..c8bfe48 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ja_dlg.js @@ -0,0 +1,43 @@ +tinyMCE.addI18n('ja.advimage_dlg',{ +tab_general:"\u4E00\u822C", +tab_appearance:"\u8868\u793A", +tab_advanced:"\u4E0A\u7D1A\u8005\u5411\u3051", +general:"\u4E00\u822C", +title:"\u30BF\u30A4\u30C8\u30EB", +preview:"\u30D7\u30EC\u30D3\u30E5\u30FC", +constrain_proportions:"\u7E26\u6A2A\u6BD4\u306E\u4FDD\u5B58", +langdir:"\u6587\u7AE0\u306E\u65B9\u5411", +langcode:"\u8A00\u8A9E\u30B3\u30FC\u30C9", +long_desc:"\u8A73\u7D30\u8AAC\u660E\u30EA\u30F3\u30AF", +style:"\u30B9\u30BF\u30A4\u30EB", +classes:"\u30AF\u30E9\u30B9", +ltr:"\u5DE6\u304B\u3089\u53F3", +rtl:"\u53F3\u304B\u3089\u5DE6", +id:"Id", +map:"\u30A4\u30E1\u30FC\u30B8\u30DE\u30C3\u30D7", +swap_image:"\u30ED\u30FC\u30EB\u30AA\u30FC\u30D0\u30FC\u52B9\u679C", +alt_image:"\u753B\u50CF\u5207\u66FF\u3092\u884C\u3046", +mouseover:"\u30DE\u30A6\u30B9\u30AA\u30FC\u30D0\u30FC\u6642", +mouseout:"\u30DE\u30A6\u30B9\u30A2\u30A6\u30C8\u6642", +misc:"\u305D\u306E\u4ED6", +example_img:"Appearance preview image", +missing_alt:"\u753B\u50CF\u306E\u8AAC\u660E\u6587\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u76EE\u306E\u4E0D\u81EA\u7531\u306A\u65B9\u3084\u30C6\u30AD\u30B9\u30C8\u30D6\u30E9\u30A6\u30B6\u3092\u5229\u7528\u3055\u308C\u3066\u3044\u308B\u65B9\u3078\u914D\u616E\u3057\u3001\u753B\u50CF\u8AAC\u660E\u3092\u5165\u529B\u3059\u308B\u3053\u3068\u3092\u304A\u85A6\u3081\u3057\u307E\u3059\u3002", +dialog_title:"\u753B\u50CF\u306E\u633F\u5165/\u7DE8\u96C6", +src:"\u753B\u50CFURL", +alt:"\u753B\u50CF\u306E\u8AAC\u660E", +list:"\u4E00\u89A7\u304B\u3089\u9078\u3076", +border:"\u67A0\u7DDA", +dimensions:"\u30B5\u30A4\u30BA", +vspace:"\u4E0A\u4E0B\u4F59\u767D", +hspace:"\u5DE6\u53F3\u4F59\u767D", +align:"\u914D\u7F6E", +align_baseline:"Baseline", +align_top:"Top", +align_middle:"Middle", +align_bottom:"Bottom", +align_texttop:"Text top", +align_textbottom:"Text bottom", +align_left:"Left", +align_right:"Right", +image_list:"\u4E00\u89A7\u304B\u3089\u9078\u3076" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/nl_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/nl_dlg.js new file mode 100644 index 0000000..b6db1f2 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/nl_dlg.js @@ -0,0 +1,43 @@ +tinyMCE.addI18n('nl.advimage_dlg',{ +tab_general:"Algemeen", +tab_appearance:"Weergave", +tab_advanced:"Geavanceerd", +general:"Algemeen", +title:"Titel", +preview:"Voorbeeld", +constrain_proportions:"Verhouding behouden", +langdir:"Taalrichting", +langcode:"Taalcode", +long_desc:"Uitgebreide beschrijving", +style:"Stijl", +classes:"Klasses", +ltr:"Van links naar rechts", +rtl:"Van rechts naar links", +id:"Id", +map:"Afbeeldingsplattegrond", +swap_image:"Afbeelding wisselen", +alt_image:"Alternatieve afbeeldingen", +mouseover:"Bij muis over", +mouseout:"Bij muis uit", +misc:"Diversen", +example_img:"Voorbeeldweergave", +missing_alt:"Wilt u de afbeelding zonder beschrijving invoegen? De afbeelding wordt dan mogelijk niet opgemerkt door mensen met een visuele handicap, of welke zonder afbeeldingen browsen.", +dialog_title:"Afbeelding invoegen/bewerken", +src:"Bestand/URL", +alt:"Beschrijving", +list:"Lijst", +border:"Rand", +dimensions:"Afmetingen", +vspace:"Verticale ruimte", +hspace:"Horizontale ruimte", +align:"Uitlijning", +align_baseline:"Basislijn", +align_top:"Boven", +align_middle:"Midden", +align_bottom:"Onder", +align_texttop:"Bovenkant tekst", +align_textbottom:"Onderkant tekst", +align_left:"Links", +align_right:"Rechts", +image_list:"Lijst" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/pt_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/pt_dlg.js new file mode 100644 index 0000000..46621ee --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/pt_dlg.js @@ -0,0 +1,43 @@ +tinyMCE.addI18n('pt.advimage_dlg',{ +tab_general:"Geral", +tab_appearance:"Apar\u00EAncia", +tab_advanced:"Avan\u00E7ado", +general:"Geral", +title:"T\u00EDtulo", +preview:"Pr\u00E9-Visualiza\u00E7\u00E3o", +constrain_proportions:"Manter propor\u00E7\u00F5es", +langdir:"Dire\u00E7\u00E3o do texto", +langcode:"C\u00F3digo de idioma", +long_desc:"Descri\u00E7\u00E3o extensa", +style:"Estilo", +classes:"Classes", +ltr:"Da esquerda para a direita", +rtl:"Da direita para a esquerda", +id:"Id", +map:"Mapa de imagem", +swap_image:"Trocar imagem", +alt_image:"Imagem alternativa", +mouseover:"mouseover", +mouseout:"mouseout", +misc:"Misto", +example_img:"Pr\u00E9-Visualiza\u00E7\u00E3o", +missing_alt:"Tem certeza que deseja continuar sem acrescentar uma descri\u00E7\u00E3o \u00E0 imagem? (Isto pode gerar problemas de acessibilidade em alguns navegadores)", +dialog_title:"Inserir/editar imagem", +src:"Endere\u00E7o da imagem", +alt:"Descri\u00E7\u00E3o da imagem", +list:"Lista de imagens", +border:"Limite", +dimensions:"Dimens\u00F5es", +vspace:"Espa\u00E7o vertical", +hspace:"Espa\u00E7o horizontal", +align:"Alinhamento", +align_baseline:"Sobre a linha de texto", +align_top:"Topo", +align_middle:"Meio", +align_bottom:"Abaixo", +align_texttop:"Topo do texto", +align_textbottom:"Base do texto", +align_left:"Esquerda", +align_right:"Direita", +image_list:"Lista de imagens" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ru_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ru_dlg.js new file mode 100644 index 0000000..9a4375e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advimage/langs/ru_dlg.js @@ -0,0 +1,43 @@ +tinyMCE.addI18n('ru.advimage_dlg',{ +tab_general:"\u041E\u0431\u0449\u0435\u0435", +tab_appearance:"\u0412\u0438\u0434", +tab_advanced:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E", +general:"\u041E\u0431\u0449\u0435\u0435", +title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A", +preview:"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440", +constrain_proportions:"\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043F\u0440\u043E\u043F\u043E\u0440\u0446\u0438\u0438", +langdir:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u044F\u0437\u044B\u043A\u0430", +langcode:"\u041A\u043E\u0434 \u044F\u0437\u044B\u043A\u0430", +long_desc:"Long description link", +style:"\u0421\u0442\u0438\u043B\u044C", +classes:"\u041A\u043B\u0430\u0441\u0441\u044B", +ltr:"\u0421\u043B\u0435\u0432\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043E", +rtl:"\u0421\u043F\u0440\u0430\u0432\u0430 \u043D\u0430\u043B\u0435\u0432\u043E", +id:"Id", +map:"Image map", +swap_image:"Swap image", +alt_image:"\u0410\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435", +mouseover:"\u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438", +mouseout:"\u043F\u0440\u0438 \u043E\u0442\u0432\u043E\u0434\u0435", +misc:"\u0414\u0440\u0443\u0433\u043E\u0435", +example_img:"\u0412\u0438\u0434 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F", +missing_alt:"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off", +dialog_title:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435", +src:"\u0410\u0434\u0440\u0435\u0441 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F", +alt:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435", +list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439", +border:"\u0413\u0440\u0430\u043D\u0438\u0446\u0430", +dimensions:"\u0420\u0430\u0437\u043C\u0435\u0440\u044B", +vspace:"\u0412\u0435\u0440\u0442. \u043E\u0442\u0441\u0442\u0443\u043F", +hspace:"\u0413\u043E\u0440\u0438\u0437. \u043E\u0442\u0441\u0442\u0443\u043F", +align:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435", +align_baseline:"\u041F\u043E \u0431\u0430\u0437\u043E\u0432\u043E\u0439 \u043B\u0438\u043D\u0438\u0438", +align_top:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E", +align_middle:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443", +align_bottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E", +align_texttop:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E \u0442\u0435\u043A\u0441\u0442\u0430", +align_textbottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E \u0442\u0435\u043A\u0441\u0442\u0430", +align_left:"\u041F\u043E \u043B\u0435\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E", +align_right:"\u041F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E", +image_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css new file mode 100644 index 0000000..1436431 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css @@ -0,0 +1,8 @@ +.mceLinkList, .mceAnchorList, #targetlist {width:280px;} +.mceActionPanel {margin-top:7px;} +.panel_wrapper div.current {height:320px;} +#classlist, #title, #href {width:280px;} +#popupurl, #popupname {width:200px;} +#popupwidth, #popupheight, #popupleft, #popuptop {width:30px;vertical-align:middle;text-align:center;} +#id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {width:200px;} +#events_panel input {width:200px;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js new file mode 100644 index 0000000..983fe5a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.AdvancedLinkPlugin",{init:function(a,b){this.editor=a;a.addCommand("mceAdvLink",function(){var c=a.selection;if(c.isCollapsed()&&!a.dom.getParent(c.getNode(),"A")){return}a.windowManager.open({file:b+"/link.htm",width:480+parseInt(a.getLang("advlink.delta_width",0)),height:400+parseInt(a.getLang("advlink.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("link",{title:"advlink.link_desc",cmd:"mceAdvLink"});a.addShortcut("ctrl+k","advlink.advlink_desc","mceAdvLink");a.onNodeChange.add(function(d,c,f,e){c.setDisabled("link",e&&f.nodeName!="A");c.setActive("link",f.nodeName=="A"&&!f.name)})},getInfo:function(){return{longname:"Advanced link",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advlink",tinymce.plugins.AdvancedLinkPlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js new file mode 100644 index 0000000..14e46a7 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js @@ -0,0 +1,61 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.AdvancedLinkPlugin', { + init : function(ed, url) { + this.editor = ed; + + // Register commands + ed.addCommand('mceAdvLink', function() { + var se = ed.selection; + + // No selection and not in link + if (se.isCollapsed() && !ed.dom.getParent(se.getNode(), 'A')) + return; + + ed.windowManager.open({ + file : url + '/link.htm', + width : 480 + parseInt(ed.getLang('advlink.delta_width', 0)), + height : 400 + parseInt(ed.getLang('advlink.delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + // Register buttons + ed.addButton('link', { + title : 'advlink.link_desc', + cmd : 'mceAdvLink' + }); + + ed.addShortcut('ctrl+k', 'advlink.advlink_desc', 'mceAdvLink'); + + ed.onNodeChange.add(function(ed, cm, n, co) { + cm.setDisabled('link', co && n.nodeName != 'A'); + cm.setActive('link', n.nodeName == 'A' && !n.name); + }); + }, + + getInfo : function() { + return { + longname : 'Advanced link', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('advlink', tinymce.plugins.AdvancedLinkPlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js new file mode 100644 index 0000000..837c937 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js @@ -0,0 +1,532 @@ +/* Functions for the advlink plugin popup */ + +tinyMCEPopup.requireLangPack(); + +var templates = { + "window.open" : "window.open('${url}','${target}','${options}')" +}; + +function preinit() { + var url; + + if (url = tinyMCEPopup.getParam("external_link_list_url")) + document.write(''); +} + +function changeClass() { + var f = document.forms[0]; + + f.classes.value = getSelectValue(f, 'classlist'); +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + + var formObj = document.forms[0]; + var inst = tinyMCEPopup.editor; + var elm = inst.selection.getNode(); + var action = "insert"; + var html; + + document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','advlink'); + document.getElementById('popupurlbrowsercontainer').innerHTML = getBrowserHTML('popupurlbrowser','popupurl','file','advlink'); + document.getElementById('targetlistcontainer').innerHTML = getTargetListHTML('targetlist','target'); + + // Link list + html = getLinkListHTML('linklisthref','href'); + if (html == "") + document.getElementById("linklisthrefrow").style.display = 'none'; + else + document.getElementById("linklisthrefcontainer").innerHTML = html; + + // Anchor list + html = getAnchorListHTML('anchorlist','href'); + if (html == "") + document.getElementById("anchorlistrow").style.display = 'none'; + else + document.getElementById("anchorlistcontainer").innerHTML = html; + + // Resize some elements + if (isVisible('hrefbrowser')) + document.getElementById('href').style.width = '260px'; + + if (isVisible('popupurlbrowser')) + document.getElementById('popupurl').style.width = '180px'; + + elm = inst.dom.getParent(elm, "A"); + if (elm != null && elm.nodeName == "A") + action = "update"; + + formObj.insert.value = tinyMCEPopup.getLang(action, 'Insert', true); + + setPopupControlsDisabled(true); + + if (action == "update") { + var href = inst.dom.getAttrib(elm, 'href'); + var onclick = inst.dom.getAttrib(elm, 'onclick'); + + // Setup form data + setFormValue('href', href); + setFormValue('title', inst.dom.getAttrib(elm, 'title')); + setFormValue('id', inst.dom.getAttrib(elm, 'id')); + setFormValue('style', inst.dom.getAttrib(elm, "style")); + setFormValue('rel', inst.dom.getAttrib(elm, 'rel')); + setFormValue('rev', inst.dom.getAttrib(elm, 'rev')); + setFormValue('charset', inst.dom.getAttrib(elm, 'charset')); + setFormValue('hreflang', inst.dom.getAttrib(elm, 'hreflang')); + setFormValue('dir', inst.dom.getAttrib(elm, 'dir')); + setFormValue('lang', inst.dom.getAttrib(elm, 'lang')); + setFormValue('tabindex', inst.dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : "")); + setFormValue('accesskey', inst.dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : "")); + setFormValue('type', inst.dom.getAttrib(elm, 'type')); + setFormValue('onfocus', inst.dom.getAttrib(elm, 'onfocus')); + setFormValue('onblur', inst.dom.getAttrib(elm, 'onblur')); + setFormValue('onclick', onclick); + setFormValue('ondblclick', inst.dom.getAttrib(elm, 'ondblclick')); + setFormValue('onmousedown', inst.dom.getAttrib(elm, 'onmousedown')); + setFormValue('onmouseup', inst.dom.getAttrib(elm, 'onmouseup')); + setFormValue('onmouseover', inst.dom.getAttrib(elm, 'onmouseover')); + setFormValue('onmousemove', inst.dom.getAttrib(elm, 'onmousemove')); + setFormValue('onmouseout', inst.dom.getAttrib(elm, 'onmouseout')); + setFormValue('onkeypress', inst.dom.getAttrib(elm, 'onkeypress')); + setFormValue('onkeydown', inst.dom.getAttrib(elm, 'onkeydown')); + setFormValue('onkeyup', inst.dom.getAttrib(elm, 'onkeyup')); + setFormValue('target', inst.dom.getAttrib(elm, 'target')); + setFormValue('classes', inst.dom.getAttrib(elm, 'class')); + + // Parse onclick data + if (onclick != null && onclick.indexOf('window.open') != -1) + parseWindowOpen(onclick); + else + parseFunction(onclick); + + // Select by the values + selectByValue(formObj, 'dir', inst.dom.getAttrib(elm, 'dir')); + selectByValue(formObj, 'rel', inst.dom.getAttrib(elm, 'rel')); + selectByValue(formObj, 'rev', inst.dom.getAttrib(elm, 'rev')); + selectByValue(formObj, 'linklisthref', href); + + if (href.charAt(0) == '#') + selectByValue(formObj, 'anchorlist', href); + + addClassesToList('classlist', 'advlink_styles'); + + selectByValue(formObj, 'classlist', inst.dom.getAttrib(elm, 'class'), true); + selectByValue(formObj, 'targetlist', inst.dom.getAttrib(elm, 'target'), true); + } else + addClassesToList('classlist', 'advlink_styles'); +} + +function checkPrefix(n) { + if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_email'))) + n.value = 'mailto:' + n.value; + + if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_external'))) + n.value = 'http://' + n.value; +} + +function setFormValue(name, value) { + document.forms[0].elements[name].value = value; +} + +function parseWindowOpen(onclick) { + var formObj = document.forms[0]; + + // Preprocess center code + if (onclick.indexOf('return false;') != -1) { + formObj.popupreturn.checked = true; + onclick = onclick.replace('return false;', ''); + } else + formObj.popupreturn.checked = false; + + var onClickData = parseLink(onclick); + + if (onClickData != null) { + formObj.ispopup.checked = true; + setPopupControlsDisabled(false); + + var onClickWindowOptions = parseOptions(onClickData['options']); + var url = onClickData['url']; + + formObj.popupname.value = onClickData['target']; + formObj.popupurl.value = url; + formObj.popupwidth.value = getOption(onClickWindowOptions, 'width'); + formObj.popupheight.value = getOption(onClickWindowOptions, 'height'); + + formObj.popupleft.value = getOption(onClickWindowOptions, 'left'); + formObj.popuptop.value = getOption(onClickWindowOptions, 'top'); + + if (formObj.popupleft.value.indexOf('screen') != -1) + formObj.popupleft.value = "c"; + + if (formObj.popuptop.value.indexOf('screen') != -1) + formObj.popuptop.value = "c"; + + formObj.popuplocation.checked = getOption(onClickWindowOptions, 'location') == "yes"; + formObj.popupscrollbars.checked = getOption(onClickWindowOptions, 'scrollbars') == "yes"; + formObj.popupmenubar.checked = getOption(onClickWindowOptions, 'menubar') == "yes"; + formObj.popupresizable.checked = getOption(onClickWindowOptions, 'resizable') == "yes"; + formObj.popuptoolbar.checked = getOption(onClickWindowOptions, 'toolbar') == "yes"; + formObj.popupstatus.checked = getOption(onClickWindowOptions, 'status') == "yes"; + formObj.popupdependent.checked = getOption(onClickWindowOptions, 'dependent') == "yes"; + + buildOnClick(); + } +} + +function parseFunction(onclick) { + var formObj = document.forms[0]; + var onClickData = parseLink(onclick); + + // TODO: Add stuff here +} + +function getOption(opts, name) { + return typeof(opts[name]) == "undefined" ? "" : opts[name]; +} + +function setPopupControlsDisabled(state) { + var formObj = document.forms[0]; + + formObj.popupname.disabled = state; + formObj.popupurl.disabled = state; + formObj.popupwidth.disabled = state; + formObj.popupheight.disabled = state; + formObj.popupleft.disabled = state; + formObj.popuptop.disabled = state; + formObj.popuplocation.disabled = state; + formObj.popupscrollbars.disabled = state; + formObj.popupmenubar.disabled = state; + formObj.popupresizable.disabled = state; + formObj.popuptoolbar.disabled = state; + formObj.popupstatus.disabled = state; + formObj.popupreturn.disabled = state; + formObj.popupdependent.disabled = state; + + setBrowserDisabled('popupurlbrowser', state); +} + +function parseLink(link) { + link = link.replace(new RegExp(''', 'g'), "'"); + + var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1"); + + // Is function name a template function + var template = templates[fnName]; + if (template) { + // Build regexp + var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi")); + var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\("; + var replaceStr = ""; + for (var i=0; i'); + for (var i=0; i' + name + ''; + } + + if (html == "") + return ""; + + html = ''; + + return html; +} + +function insertAction() { + var inst = tinyMCEPopup.editor; + var elm, elementArray, i; + + elm = inst.selection.getNode(); + checkPrefix(document.forms[0].href); + + elm = inst.dom.getParent(elm, "A"); + + // Remove element if there is no href + if (!document.forms[0].href.value) { + i = inst.selection.getBookmark(); + inst.dom.remove(elm, 1); + inst.selection.moveToBookmark(i); + tinyMCEPopup.execCommand("mceEndUndoLevel"); + tinyMCEPopup.close(); + return; + } + + // Create new anchor elements + if (elm == null) { + inst.getDoc().execCommand("unlink", false, null); + tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1}); + + elementArray = tinymce.grep(inst.dom.select("a"), function(n) {return inst.dom.getAttrib(n, 'href') == '#mce_temp_url#';}); + for (i=0; i' + tinyMCELinkList[i][0] + ''; + + html += ''; + + return html; + + // tinyMCE.debug('-- image list start --', html, '-- image list end --'); +} + +function getTargetListHTML(elm_id, target_form_element) { + var targets = tinyMCEPopup.getParam('theme_advanced_link_targets', '').split(';'); + var html = ''; + + html += ''; + + return html; +} + +// While loading +preinit(); +tinyMCEPopup.onInit.add(init); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de_dlg.js new file mode 100644 index 0000000..eb58236 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de_dlg.js @@ -0,0 +1,52 @@ +tinyMCE.addI18n('de.advlink_dlg',{ +title:"Link einf\u00FCgen/bearbeiten", +url:"Adresse", +target:"Fenster", +titlefield:"Titel", +is_email:"Diese Adresse scheint eine E-Mail-Adresse zu sein. M\u00F6chten Sie das dazu ben\u00F6tigte mailto: voranstellen?", +is_external:"Diese Adresse scheint ein externer Link zu sein. M\u00F6chten Sie das dazu ben\u00F6tigte http:// voranstellen?", +list:"Linkliste", +general_tab:"Allgemein", +popup_tab:"Popup", +events_tab:"Ereignisse", +advanced_tab:"Erweitert", +general_props:"Allemeine Eigenschaften", +popup_props:"Popup-Eigenschaften", +event_props:"Ereignisse", +advanced_props:"Erweiterte Eigenschaften", +popup_opts:"Optionen", +anchor_names:"Anker", +target_same:"Im selben Fenster/Frame \u00F6ffnen", +target_parent:"Im \u00FCbergeordneten Fenster/Frame \u00F6ffnen", +target_top:"Im obersten Frame \u00F6ffnen (sprengt das Frameset)", +target_blank:"In neuem Fenster \u00F6ffnen", +popup:"JavaScript-Popup", +popup_url:"Popup-Adresse", +popup_name:"Name des Fensters", +popup_return:"Link trotz Popup folgen", +popup_scrollbars:"Scrollbalken anzeigen", +popup_statusbar:"Statusleiste anzeigen", +popup_toolbar:"Werkzeugleisten anzeigen", +popup_menubar:"Browsermen\u00FC anzeigen", +popup_location:"Adressleiste anzeigen", +popup_resizable:"Vergr\u00F6\u00DFern des Fenster zulassen", +popup_dependent:"Vom Elternfenster abh\u00E4ngig
                    (nur Mozilla/Firefox) ", +popup_size:"Gr\u00F6\u00DFe", +popup_position:"Position (X/Y)", +id:"ID", +style:"Format", +classes:"Klassen", +target_name:"Name der Zielseite", +langdir:"Schriftrichtung", +target_langcode:"Sprache der Zielseite", +langcode:"Sprachcode", +encoding:"Zeichenkodierung der Zielseite", +mime:"MIME-Type der Zielseite", +rel:"Beziehung der Seite zum Linkziel", +rev:"Beziehung des Linkziels zur Seite", +tabindex:"Tabindex", +accesskey:"Tastenk\u00FCrzel", +ltr:"Links nach rechts", +rtl:"Rechts nach links", +link_list:"Linkliste" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js new file mode 100644 index 0000000..19dff29 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js @@ -0,0 +1,54 @@ +tinyMCE.addI18n('en.advlink_dlg',{ +title:"Insert/edit link", +url:"Link URL", +target:"Target", +titlefield:"Title", +is_email:"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?", +is_external:"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?", +list:"Link list", +general_tab:"General", +popup_tab:"Popup", +events_tab:"Events", +advanced_tab:"Advanced", +general_props:"General properties", +popup_props:"Popup properties", +event_props:"Events", +advanced_props:"Advanced properties", +popup_opts:"Options", +anchor_names:"Anchors", +target_same:"Open in this window / frame", +target_parent:"Open in parent window / frame", +target_top:"Open in top frame (replaces all frames)", +target_blank:"Open in new window", +popup:"Javascript popup", +popup_url:"Popup URL", +popup_name:"Window name", +popup_return:"Insert 'return false'", +popup_scrollbars:"Show scrollbars", +popup_statusbar:"Show status bar", +popup_toolbar:"Show toolbars", +popup_menubar:"Show menu bar", +popup_location:"Show location bar", +popup_resizable:"Make window resizable", +popup_dependent:"Dependent (Mozilla/Firefox only)", +popup_size:"Size", +width:"Width", +height:"Height", +popup_position:"Position (X/Y)", +id:"Id", +style:"Style", +classes:"Classes", +target_name:"Target name", +langdir:"Language direction", +target_langcode:"Target language", +langcode:"Language code", +encoding:"Target character encoding", +mime:"Target MIME type", +rel:"Relationship page to target", +rev:"Relationship target to page", +tabindex:"Tabindex", +accesskey:"Accesskey", +ltr:"Left to right", +rtl:"Right to left", +link_list:"Link list" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/eo_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/eo_dlg.js new file mode 100644 index 0000000..69660de --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/eo_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.advlink_dlg',{"target_name":"Nomo de celo",classes:"Klasoj",style:"Stilo",id:"Id","popup_position":"Pozicio (X/Y)",langdir:"Tekstodirekto","popup_size":"Grandeco","popup_dependent":"Dependa (nur Mozilla/Firefox)","popup_resizable":"Permesi \u015dan\u011di la grandecon de fenestro","popup_location":"Montri adresbreton","popup_menubar":"Montri menubreton","popup_toolbar":"Montri ilobreton","popup_statusbar":"Montri statbreton","popup_scrollbars":"Montri rulumskalojn","popup_return":"Enmeti \"return false\"","popup_name":"Nomo de la fenestro","popup_url":"URL de la \u015dprucfenestro",popup:"\u015cprucfenestro Javascript","target_blank":"Malfermi en novan fenestron","target_top":"Malfermi en la plej supran nivelon (anstata\u016digas \u0109iujn kadrojn)","target_parent":"Malfermi en la patran fenestron/kadron","target_same":"Malfermi en \u0109i tiun fenestron/kadron","anchor_names":"Ankroj","popup_opts":"Agordoj","advanced_props":"Spertaj atributoj","event_props":"Eventoj","popup_props":"Atributoj de \u015dprucfenestro","general_props":"\u011ceneralaj atributoj","advanced_tab":"Spertaj","events_tab":"Eventoj","popup_tab":"\u015cprucfenestro","general_tab":"\u011ceneralaj",list:"Listo de ligiloj","is_external":"La entajpita adreso \u015dajne kondukas al ekstera ligilo. \u0108u vi volas aldoni la necesan prefikson http://?","is_email":"La entajpita adreso \u015dajnas retpo\u015dtadreso. \u0108u vi volas aldoni la necesan prefikson mailto:?",titlefield:"Titolo",target:"Celo",url:"Adreso de ligilo",title:"Enmeti/redakti ligilon","link_list":"Listo de ligiloj",rtl:"Dekstre-Maldekstren",ltr:"Maldekstre-Dekstren",accesskey:"Alir\u015dlosilo",tabindex:"TabIndekso",rev:"Rilato celo/pa\u011do",rel:"Rilato pa\u011do/celo",mime:"MIME-Tipo de la celo",encoding:"Signa enkodigo",langcode:"Lingvokodo","target_langcode":"Cellingvo"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/es_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/es_dlg.js new file mode 100644 index 0000000..d99c45c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/es_dlg.js @@ -0,0 +1,52 @@ +tinyMCE.addI18n('es.advlink_dlg',{ +title:"Insertar/editar hiperv\u00EDnculo", +url:"URL del hiperv\u00EDnculo", +target:"Destino", +titlefield:"T\u00EDtulo", +is_email:"La URL que ha introducido parece ser una direci\u00F3n de correo, \u00BFdesea agregar el prefijo mailto: necesario?", +is_external:"La URL que ha introducido parece ser un v\u00EDnculo externo, \u00BFdesea agregar el prefijo http:// necesario?", +list:"Lista de v\u00EDnculos", +general_tab:"General", +popup_tab:"Ventana emergente", +events_tab:"Eventos", +advanced_tab:"Avanzado", +general_props:"Propiedades generales", +popup_props:"Propiedades de ventanas emergentes", +event_props:"Eventos", +advanced_props:"Propiedades avanzadas", +popup_opts:"Opciones", +anchor_names:"Anclas", +target_same:"Abrir en esta ventana / marco", +target_parent:"Abrir en ventana padre / marco", +target_top:"Abrir en el marco superior (reemplaza todos los marcos)", +target_blank:"Abrir en ventana nueva", +popup:"Javascript popup", +popup_url:"URL de la ventana emergente", +popup_name:"Nombre de la ventana", +popup_return:"Insertar 'return false'", +popup_scrollbars:"Barras de desplazamiento", +popup_statusbar:"Barra de estado", +popup_toolbar:"Barra de herramientas", +popup_menubar:"Barra de men\u00FA", +popup_location:"Barra de localizaci\u00F3n", +popup_resizable:"Permitir cambiar el tama\u00F1o de la ventana", +popup_dependent:"Dependientes (s\u00F3lo Mozilla/Firefox)", +popup_size:"Tama\u00F1o", +popup_position:"Posici\u00F3n (X/Y)", +id:"Id", +style:"Estilo", +classes:"Clases", +target_name:"Nombre del Target", +langdir:"Direcci\u00F3n del lenguaje", +target_langcode:"Lenguaje del Target", +langcode:"C\u00F3digo del lenguaje", +encoding:"Codificaci\u00F3n de caracteres del Target", +mime:"Tipo MIME del Target", +rel:"Relaci\u00F3n p\u00E1gina a target", +rev:"Relaci\u00F3n target a p\u00E1gina", +tabindex:"Indice de tabulaci\u00F3n", +accesskey:"Tecla de acceso", +ltr:"Izquierda a derecha", +rtl:"Derecha a izquierda", +link_list:"Lista de v\u00EDnculo" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr_dlg.js new file mode 100644 index 0000000..d9fc38a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/fr_dlg.js @@ -0,0 +1,52 @@ +tinyMCE.addI18n('fr.advlink_dlg',{ +title:"Ins\u00E9rer/\u00C9diter lien", +url:"URL du lien", +target:"Cible", +titlefield:"Titre", +is_email:"L'URL que vous avez entr\u00E9 semble \u00EAtre une adresse e-mail, voulez-vous ajouter le pr\u00E9fixe mailto:?", +is_external:"L'URL que vous avez entr\u00E9 semble \u00EAtre une adresse web externe, voulez-vous ajouter le pr\u00E9fixe http://?", +list:"Liste de liens", +general_tab:"G\u00E9n\u00E9ral", +popup_tab:"Popup", +events_tab:"\u00C9v\u00E9nements", +advanced_tab:"Avanc\u00E9", +general_props:"Propri\u00E9t\u00E9s g\u00E9n\u00E9rales", +popup_props:"Propri\u00E9t\u00E9s du popup", +event_props:"\u00C9v\u00E9nements", +advanced_props:"Propri\u00E9t\u00E9s avanc\u00E9es", +popup_opts:"Options", +anchor_names:"Ancres", +target_same:"Ouvrir dans cette fen\u00EAtre / dans ce cadre", +target_parent:"Ouvrir dans la fen\u00EAtre / le cadre parent", +target_top:"Ouvrir dans le cadre principal (Remplace tous les cadres)", +target_blank:"Ouvrir dans une nouvelle fen\u00EAtre", +popup:"Popup en Javascript", +popup_url:"URL du popup", +popup_name:"Nom de la fen\u00EAtre", +popup_return:"Ins\u00E9rer 'return false'", +popup_scrollbars:"Afficher les ascenseurs", +popup_statusbar:"Afficher la barre de statuts", +popup_toolbar:"Afficher la barre d'outils", +popup_menubar:"Afficher la barre de menu", +popup_location:"Afficher la barre d'adresse", +popup_resizable:"Rendre la fen\u00EAtre redimensionnable", +popup_dependent:"D\u00E9pendant (seulement sous Mozilla/Firefox)", +popup_size:"Taille", +popup_position:"Position (X/Y)", +id:"Id", +style:"Style", +classes:"Classes", +target_name:"Nom de la cible", +langdir:"Sens de lecture", +target_langcode:"Langue de la cible", +langcode:"Code de la langue", +encoding:"Encodage de la cible", +mime:"Type MIME de la cible", +rel:"Relation de la page \u00E0 la cible", +rev:"Relation de la cible \u00E0 la page", +tabindex:"Tabindex", +accesskey:"Touche d'acc\u00E8s rapide", +ltr:"Gauche \u00E0 droite", +rtl:"Droite \u00E0 gauche", +link_list:"Liste des liens" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ja_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ja_dlg.js new file mode 100644 index 0000000..e009517 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ja_dlg.js @@ -0,0 +1,52 @@ +tinyMCE.addI18n('ja.advlink_dlg',{ +title:"\u30EA\u30F3\u30AF\u306E\u633F\u5165/\u7DE8\u96C6", +url:"\u30EA\u30F3\u30AFURL", +target:"\u30BF\u30FC\u30B2\u30C3\u30C8", +titlefield:"\u30BF\u30A4\u30C8\u30EB", +is_email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F\u3002\u30EA\u30F3\u30AF\u306Bmailto:\u3092\u4ED8\u52A0\u3057\u307E\u3059\u304B\uFF1F", +is_external:"\u30EA\u30F3\u30AF\u306Bhttp://\u3092\u4ED8\u52A0\u3057\u307E\u3059\u304B\uFF1F", +list:"\u4E00\u89A7\u304B\u3089\u9078\u3076", +general_tab:"\u4E00\u822C", +popup_tab:"\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7", +events_tab:"\u30A4\u30D9\u30F3\u30C8", +advanced_tab:"\u4E0A\u7D1A\u8005\u5411\u3051", +general_props:"\u4E00\u822C", +popup_props:"\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7", +event_props:"\u30A4\u30D9\u30F3\u30C8", +advanced_props:"\u4E0A\u7D1A\u8005\u5411\u3051", +popup_opts:"\u30AA\u30D7\u30B7\u30E7\u30F3", +anchor_names:"\u30A2\u30F3\u30AB\u30FC", +target_same:"\u3053\u306E\u30A6\u30A4\u30F3\u30C9\u30A6/\u30D5\u30EC\u30FC\u30E0\u3067\u958B\u304F", +target_parent:"\u89AA\u30A6\u30A4\u30F3\u30C9\u30A6/\u89AA\u30D5\u30EC\u30FC\u30E0\u3067\u958B\u304F", +target_top:"\u30C8\u30C3\u30D7\u306E\u30D5\u30EC\u30FC\u30E0\u3067\u958B\u304F", +target_blank:"\u65B0\u3057\u3044\u30A6\u30A4\u30F3\u30C9\u30A6\u3067\u958B\u304F", +popup:"Javascript\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7", +popup_url:"\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7URL", +popup_name:"\u30A6\u30A4\u30F3\u30C9\u30A6\u540D", +popup_return:"'return false'\u3092\u633F\u5165\u3059\u308B", +popup_scrollbars:"\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u3092\u8868\u793A", +popup_statusbar:"\u30B9\u30C6\u30FC\u30BF\u30B9\u30D0\u30FC\u3092\u8868\u793A", +popup_toolbar:"\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u8868\u793A", +popup_menubar:"\u30E1\u30CB\u30E5\u30FC\u30D0\u30FC\u3092\u8868\u793A", +popup_location:"\u30A2\u30C9\u30EC\u30B9\u30D0\u30FC\u3092\u8868\u793A", +popup_resizable:"\u30A6\u30A4\u30F3\u30C9\u30A6\u306E\u30B5\u30A4\u30BA\u5909\u66F4\u3092\u8A31\u53EF\u3059\u308B", +popup_dependent:"Dependent (Mozilla/Firefox\u306E\u307F)", +popup_size:"\u30B5\u30A4\u30BA", +popup_position:"\u4F4D\u7F6E (X/Y)", +id:"ID", +style:"\u30B9\u30BF\u30A4\u30EB", +classes:"\u30AF\u30E9\u30B9", +target_name:"\u30BF\u30FC\u30B2\u30C3\u30C8\u540D", +langdir:"\u6587\u7AE0\u306E\u65B9\u5411", +target_langcode:"\u30BF\u30FC\u30B2\u30C3\u30C8\u306E\u8A00\u8A9E", +langcode:"\u8A00\u8A9E\u30B3\u30FC\u30C9", +encoding:"\u30BF\u30FC\u30B2\u30C3\u30C8\u306E\u6587\u5B57\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0", +mime:"\u30BF\u30FC\u30B2\u30C3\u30C8\u306EMIME\u30BF\u30A4\u30D7", +rel:"\u3053\u306E\u30DA\u30FC\u30B8\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306B\u5BFE\u3059\u308B\u95A2\u4FC2", +rev:"\u30BF\u30FC\u30B2\u30C3\u30C8\u306E\u3053\u306E\u30DA\u30FC\u30B8\u306B\u5BFE\u3059\u308B\u95A2\u4FC2", +tabindex:"\u30BF\u30D6\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9", +accesskey:"\u30A2\u30AF\u30BB\u30B9\u30AD\u30FC", +ltr:"\u5DE6\u304B\u3089\u53F3", +rtl:"\u53F3\u304B\u3089\u5DE6", +link_list:"\u4E00\u89A7\u304B\u3089\u9078\u3076" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/nl_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/nl_dlg.js new file mode 100644 index 0000000..e8f2fd6 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/nl_dlg.js @@ -0,0 +1,52 @@ +tinyMCE.addI18n('nl.advlink_dlg',{ +title:"Link invoegen/bewerken", +url:"URL", +target:"Doel", +titlefield:"Titel", +is_email:"De ingevoerde URL lijkt op een e-mailadres. Wilt u de vereiste mailto: tekst voorvoegen?", +is_external:"De ingevoerde URL lijkt op een externe link. Wilt u de vereiste http:// tekst voorvoegen?", +list:"Lijst", +general_tab:"Algemeen", +popup_tab:"Popup", +events_tab:"Gebeurtenissen", +advanced_tab:"Geavanceerd", +general_props:"Algemene eigenschappen", +popup_props:"Popup eigenschappen", +event_props:"Gebeurtenissen", +advanced_props:"Geavanceerde eigenschappen", +popup_opts:"Opties", +anchor_names:"Ankers", +target_same:"In dit venster / frame openen", +target_parent:"In bovenliggend venster / frame openen", +target_top:"In bovenste frame openen (vervangt gehele pagina)", +target_blank:"In nieuw venster openen", +popup:"Javascript popup", +popup_url:"Popup URL", +popup_name:"Venstertitel", +popup_return:"'return false' invoegen", +popup_scrollbars:"Scrollbalken weergeven", +popup_statusbar:"Statusbalk weergeven", +popup_toolbar:"Werkbalk weergeven", +popup_menubar:"Menubalk weergeven", +popup_location:"Lokatiebalk weergeven", +popup_resizable:"Aanpasbaar venster", +popup_dependent:"Afhankelijk (Alleen Mozilla/Firefox)", +popup_size:"Grootte", +popup_position:"Positie (X/Y)", +id:"Id", +style:"Stijl", +classes:"Klassen", +target_name:"Doel", +langdir:"Taalrichting", +target_langcode:"Taal", +langcode:"Taalcode", +encoding:"Taalcodering", +mime:"MIME type", +rel:"Relatie van pagina tot doel", +rev:"Relatie van doel tot pagina", +tabindex:"Tabvolgorde", +accesskey:"Toegangstoets", +ltr:"Van links naar rechts", +rtl:"Van rechts naar links", +link_list:"Lijst" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/pt_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/pt_dlg.js new file mode 100644 index 0000000..83bdb4a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/pt_dlg.js @@ -0,0 +1,52 @@ +tinyMCE.addI18n('pt.advlink_dlg',{ +title:"Inserir/editar hyperlink", +url:"URL do hyperlink", +target:"Alvo", +titlefield:"T\u00EDtulo", +is_email:"A URL digitada parece ser um endere\u00E7o de e-mail. Deseja acrescentar o prefixo necess\u00E1rio mailto:?", +is_external:"A URL digitada parece conduzir a um link externo. Deseja acrescentar o prefixo necess\u00E1rio http://?", +list:"Lista de hyperlinks", +general_tab:"Geral", +popup_tab:"Popup", +events_tab:"Eventos", +advanced_tab:"Avan\u00E7ado", +general_props:"Propriedades gerais", +popup_props:"Propriedades de popup", +event_props:"Eventos", +advanced_props:"Propriedades avan\u00E7adas", +popup_opts:"Op\u00E7\u00F5es", +anchor_names:"\u00C2ncoras", +target_same:"Abrir nesta janela/quadro", +target_parent:"Abrir na janela/quadro pai", +target_top:"Abrir na p\u00E1gina inteira (substitui todos os quadros)", +target_blank:"Abrir numa nova janela", +popup:"Popup javascript", +popup_url:"URL do popup", +popup_name:"Nome da janela", +popup_return:"Inserir \"return false\"", +popup_scrollbars:"Mostrar as barras de scroll", +popup_statusbar:"Mostrar a barra de status", +popup_toolbar:"Mostrar a barra de ferramentas", +popup_menubar:"Mostrar a barra de menu", +popup_location:"Mostrar a barra de endere\u00E7os", +popup_resizable:"Permitir altera\u00E7\u00E3o do tamanho da janela", +popup_dependent:"Dependente (Mozilla/Firefox apenas)", +popup_size:"Tamanho", +popup_position:"Posi\u00E7\u00E3o (X/Y)", +id:"Id", +style:"Estilo", +classes:"Classes", +target_name:"Nome do alvo", +langdir:"Dire\u00E7\u00E3o do texto", +target_langcode:"Idioma alvo", +langcode:"C\u00F3digo da idioma", +encoding:"Codifica\u00E7\u00E3o de caracteres", +mime:"Tipo MIME alvo", +rel:"Rela\u00E7\u00E3o p\u00E1gina/alvo", +rev:"Rela\u00E7\u00E3o alvo/p\u00E1gina", +tabindex:"Tabindex", +accesskey:"Chave de acesso", +ltr:"Da esquerda para a direita", +rtl:"Da direita para a esquerda", +link_list:"Lista de hyperlinks" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ru_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ru_dlg.js new file mode 100644 index 0000000..79747e3 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/langs/ru_dlg.js @@ -0,0 +1,52 @@ +tinyMCE.addI18n('ru.advlink_dlg',{ +title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C / \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443", +url:"\u0410\u0434\u0440\u0435\u0441", +target:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 ...", +titlefield:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A", +is_email:"\u0412\u0432\u0435\u0434\u0435\u043D\u043D\u044B\u0439 URL \u043F\u043E\u0445\u043E\u0436 \u043D\u0430 email \u0430\u0434\u0440\u0435\u0441, \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0439 \u043F\u0440\u0435\u0444\u0438\u043A\u0441 mailto?", +is_external:"\u0412\u0432\u0435\u0434\u0435\u043D\u043D\u044B\u0439 URL \u043F\u043E\u0445\u043E\u0436 \u043D\u0430 \u0432\u043D\u0435\u0448\u043D\u044E\u044E \u0441\u0441\u044B\u043B\u043A\u0443, \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0439 \u043F\u0440\u0435\u0444\u0438\u043A\u0441 http://?", +list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0441\u0441\u044B\u043B\u043E\u043A", +general_tab:"\u041E\u0431\u0449\u0435\u0435", +popup_tab:"Popup", +events_tab:"\u0421\u043E\u0431\u044B\u0442\u0438\u044F", +advanced_tab:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E", +general_props:"\u041E\u0431\u0449\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430", +popup_props:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 Popup", +event_props:"\u0421\u043E\u0431\u044B\u0442\u0438\u044F", +advanced_props:"\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430", +popup_opts:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430", +anchor_names:"\u042F\u043A\u043E\u0440\u044F", +target_same:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 \u044D\u0442\u043E\u043C \u0436\u0435 \u043E\u043A\u043D\u0435 / \u0444\u0440\u0435\u0439\u043C\u0435", +target_parent:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u043C \u043E\u043A\u043D\u0435 / \u0444\u0440\u0435\u0439\u043C\u0435", +target_top:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 \u0432\u0435\u0440\u0445\u043D\u0435\u043C \u0444\u0440\u0435\u0439\u043C\u0435 (\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435 \u0444\u0440\u0435\u0439\u043C\u044B)", +target_blank:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 \u043D\u043E\u0432\u043E\u043C \u043E\u043A\u043D\u0435", +popup:"Javascript popup", +popup_url:"Popup URL", +popup_name:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u043A\u043D\u0430", +popup_return:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C 'return false'", +popup_scrollbars:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u043A\u0440\u043E\u043B\u043B\u0435\u0440\u044B", +popup_statusbar:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441", +popup_toolbar:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432", +popup_menubar:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0435\u043D\u044E", +popup_location:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C location", +popup_resizable:"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u044F\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0440", +popup_dependent:"Dependent (\u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F Mozilla / Firefox)", +popup_size:"\u0420\u0430\u0437\u043C\u0435\u0440", +popup_position:"\u041F\u043E\u0437\u0438\u0446\u0438\u044F (X / Y)", +id:"Id", +style:"\u0421\u0442\u0438\u043B\u044C", +classes:"\u041A\u043B\u0430\u0441\u0441\u044B", +target_name:"Target name", +langdir:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u044F\u0437\u044B\u043A\u0430", +target_langcode:"Target language", +langcode:"\u041A\u043E\u0434 \u044F\u0437\u044B\u043A\u0430", +encoding:"Target character encoding", +mime:"Target MIME type", +rel:"Relationship page to target", +rev:"Relationship target to page", +tabindex:"Tabindex", +accesskey:"Accesskey", +ltr:"\u0421\u043B\u0435\u0432\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043E", +rtl:"\u0421\u043F\u0440\u0430\u0432\u0430 \u043D\u0430\u043B\u0435\u0432\u043E", +link_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0441\u0441\u044B\u043B\u043E\u043A" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm new file mode 100644 index 0000000..8ab7c2a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm @@ -0,0 +1,338 @@ + + + + {#advlink_dlg.title} + + + + + + + + + +
                    + + + + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js new file mode 100644 index 0000000..8895112 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js @@ -0,0 +1 @@ +(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.AdvListPlugin",{init:function(b,c){var d=this;d.editor=b;function e(g){var f=[];a(g.split(/,/),function(h){f.push({title:"advlist."+(h=="default"?"def":h.replace(/-/g,"_")),styles:{listStyleType:h=="default"?"":h}})});return f}d.numlist=b.getParam("advlist_number_styles")||e("default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman");d.bullist=b.getParam("advlist_bullet_styles")||e("default,circle,disc,square");if(tinymce.isIE&&/MSIE [2-7]/.test(navigator.userAgent)){d.isIE7=true}},createControl:function(d,b){var f=this,e,h;if(d=="numlist"||d=="bullist"){if(f[d][0].title=="advlist.def"){h=f[d][0]}function c(i,k){var j=true;a(k.styles,function(m,l){if(f.editor.dom.getStyle(i,l)!=m){j=false;return false}});return j}function g(){var k,i=f.editor,l=i.dom,j=i.selection;k=l.getParent(j.getNode(),"ol,ul");if(!k||k.nodeName==(d=="bullist"?"OL":"UL")||c(k,h)){i.execCommand(d=="bullist"?"InsertUnorderedList":"InsertOrderedList")}if(h){k=l.getParent(j.getNode(),"ol,ul");if(k){l.setStyles(k,h.styles);k.removeAttribute("data-mce-style")}}i.focus()}e=b.createSplitButton(d,{title:"advanced."+d+"_desc","class":"mce_"+d,onclick:function(){g()}});e.onRenderMenu.add(function(i,j){j.onShowMenu.add(function(){var m=f.editor.dom,l=m.getParent(f.editor.selection.getNode(),"ol,ul"),k;if(l||h){k=f[d];a(j.items,function(n){var o=true;n.setSelected(0);if(l&&!n.isDisabled()){a(k,function(p){if(p.id==n.id){if(!c(l,p)){o=false;return false}}});if(o){n.setSelected(1)}}});if(!l){j.items[h.id].setSelected(1)}}});j.add({id:f.editor.dom.uniqueId(),title:"advlist.types","class":"mceMenuItemTitle",titleItem:true}).setDisabled(1);a(f[d],function(k){if(f.isIE7&&k.styles.listStyleType=="lower-greek"){return}k.id=f.editor.dom.uniqueId();j.add({id:k.id,title:k.title,onclick:function(){h=k;g()}})})});return e}},getInfo:function(){return{longname:"Advanced lists",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlist",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advlist",tinymce.plugins.AdvListPlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js new file mode 100644 index 0000000..13ef02d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js @@ -0,0 +1,161 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var each = tinymce.each; + + tinymce.create('tinymce.plugins.AdvListPlugin', { + init : function(ed, url) { + var t = this; + + t.editor = ed; + + function buildFormats(str) { + var formats = []; + + each(str.split(/,/), function(type) { + formats.push({ + title : 'advlist.' + (type == 'default' ? 'def' : type.replace(/-/g, '_')), + styles : { + listStyleType : type == 'default' ? '' : type + } + }); + }); + + return formats; + }; + + // Setup number formats from config or default + t.numlist = ed.getParam("advlist_number_styles") || buildFormats("default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman"); + t.bullist = ed.getParam("advlist_bullet_styles") || buildFormats("default,circle,disc,square"); + + if (tinymce.isIE && /MSIE [2-7]/.test(navigator.userAgent)) + t.isIE7 = true; + }, + + createControl: function(name, cm) { + var t = this, btn, format; + + if (name == 'numlist' || name == 'bullist') { + // Default to first item if it's a default item + if (t[name][0].title == 'advlist.def') + format = t[name][0]; + + function hasFormat(node, format) { + var state = true; + + each(format.styles, function(value, name) { + // Format doesn't match + if (t.editor.dom.getStyle(node, name) != value) { + state = false; + return false; + } + }); + + return state; + }; + + function applyListFormat() { + var list, ed = t.editor, dom = ed.dom, sel = ed.selection; + + // Check for existing list element + list = dom.getParent(sel.getNode(), 'ol,ul'); + + // Switch/add list type if needed + if (!list || list.nodeName == (name == 'bullist' ? 'OL' : 'UL') || hasFormat(list, format)) + ed.execCommand(name == 'bullist' ? 'InsertUnorderedList' : 'InsertOrderedList'); + + // Append styles to new list element + if (format) { + list = dom.getParent(sel.getNode(), 'ol,ul'); + if (list) { + dom.setStyles(list, format.styles); + list.removeAttribute('data-mce-style'); + } + } + ed.focus(); + }; + + btn = cm.createSplitButton(name, { + title : 'advanced.' + name + '_desc', + 'class' : 'mce_' + name, + onclick : function() { + applyListFormat(); + } + }); + + btn.onRenderMenu.add(function(btn, menu) { + menu.onShowMenu.add(function() { + var dom = t.editor.dom, list = dom.getParent(t.editor.selection.getNode(), 'ol,ul'), fmtList; + + if (list || format) { + fmtList = t[name]; + + // Unselect existing items + each(menu.items, function(item) { + var state = true; + + item.setSelected(0); + + if (list && !item.isDisabled()) { + each(fmtList, function(fmt) { + if (fmt.id == item.id) { + if (!hasFormat(list, fmt)) { + state = false; + return false; + } + } + }); + + if (state) + item.setSelected(1); + } + }); + + // Select the current format + if (!list) + menu.items[format.id].setSelected(1); + } + }); + + menu.add({id : t.editor.dom.uniqueId(), title : 'advlist.types', 'class' : 'mceMenuItemTitle', titleItem: true}).setDisabled(1); + + each(t[name], function(item) { + // IE<8 doesn't support lower-greek, skip it + if (t.isIE7 && item.styles.listStyleType == 'lower-greek') + return; + + item.id = t.editor.dom.uniqueId(); + + menu.add({id : item.id, title : item.title, onclick : function() { + format = item; + applyListFormat(); + }}); + }); + }); + + return btn; + } + }, + + getInfo : function() { + return { + longname : 'Advanced lists', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlist', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('advlist', tinymce.plugins.AdvListPlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js new file mode 100644 index 0000000..de56d96 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;if(tinyMCE.isIE){return}a.onKeyDown.add(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}if(f.shiftKey&&f.keyCode==48){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a){this.parseCurrentLine(a,-1,"",false)},parseCurrentLine:function(i,d,b,g){var a,f,c,n,k,m,h,e,j;a=i.selection.getRng().cloneRange();if(a.startOffset<5){e=a.endContainer.previousSibling;if(e==null){if(a.endContainer.firstChild==null||a.endContainer.firstChild.nextSibling==null){return}e=a.endContainer.firstChild.nextSibling}j=e.length;a.setStart(e,j);a.setEnd(e,j);if(a.endOffset<5){return}f=a.endOffset;n=e}else{n=a.endContainer;if(n.nodeType!=3&&n.firstChild){while(n.nodeType!=3&&n.firstChild){n=n.firstChild}a.setStart(n,0);a.setEnd(n,n.nodeValue.length)}if(a.endOffset==1){f=2}else{f=a.endOffset-1-d}}c=f;do{a.setStart(n,f-2);a.setEnd(n,f-1);f-=1}while(a.toString()!=" "&&a.toString()!=""&&a.toString().charCodeAt(0)!=160&&(f-2)>=0&&a.toString()!=b);if(a.toString()==b||a.toString().charCodeAt(0)==160){a.setStart(n,f);a.setEnd(n,c);f+=1}else{if(a.startOffset==0){a.setStart(n,0);a.setEnd(n,c)}else{a.setStart(n,f);a.setEnd(n,c)}}m=a.toString();h=m.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)(.+)$/i);if(h){if(h[1]=="www."){h[1]="http://www."}k=i.selection.getBookmark();i.selection.setRng(a);tinyMCE.execCommand("mceInsertLink",false,h[1]+h[2]);i.selection.moveToBookmark(k);if(tinyMCE.isWebKit){i.selection.collapse(false);var l=Math.min(n.length,c+1);a.setStart(n,l);a.setEnd(n,l);i.selection.setRng(a)}}},getInfo:function(){return{longname:"Autolink",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autolink",tinymce.plugins.AutolinkPlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js new file mode 100644 index 0000000..4917edc --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js @@ -0,0 +1,169 @@ +/** + * editor_plugin_src.js + * + * Copyright 2011, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.AutolinkPlugin', { + /** + * Initializes the plugin, this will be executed after the plugin has been created. + * This call is done before the editor instance has finished it's initialization so use the onInit event + * of the editor instance to intercept that event. + * + * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in. + * @param {string} url Absolute URL to where the plugin is located. + */ + + init : function(ed, url) { + var t = this; + + // Internet Explorer has built-in automatic linking + if (tinyMCE.isIE) + return; + + // Add a key down handler + ed.onKeyDown.add(function(ed, e) { + if (e.keyCode == 13) + return t.handleEnter(ed); + if (e.shiftKey && e.keyCode == 48) + return t.handleEclipse(ed); + }); + + // Add a key up handler + ed.onKeyUp.add(function(ed, e) { + if (e.keyCode == 32) + return t.handleSpacebar(ed); + }); + }, + + handleEclipse : function(ed) { + this.parseCurrentLine(ed, -1, '(', true); + }, + + handleSpacebar : function(ed) { + this.parseCurrentLine(ed, 0, '', true); + }, + + handleEnter : function(ed) { + this.parseCurrentLine(ed, -1, '', false); + }, + + parseCurrentLine : function(ed, end_offset, delimiter, goback) { + var r, end, start, endContainer, bookmark, text, matches, prev, len; + + // We need at least five characters to form a URL, + // hence, at minimum, five characters from the beginning of the line. + r = ed.selection.getRng().cloneRange(); + if (r.startOffset < 5) { + // During testing, the caret is placed inbetween two text nodes. + // The previous text node contains the URL. + prev = r.endContainer.previousSibling; + if (prev == null) { + if (r.endContainer.firstChild == null || r.endContainer.firstChild.nextSibling == null) + return; + + prev = r.endContainer.firstChild.nextSibling; + } + len = prev.length; + r.setStart(prev, len); + r.setEnd(prev, len); + + if (r.endOffset < 5) + return; + + end = r.endOffset; + endContainer = prev; + } else { + endContainer = r.endContainer; + + // Get a text node + if (endContainer.nodeType != 3 && endContainer.firstChild) { + while (endContainer.nodeType != 3 && endContainer.firstChild) + endContainer = endContainer.firstChild; + + r.setStart(endContainer, 0); + r.setEnd(endContainer, endContainer.nodeValue.length); + } + + if (r.endOffset == 1) + end = 2; + else + end = r.endOffset - 1 - end_offset; + } + + start = end; + + do + { + // Move the selection one character backwards. + r.setStart(endContainer, end - 2); + r.setEnd(endContainer, end - 1); + end -= 1; + + // Loop until one of the following is found: a blank space,  , delimeter, (end-2) >= 0 + } while (r.toString() != ' ' && r.toString() != '' && r.toString().charCodeAt(0) != 160 && (end -2) >= 0 && r.toString() != delimiter); + + if (r.toString() == delimiter || r.toString().charCodeAt(0) == 160) { + r.setStart(endContainer, end); + r.setEnd(endContainer, start); + end += 1; + } else if (r.startOffset == 0) { + r.setStart(endContainer, 0); + r.setEnd(endContainer, start); + } + else { + r.setStart(endContainer, end); + r.setEnd(endContainer, start); + } + + text = r.toString(); + matches = text.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)(.+)$/i); + + if (matches) { + if (matches[1] == 'www.') { + matches[1] = 'http://www.'; + } + + bookmark = ed.selection.getBookmark(); + + ed.selection.setRng(r); + tinyMCE.execCommand('mceInsertLink',false, matches[1] + matches[2]); + ed.selection.moveToBookmark(bookmark); + + // TODO: Determine if this is still needed. + if (tinyMCE.isWebKit) { + // move the caret to its original position + ed.selection.collapse(false); + var max = Math.min(endContainer.length, start + 1); + r.setStart(endContainer, max); + r.setEnd(endContainer, max); + ed.selection.setRng(r); + } + } + }, + + /** + * Returns information about the plugin as a name/value array. + * The current keys are longname, author, authorurl, infourl and version. + * + * @return {Object} Name/value array containing information about the plugin. + */ + getInfo : function() { + return { + longname : 'Autolink', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('autolink', tinymce.plugins.AutolinkPlugin); +})(); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js new file mode 100644 index 0000000..10687a9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.AutoResizePlugin",{init:function(a,c){var d=this,e=0;if(a.getParam("fullscreen_is_enabled")){return}function b(){var i=a.getDoc(),f=i.body,k=i.documentElement,h=tinymce.DOM,j=d.autoresize_min_height,g;g=tinymce.isIE?f.scrollHeight:k.offsetHeight;g=d.bottom_margin+g;if(g>d.autoresize_min_height){j=g}if(j!==e){h.setStyle(h.get(a.id+"_ifr"),"height",j+"px");e=j}if(d.throbbing){a.setProgressState(false);a.setProgressState(true)}}d.editor=a;d.autoresize_min_height=a.getElement().offsetHeight;d.bottom_margin=parseInt(a.getParam("autoresize_bottom_margin",50));a.onChange.add(b);a.onSetContent.add(b);a.onPaste.add(b);a.onKeyUp.add(b);a.onPostRender.add(b);if(a.getParam("autoresize_on_init",true)){a.onInit.add(function(g,f){g.setProgressState(true);d.throbbing=true;g.getBody().style.overflowY="hidden"});a.onLoadContent.add(function(g,f){b();setTimeout(function(){b();g.setProgressState(false);d.throbbing=false},1250)})}a.addCommand("mceAutoResize",b)},getInfo:function(){return{longname:"Auto Resize",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autoresize",tinymce.plugins.AutoResizePlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js new file mode 100644 index 0000000..50af21a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js @@ -0,0 +1,128 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + /** + * Auto Resize + * + * This plugin automatically resizes the content area to fit its content height. + * It will retain a minimum height, which is the height of the content area when + * it's initialized. + */ + tinymce.create('tinymce.plugins.AutoResizePlugin', { + /** + * Initializes the plugin, this will be executed after the plugin has been created. + * This call is done before the editor instance has finished it's initialization so use the onInit event + * of the editor instance to intercept that event. + * + * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in. + * @param {string} url Absolute URL to where the plugin is located. + */ + init : function(ed, url) { + var t = this, oldSize = 0; + + if (ed.getParam('fullscreen_is_enabled')) + return; + + /** + * This method gets executed each time the editor needs to resize. + */ + function resize() { + var d = ed.getDoc(), b = d.body, de = d.documentElement, DOM = tinymce.DOM, resizeHeight = t.autoresize_min_height, myHeight; + + // Get height differently depending on the browser used + myHeight = tinymce.isIE ? b.scrollHeight : de.offsetHeight; + + // Bottom margin + myHeight = t.bottom_margin + myHeight; + + // Don't make it smaller than the minimum height + if (myHeight > t.autoresize_min_height) + resizeHeight = myHeight; + + // Resize content element + if ( resizeHeight !== oldSize ) { + DOM.setStyle(DOM.get(ed.id + '_ifr'), 'height', resizeHeight + 'px'); + oldSize = resizeHeight; + } + + // if we're throbbing, we'll re-throb to match the new size + if (t.throbbing) { + ed.setProgressState(false); + ed.setProgressState(true); + } + }; + + t.editor = ed; + + // Define minimum height + t.autoresize_min_height = ed.getElement().offsetHeight; + + // Add margin at the bottom for better UX + t.bottom_margin = parseInt( ed.getParam('autoresize_bottom_margin', 50) ); + + // Add appropriate listeners for resizing content area + ed.onChange.add(resize); + ed.onSetContent.add(resize); + ed.onPaste.add(resize); + ed.onKeyUp.add(resize); + ed.onPostRender.add(resize); + + if (ed.getParam('autoresize_on_init', true)) { + // Things to do when the editor is ready + ed.onInit.add(function(ed, l) { + // Show throbber until content area is resized properly + ed.setProgressState(true); + t.throbbing = true; + + // Hide scrollbars + ed.getBody().style.overflowY = "hidden"; + }); + + ed.onLoadContent.add(function(ed, l) { + resize(); + + // Because the content area resizes when its content CSS loads, + // and we can't easily add a listener to its onload event, + // we'll just trigger a resize after a short loading period + setTimeout(function() { + resize(); + + // Disable throbber + ed.setProgressState(false); + t.throbbing = false; + }, 1250); + }); + } + + // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample'); + ed.addCommand('mceAutoResize', resize); + }, + + /** + * Returns information about the plugin as a name/value array. + * The current keys are longname, author, authorurl, infourl and version. + * + * @return {Object} Name/value array containing information about the plugin. + */ + getInfo : function() { + return { + longname : 'Auto Resize', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('autoresize', tinymce.plugins.AutoResizePlugin); +})(); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js new file mode 100644 index 0000000..7f49107 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js @@ -0,0 +1 @@ +(function(e){var c="autosave",g="restoredraft",b=true,f,d,a=e.util.Dispatcher;e.create("tinymce.plugins.AutoSave",{init:function(i,j){var h=this,l=i.settings;h.editor=i;function k(n){var m={s:1000,m:60000};n=/^(\d+)([ms]?)$/.exec(""+n);return(n[2]?m[n[2]]:1)*parseInt(n)}e.each({ask_before_unload:b,interval:"30s",retention:"20m",minlength:50},function(n,m){m=c+"_"+m;if(l[m]===f){l[m]=n}});l.autosave_interval=k(l.autosave_interval);l.autosave_retention=k(l.autosave_retention);i.addButton(g,{title:c+".restore_content",onclick:function(){if(i.getContent({draft:true}).replace(/\s| |<\/?p[^>]*>|]*>/gi,"").length>0){i.windowManager.confirm(c+".warning_message",function(m){if(m){h.restoreDraft()}})}else{h.restoreDraft()}}});i.onNodeChange.add(function(){var m=i.controlManager;if(m.get(g)){m.setDisabled(g,!h.hasDraft())}});i.onInit.add(function(){if(i.controlManager.get(g)){h.setupStorage(i);setInterval(function(){h.storeDraft();i.nodeChanged()},l.autosave_interval)}});h.onStoreDraft=new a(h);h.onRestoreDraft=new a(h);h.onRemoveDraft=new a(h);if(!d){window.onbeforeunload=e.plugins.AutoSave._beforeUnloadHandler;d=b}},getInfo:function(){return{longname:"Auto save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave",version:e.majorVersion+"."+e.minorVersion}},getExpDate:function(){return new Date(new Date().getTime()+this.editor.settings.autosave_retention).toUTCString()},setupStorage:function(i){var h=this,k=c+"_test",j="OK";h.key=c+i.id;e.each([function(){if(localStorage){localStorage.setItem(k,j);if(localStorage.getItem(k)===j){localStorage.removeItem(k);return localStorage}}},function(){if(sessionStorage){sessionStorage.setItem(k,j);if(sessionStorage.getItem(k)===j){sessionStorage.removeItem(k);return sessionStorage}}},function(){if(e.isIE){i.getElement().style.behavior="url('#default#userData')";return{autoExpires:b,setItem:function(l,n){var m=i.getElement();m.setAttribute(l,n);m.expires=h.getExpDate();try{m.save("TinyMCE")}catch(o){}},getItem:function(l){var m=i.getElement();try{m.load("TinyMCE");return m.getAttribute(l)}catch(n){return null}},removeItem:function(l){i.getElement().removeAttribute(l)}}}},],function(l){try{h.storage=l();if(h.storage){return false}}catch(m){}})},storeDraft:function(){var i=this,l=i.storage,j=i.editor,h,k;if(l){if(!l.getItem(i.key)&&!j.isDirty()){return}k=j.getContent({draft:true});if(k.length>j.settings.autosave_minlength){h=i.getExpDate();if(!i.storage.autoExpires){i.storage.setItem(i.key+"_expires",h)}i.storage.setItem(i.key,k);i.onStoreDraft.dispatch(i,{expires:h,content:k})}}},restoreDraft:function(){var h=this,i=h.storage;if(i){content=i.getItem(h.key);if(content){h.editor.setContent(content);h.onRestoreDraft.dispatch(h,{content:content})}}},hasDraft:function(){var h=this,k=h.storage,i,j;if(k){j=!!k.getItem(h.key);if(j){if(!h.storage.autoExpires){i=new Date(k.getItem(h.key+"_expires"));if(new Date().getTime()]*>|]*>/gi, "").length > 0) { + // Show confirm dialog if the editor isn't empty + ed.windowManager.confirm( + PLUGIN_NAME + ".warning_message", + function(ok) { + if (ok) + self.restoreDraft(); + } + ); + } else + self.restoreDraft(); + } + }); + + // Enable/disable restoredraft button depending on if there is a draft stored or not + ed.onNodeChange.add(function() { + var controlManager = ed.controlManager; + + if (controlManager.get(RESTORE_DRAFT)) + controlManager.setDisabled(RESTORE_DRAFT, !self.hasDraft()); + }); + + ed.onInit.add(function() { + // Check if the user added the restore button, then setup auto storage logic + if (ed.controlManager.get(RESTORE_DRAFT)) { + // Setup storage engine + self.setupStorage(ed); + + // Auto save contents each interval time + setInterval(function() { + self.storeDraft(); + ed.nodeChanged(); + }, settings.autosave_interval); + } + }); + + /** + * This event gets fired when a draft is stored to local storage. + * + * @event onStoreDraft + * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event. + * @param {Object} draft Draft object containing the HTML contents of the editor. + */ + self.onStoreDraft = new Dispatcher(self); + + /** + * This event gets fired when a draft is restored from local storage. + * + * @event onStoreDraft + * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event. + * @param {Object} draft Draft object containing the HTML contents of the editor. + */ + self.onRestoreDraft = new Dispatcher(self); + + /** + * This event gets fired when a draft removed/expired. + * + * @event onRemoveDraft + * @param {tinymce.plugins.AutoSave} sender Plugin instance sending the event. + * @param {Object} draft Draft object containing the HTML contents of the editor. + */ + self.onRemoveDraft = new Dispatcher(self); + + // Add ask before unload dialog only add one unload handler + if (!unloadHandlerAdded) { + window.onbeforeunload = tinymce.plugins.AutoSave._beforeUnloadHandler; + unloadHandlerAdded = TRUE; + } + }, + + /** + * Returns information about the plugin as a name/value array. + * The current keys are longname, author, authorurl, infourl and version. + * + * @method getInfo + * @return {Object} Name/value array containing information about the plugin. + */ + getInfo : function() { + return { + longname : 'Auto save', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + /** + * Returns an expiration date UTC string. + * + * @method getExpDate + * @return {String} Expiration date UTC string. + */ + getExpDate : function() { + return new Date( + new Date().getTime() + this.editor.settings.autosave_retention + ).toUTCString(); + }, + + /** + * This method will setup the storage engine. If the browser has support for it. + * + * @method setupStorage + */ + setupStorage : function(ed) { + var self = this, testKey = PLUGIN_NAME + '_test', testVal = "OK"; + + self.key = PLUGIN_NAME + ed.id; + + // Loop though each storage engine type until we find one that works + tinymce.each([ + function() { + // Try HTML5 Local Storage + if (localStorage) { + localStorage.setItem(testKey, testVal); + + if (localStorage.getItem(testKey) === testVal) { + localStorage.removeItem(testKey); + + return localStorage; + } + } + }, + + function() { + // Try HTML5 Session Storage + if (sessionStorage) { + sessionStorage.setItem(testKey, testVal); + + if (sessionStorage.getItem(testKey) === testVal) { + sessionStorage.removeItem(testKey); + + return sessionStorage; + } + } + }, + + function() { + // Try IE userData + if (tinymce.isIE) { + ed.getElement().style.behavior = "url('#default#userData')"; + + // Fake localStorage on old IE + return { + autoExpires : TRUE, + + setItem : function(key, value) { + var userDataElement = ed.getElement(); + + userDataElement.setAttribute(key, value); + userDataElement.expires = self.getExpDate(); + + try { + userDataElement.save("TinyMCE"); + } catch (e) { + // Ignore, saving might fail if "Userdata Persistence" is disabled in IE + } + }, + + getItem : function(key) { + var userDataElement = ed.getElement(); + + try { + userDataElement.load("TinyMCE"); + return userDataElement.getAttribute(key); + } catch (e) { + // Ignore, loading might fail if "Userdata Persistence" is disabled in IE + return null; + } + }, + + removeItem : function(key) { + ed.getElement().removeAttribute(key); + } + }; + } + }, + ], function(setup) { + // Try executing each function to find a suitable storage engine + try { + self.storage = setup(); + + if (self.storage) + return false; + } catch (e) { + // Ignore + } + }); + }, + + /** + * This method will store the current contents in the the storage engine. + * + * @method storeDraft + */ + storeDraft : function() { + var self = this, storage = self.storage, editor = self.editor, expires, content; + + // Is the contents dirty + if (storage) { + // If there is no existing key and the contents hasn't been changed since + // it's original value then there is no point in saving a draft + if (!storage.getItem(self.key) && !editor.isDirty()) + return; + + // Store contents if the contents if longer than the minlength of characters + content = editor.getContent({draft: true}); + if (content.length > editor.settings.autosave_minlength) { + expires = self.getExpDate(); + + // Store expiration date if needed IE userData has auto expire built in + if (!self.storage.autoExpires) + self.storage.setItem(self.key + "_expires", expires); + + self.storage.setItem(self.key, content); + self.onStoreDraft.dispatch(self, { + expires : expires, + content : content + }); + } + } + }, + + /** + * This method will restore the contents from the storage engine back to the editor. + * + * @method restoreDraft + */ + restoreDraft : function() { + var self = this, storage = self.storage; + + if (storage) { + content = storage.getItem(self.key); + + if (content) { + self.editor.setContent(content); + self.onRestoreDraft.dispatch(self, { + content : content + }); + } + } + }, + + /** + * This method will return true/false if there is a local storage draft available. + * + * @method hasDraft + * @return {boolean} true/false state if there is a local draft. + */ + hasDraft : function() { + var self = this, storage = self.storage, expDate, exists; + + if (storage) { + // Does the item exist at all + exists = !!storage.getItem(self.key); + if (exists) { + // Storage needs autoexpire + if (!self.storage.autoExpires) { + expDate = new Date(storage.getItem(self.key + "_expires")); + + // Contents hasn't expired + if (new Date().getTime() < expDate.getTime()) + return TRUE; + + // Remove it if it has + self.removeDraft(); + } else + return TRUE; + } + } + + return false; + }, + + /** + * Removes the currently stored draft. + * + * @method removeDraft + */ + removeDraft : function() { + var self = this, storage = self.storage, key = self.key, content; + + if (storage) { + // Get current contents and remove the existing draft + content = storage.getItem(key); + storage.removeItem(key); + storage.removeItem(key + "_expires"); + + // Dispatch remove event if we had any contents + if (content) { + self.onRemoveDraft.dispatch(self, { + content : content + }); + } + } + }, + + "static" : { + // Internal unload handler will be called before the page is unloaded + _beforeUnloadHandler : function(e) { + var msg; + + tinymce.each(tinyMCE.editors, function(ed) { + // Store a draft for each editor instance + if (ed.plugins.autosave) + ed.plugins.autosave.storeDraft(); + + // Never ask in fullscreen mode + if (ed.getParam("fullscreen_is_enabled")) + return; + + // Setup a return message if the editor is dirty + if (!msg && ed.isDirty() && ed.getParam("autosave_ask_before_unload")) + msg = ed.getLang("autosave.unload_msg"); + }); + + return msg; + } + } + }); + + tinymce.PluginManager.add('autosave', tinymce.plugins.AutoSave); +})(tinymce); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js new file mode 100644 index 0000000..fce6bd3 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js @@ -0,0 +1,4 @@ +tinyMCE.addI18n('en.autosave',{ +restore_content: "Restore auto-saved content", +warning_message: "If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js new file mode 100644 index 0000000..8f8821f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(a,b){var d=this,c=a.getParam("bbcode_dialect","punbb").toLowerCase();a.onBeforeSetContent.add(function(e,f){f.content=d["_"+c+"_bbcode2html"](f.content)});a.onPostProcess.add(function(e,f){if(f.set){f.content=d["_"+c+"_bbcode2html"](f.content)}if(f.get){f.content=d["_"+c+"_html2bbcode"](f.content)}})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_punbb_html2bbcode:function(a){a=tinymce.trim(a);function b(c,d){a=a.replace(c,d)}b(/(.*?)<\/a>/gi,"[url=$1]$2[/url]");b(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");b(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");b(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");b(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");b(/(.*?)<\/span>/gi,"[color=$1]$2[/color]");b(/(.*?)<\/font>/gi,"[color=$1]$2[/color]");b(/(.*?)<\/span>/gi,"[size=$1]$2[/size]");b(/(.*?)<\/font>/gi,"$1");b(//gi,"[img]$1[/img]");b(/(.*?)<\/span>/gi,"[code]$1[/code]");b(/(.*?)<\/span>/gi,"[quote]$1[/quote]");b(/(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");b(/(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");b(/(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");b(/(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");b(/(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");b(/(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");b(/<\/(strong|b)>/gi,"[/b]");b(/<(strong|b)>/gi,"[b]");b(/<\/(em|i)>/gi,"[/i]");b(/<(em|i)>/gi,"[i]");b(/<\/u>/gi,"[/u]");b(/(.*?)<\/span>/gi,"[u]$1[/u]");b(//gi,"[u]");b(/]*>/gi,"[quote]");b(/<\/blockquote>/gi,"[/quote]");b(/
                    /gi,"\n");b(//gi,"\n");b(/
                    /gi,"\n");b(/

                    /gi,"");b(/<\/p>/gi,"\n");b(/ |\u00a0/gi," ");b(/"/gi,'"');b(/</gi,"<");b(/>/gi,">");b(/&/gi,"&");return a},_punbb_bbcode2html:function(a){a=tinymce.trim(a);function b(c,d){a=a.replace(c,d)}b(/\n/gi,"
                    ");b(/\[b\]/gi,"");b(/\[\/b\]/gi,"");b(/\[i\]/gi,"");b(/\[\/i\]/gi,"");b(/\[u\]/gi,"");b(/\[\/u\]/gi,"");b(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'$2');b(/\[url\](.*?)\[\/url\]/gi,'$1');b(/\[img\](.*?)\[\/img\]/gi,'');b(/\[color=(.*?)\](.*?)\[\/color\]/gi,'$2');b(/\[code\](.*?)\[\/code\]/gi,'$1 ');b(/\[quote.*?\](.*?)\[\/quote\]/gi,'$1 ');return a}});tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js new file mode 100644 index 0000000..4e7eb33 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js @@ -0,0 +1,120 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.BBCodePlugin', { + init : function(ed, url) { + var t = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase(); + + ed.onBeforeSetContent.add(function(ed, o) { + o.content = t['_' + dialect + '_bbcode2html'](o.content); + }); + + ed.onPostProcess.add(function(ed, o) { + if (o.set) + o.content = t['_' + dialect + '_bbcode2html'](o.content); + + if (o.get) + o.content = t['_' + dialect + '_html2bbcode'](o.content); + }); + }, + + getInfo : function() { + return { + longname : 'BBCode Plugin', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + // Private methods + + // HTML -> BBCode in PunBB dialect + _punbb_html2bbcode : function(s) { + s = tinymce.trim(s); + + function rep(re, str) { + s = s.replace(re, str); + }; + + // example: to [b] + rep(/(.*?)<\/a>/gi,"[url=$1]$2[/url]"); + rep(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"); + rep(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"); + rep(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"); + rep(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"); + rep(/(.*?)<\/span>/gi,"[color=$1]$2[/color]"); + rep(/(.*?)<\/font>/gi,"[color=$1]$2[/color]"); + rep(/(.*?)<\/span>/gi,"[size=$1]$2[/size]"); + rep(/(.*?)<\/font>/gi,"$1"); + rep(//gi,"[img]$1[/img]"); + rep(/(.*?)<\/span>/gi,"[code]$1[/code]"); + rep(/(.*?)<\/span>/gi,"[quote]$1[/quote]"); + rep(/(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"); + rep(/(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"); + rep(/(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"); + rep(/(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"); + rep(/(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"); + rep(/(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"); + rep(/<\/(strong|b)>/gi,"[/b]"); + rep(/<(strong|b)>/gi,"[b]"); + rep(/<\/(em|i)>/gi,"[/i]"); + rep(/<(em|i)>/gi,"[i]"); + rep(/<\/u>/gi,"[/u]"); + rep(/(.*?)<\/span>/gi,"[u]$1[/u]"); + rep(//gi,"[u]"); + rep(/]*>/gi,"[quote]"); + rep(/<\/blockquote>/gi,"[/quote]"); + rep(/
                    /gi,"\n"); + rep(//gi,"\n"); + rep(/
                    /gi,"\n"); + rep(/

                    /gi,""); + rep(/<\/p>/gi,"\n"); + rep(/ |\u00a0/gi," "); + rep(/"/gi,"\""); + rep(/</gi,"<"); + rep(/>/gi,">"); + rep(/&/gi,"&"); + + return s; + }, + + // BBCode -> HTML from PunBB dialect + _punbb_bbcode2html : function(s) { + s = tinymce.trim(s); + + function rep(re, str) { + s = s.replace(re, str); + }; + + // example: [b] to + rep(/\n/gi,"
                    "); + rep(/\[b\]/gi,""); + rep(/\[\/b\]/gi,""); + rep(/\[i\]/gi,""); + rep(/\[\/i\]/gi,""); + rep(/\[u\]/gi,""); + rep(/\[\/u\]/gi,""); + rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"$2"); + rep(/\[url\](.*?)\[\/url\]/gi,"$1"); + rep(/\[img\](.*?)\[\/img\]/gi,""); + rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"$2"); + rep(/\[code\](.*?)\[\/code\]/gi,"$1 "); + rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"$1 "); + + return s; + } + }); + + // Register plugin + tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js new file mode 100644 index 0000000..8e041ea --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js @@ -0,0 +1 @@ +(function(){var a=tinymce.dom.Event,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.ContextMenu",{init:function(e){var h=this,f,d,i;h.editor=e;d=e.settings.contextmenu_never_use_native;h.onContextMenu=new tinymce.util.Dispatcher(this);f=e.onContextMenu.add(function(j,k){if((i!==0?i:k.ctrlKey)&&!d){return}a.cancel(k);if(k.target.nodeName=="IMG"){j.selection.select(k.target)}h._getMenu(j).showMenu(k.clientX||k.pageX,k.clientY||k.pageX);a.add(j.getDoc(),"click",function(l){g(j,l)});j.nodeChanged()});e.onRemove.add(function(){if(h._menu){h._menu.removeAll()}});function g(j,k){i=0;if(k&&k.button==2){i=k.ctrlKey;return}if(h._menu){h._menu.removeAll();h._menu.destroy();a.remove(j.getDoc(),"click",g)}}e.onMouseDown.add(g);e.onKeyDown.add(g);e.onKeyDown.add(function(j,k){if(k.shiftKey&&!k.ctrlKey&&!k.altKey&&k.keyCode===121){a.cancel(k);f(j,k)}})},getInfo:function(){return{longname:"Contextmenu",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_getMenu:function(h){var l=this,f=l._menu,i=h.selection,e=i.isCollapsed(),d=i.getNode()||h.getBody(),g,k,j;if(f){f.removeAll();f.destroy()}k=b.getPos(h.getContentAreaContainer());j=b.getPos(h.getContainer());f=h.controlManager.createDropMenu("contextmenu",{offset_x:k.x+h.getParam("contextmenu_offset_x",0),offset_y:k.y+h.getParam("contextmenu_offset_y",0),constrain:1,keyboard_focus:true});l._menu=f;f.add({title:"advanced.cut_desc",icon:"cut",cmd:"Cut"}).setDisabled(e);f.add({title:"advanced.copy_desc",icon:"copy",cmd:"Copy"}).setDisabled(e);f.add({title:"advanced.paste_desc",icon:"paste",cmd:"Paste"});if((d.nodeName=="A"&&!h.dom.getAttrib(d,"name"))||!e){f.addSeparator();f.add({title:"advanced.link_desc",icon:"link",cmd:h.plugins.advlink?"mceAdvLink":"mceLink",ui:true});f.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"})}f.addSeparator();f.add({title:"advanced.image_desc",icon:"image",cmd:h.plugins.advimage?"mceAdvImage":"mceImage",ui:true});f.addSeparator();g=f.addMenu({title:"contextmenu.align"});g.add({title:"contextmenu.left",icon:"justifyleft",cmd:"JustifyLeft"});g.add({title:"contextmenu.center",icon:"justifycenter",cmd:"JustifyCenter"});g.add({title:"contextmenu.right",icon:"justifyright",cmd:"JustifyRight"});g.add({title:"contextmenu.full",icon:"justifyfull",cmd:"JustifyFull"});l.onContextMenu.dispatch(l,f,d,e);return f}});tinymce.PluginManager.add("contextmenu",tinymce.plugins.ContextMenu)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js new file mode 100644 index 0000000..4328f4b --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js @@ -0,0 +1,161 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var Event = tinymce.dom.Event, each = tinymce.each, DOM = tinymce.DOM; + + /** + * This plugin a context menu to TinyMCE editor instances. + * + * @class tinymce.plugins.ContextMenu + */ + tinymce.create('tinymce.plugins.ContextMenu', { + /** + * Initializes the plugin, this will be executed after the plugin has been created. + * This call is done before the editor instance has finished it's initialization so use the onInit event + * of the editor instance to intercept that event. + * + * @method init + * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in. + * @param {string} url Absolute URL to where the plugin is located. + */ + init : function(ed) { + var t = this, showMenu, contextmenuNeverUseNative, realCtrlKey; + + t.editor = ed; + + contextmenuNeverUseNative = ed.settings.contextmenu_never_use_native; + + /** + * This event gets fired when the context menu is shown. + * + * @event onContextMenu + * @param {tinymce.plugins.ContextMenu} sender Plugin instance sending the event. + * @param {tinymce.ui.DropMenu} menu Drop down menu to fill with more items if needed. + */ + t.onContextMenu = new tinymce.util.Dispatcher(this); + + showMenu = ed.onContextMenu.add(function(ed, e) { + // Block TinyMCE menu on ctrlKey and work around Safari issue + if ((realCtrlKey !== 0 ? realCtrlKey : e.ctrlKey) && !contextmenuNeverUseNative) + return; + + Event.cancel(e); + + // Select the image if it's clicked. WebKit would other wise expand the selection + if (e.target.nodeName == 'IMG') + ed.selection.select(e.target); + + t._getMenu(ed).showMenu(e.clientX || e.pageX, e.clientY || e.pageX); + Event.add(ed.getDoc(), 'click', function(e) { + hide(ed, e); + }); + + ed.nodeChanged(); + }); + + ed.onRemove.add(function() { + if (t._menu) + t._menu.removeAll(); + }); + + function hide(ed, e) { + realCtrlKey = 0; + + // Since the contextmenu event moves + // the selection we need to store it away + if (e && e.button == 2) { + realCtrlKey = e.ctrlKey; + return; + } + + if (t._menu) { + t._menu.removeAll(); + t._menu.destroy(); + Event.remove(ed.getDoc(), 'click', hide); + } + }; + + ed.onMouseDown.add(hide); + ed.onKeyDown.add(hide); + ed.onKeyDown.add(function(ed, e) { + if (e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode === 121) { + Event.cancel(e); + showMenu(ed, e); + } + }); + }, + + /** + * Returns information about the plugin as a name/value array. + * The current keys are longname, author, authorurl, infourl and version. + * + * @method getInfo + * @return {Object} Name/value array containing information about the plugin. + */ + getInfo : function() { + return { + longname : 'Contextmenu', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + _getMenu : function(ed) { + var t = this, m = t._menu, se = ed.selection, col = se.isCollapsed(), el = se.getNode() || ed.getBody(), am, p1, p2; + + if (m) { + m.removeAll(); + m.destroy(); + } + + p1 = DOM.getPos(ed.getContentAreaContainer()); + p2 = DOM.getPos(ed.getContainer()); + + m = ed.controlManager.createDropMenu('contextmenu', { + offset_x : p1.x + ed.getParam('contextmenu_offset_x', 0), + offset_y : p1.y + ed.getParam('contextmenu_offset_y', 0), + constrain : 1, + keyboard_focus: true + }); + + t._menu = m; + + m.add({title : 'advanced.cut_desc', icon : 'cut', cmd : 'Cut'}).setDisabled(col); + m.add({title : 'advanced.copy_desc', icon : 'copy', cmd : 'Copy'}).setDisabled(col); + m.add({title : 'advanced.paste_desc', icon : 'paste', cmd : 'Paste'}); + + if ((el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) || !col) { + m.addSeparator(); + m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true}); + m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'}); + } + + m.addSeparator(); + m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true}); + + m.addSeparator(); + am = m.addMenu({title : 'contextmenu.align'}); + am.add({title : 'contextmenu.left', icon : 'justifyleft', cmd : 'JustifyLeft'}); + am.add({title : 'contextmenu.center', icon : 'justifycenter', cmd : 'JustifyCenter'}); + am.add({title : 'contextmenu.right', icon : 'justifyright', cmd : 'JustifyRight'}); + am.add({title : 'contextmenu.full', icon : 'justifyfull', cmd : 'JustifyFull'}); + + t.onContextMenu.dispatch(t, m, el, col); + + return m; + } + }); + + // Register plugin + tinymce.PluginManager.add('contextmenu', tinymce.plugins.ContextMenu); +})(); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js new file mode 100644 index 0000000..bce8e73 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.Directionality",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceDirectionLTR",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="ltr"){a.dom.setAttrib(d,"dir","ltr")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addCommand("mceDirectionRTL",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="rtl"){a.dom.setAttrib(d,"dir","rtl")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addButton("ltr",{title:"directionality.ltr_desc",cmd:"mceDirectionLTR"});a.addButton("rtl",{title:"directionality.rtl_desc",cmd:"mceDirectionRTL"});a.onNodeChange.add(c._nodeChange,c)},getInfo:function(){return{longname:"Directionality",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,e){var d=b.dom,c;e=d.getParent(e,d.isBlock);if(!e){a.setDisabled("ltr",1);a.setDisabled("rtl",1);return}c=d.getAttrib(e,"dir");a.setActive("ltr",c=="ltr");a.setDisabled("ltr",0);a.setActive("rtl",c=="rtl");a.setDisabled("rtl",0)}});tinymce.PluginManager.add("directionality",tinymce.plugins.Directionality)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js new file mode 100644 index 0000000..4444959 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js @@ -0,0 +1,82 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.Directionality', { + init : function(ed, url) { + var t = this; + + t.editor = ed; + + ed.addCommand('mceDirectionLTR', function() { + var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock); + + if (e) { + if (ed.dom.getAttrib(e, "dir") != "ltr") + ed.dom.setAttrib(e, "dir", "ltr"); + else + ed.dom.setAttrib(e, "dir", ""); + } + + ed.nodeChanged(); + }); + + ed.addCommand('mceDirectionRTL', function() { + var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock); + + if (e) { + if (ed.dom.getAttrib(e, "dir") != "rtl") + ed.dom.setAttrib(e, "dir", "rtl"); + else + ed.dom.setAttrib(e, "dir", ""); + } + + ed.nodeChanged(); + }); + + ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'}); + ed.addButton('rtl', {title : 'directionality.rtl_desc', cmd : 'mceDirectionRTL'}); + + ed.onNodeChange.add(t._nodeChange, t); + }, + + getInfo : function() { + return { + longname : 'Directionality', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + // Private methods + + _nodeChange : function(ed, cm, n) { + var dom = ed.dom, dir; + + n = dom.getParent(n, dom.isBlock); + if (!n) { + cm.setDisabled('ltr', 1); + cm.setDisabled('rtl', 1); + return; + } + + dir = dom.getAttrib(n, 'dir'); + cm.setActive('ltr', dir == "ltr"); + cm.setDisabled('ltr', 0); + cm.setActive('rtl', dir == "rtl"); + cm.setDisabled('rtl', 0); + } + }); + + // Register plugin + tinymce.PluginManager.add('directionality', tinymce.plugins.Directionality); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js new file mode 100644 index 0000000..dbdd8ff --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js @@ -0,0 +1 @@ +(function(a){a.create("tinymce.plugins.EmotionsPlugin",{init:function(b,c){b.addCommand("mceEmotion",function(){b.windowManager.open({file:c+"/emotions.htm",width:250+parseInt(b.getLang("emotions.delta_width",0)),height:160+parseInt(b.getLang("emotions.delta_height",0)),inline:1},{plugin_url:c})});b.addButton("emotions",{title:"emotions.emotions_desc",cmd:"mceEmotion"})},getInfo:function(){return{longname:"Emotions",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions",version:a.majorVersion+"."+a.minorVersion}}});a.PluginManager.add("emotions",a.plugins.EmotionsPlugin)})(tinymce); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js new file mode 100644 index 0000000..71d5416 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js @@ -0,0 +1,43 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function(tinymce) { + tinymce.create('tinymce.plugins.EmotionsPlugin', { + init : function(ed, url) { + // Register commands + ed.addCommand('mceEmotion', function() { + ed.windowManager.open({ + file : url + '/emotions.htm', + width : 250 + parseInt(ed.getLang('emotions.delta_width', 0)), + height : 160 + parseInt(ed.getLang('emotions.delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + // Register buttons + ed.addButton('emotions', {title : 'emotions.emotions_desc', cmd : 'mceEmotion'}); + }, + + getInfo : function() { + return { + longname : 'Emotions', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('emotions', tinymce.plugins.EmotionsPlugin); +})(tinymce); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm new file mode 100644 index 0000000..2c91002 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm @@ -0,0 +1,41 @@ + + + + {#emotions_dlg.title} + + + + + +

                    +
                    {#emotions_dlg.title}:

                    + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    {#emotions_dlg.cool}{#emotions_dlg.cry}{#emotions_dlg.embarassed}{#emotions_dlg.foot_in_mouth}
                    {#emotions_dlg.frown}{#emotions_dlg.innocent}{#emotions_dlg.kiss}{#emotions_dlg.laughing}
                    {#emotions_dlg.money_mouth}{#emotions_dlg.sealed}{#emotions_dlg.smile}{#emotions_dlg.surprised}
                    {#emotions_dlg.tongue-out}{#emotions_dlg.undecided}{#emotions_dlg.wink}{#emotions_dlg.yell}
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif new file mode 100644 index 0000000..ba90cc3 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif new file mode 100644 index 0000000..74d897a Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif new file mode 100644 index 0000000..963a96b Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif new file mode 100644 index 0000000..16f68cc Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif new file mode 100644 index 0000000..716f55e Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif new file mode 100644 index 0000000..334d49e Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif new file mode 100644 index 0000000..4efd549 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif new file mode 100644 index 0000000..1606c11 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif new file mode 100644 index 0000000..ca2451e Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif new file mode 100644 index 0000000..b33d3cc Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif new file mode 100644 index 0000000..e6a9e60 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif new file mode 100644 index 0000000..cb99cdd Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif new file mode 100644 index 0000000..2075dc1 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif new file mode 100644 index 0000000..bef7e25 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif new file mode 100644 index 0000000..9faf1af Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif new file mode 100644 index 0000000..648e6e8 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js new file mode 100644 index 0000000..c549367 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js @@ -0,0 +1,22 @@ +tinyMCEPopup.requireLangPack(); + +var EmotionsDialog = { + init : function(ed) { + tinyMCEPopup.resizeToInnerSize(); + }, + + insert : function(file, title) { + var ed = tinyMCEPopup.editor, dom = ed.dom; + + tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', { + src : tinyMCEPopup.getWindowArg('plugin_url') + '/img/' + file, + alt : ed.getLang(title), + title : ed.getLang(title), + border : 0 + })); + + tinyMCEPopup.close(); + } +}; + +tinyMCEPopup.onInit.add(EmotionsDialog.init, EmotionsDialog); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/de_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/de_dlg.js new file mode 100644 index 0000000..3940a2a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/de_dlg.js @@ -0,0 +1,20 @@ +tinyMCE.addI18n('de.emotions_dlg',{ +title:"Smiley einf\u00FCgen", +desc:"Smilies", +cool:"Cool", +cry:"Weinend", +embarassed:"Verlegen", +foot_in_mouth:"Reingefallen", +frown:"Stirnrunzelnd", +innocent:"Unschuldig", +kiss:"K\u00FCssend", +laughing:"Lachend", +money_mouth:"Geld", +sealed:"Verschlossen", +smile:"L\u00E4chelnd", +surprised:"\u00DCberrascht", +tongue_out:"Zunge raus", +undecided:"Unentschlossen", +wink:"Zwinkernd", +yell:"Br\u00FCllend" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js new file mode 100644 index 0000000..3b57ad9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js @@ -0,0 +1,20 @@ +tinyMCE.addI18n('en.emotions_dlg',{ +title:"Insert emotion", +desc:"Emotions", +cool:"Cool", +cry:"Cry", +embarassed:"Embarassed", +foot_in_mouth:"Foot in mouth", +frown:"Frown", +innocent:"Innocent", +kiss:"Kiss", +laughing:"Laughing", +money_mouth:"Money mouth", +sealed:"Sealed", +smile:"Smile", +surprised:"Surprised", +tongue_out:"Tongue out", +undecided:"Undecided", +wink:"Wink", +yell:"Yell" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/eo_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/eo_dlg.js new file mode 100644 index 0000000..47a7bdf --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/eo_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.emotions_dlg',{cry:"Ploranta",cool:"Mojosa",desc:"Viza\u011detoj",title:"Enmeti viza\u011deton",yell:"Kolera",wink:"Okulumo",undecided:"Sendecida","tongue_out":"Lango",surprised:"Surprizita",smile:"Rideto",sealed:"Bu\u015do Fermita","money_mouth":"Avara",laughing:"Rido",kiss:"Kiso",innocent:"Senkulpa",frown:"Malgajo","foot_in_mouth":"Rubo",embarassed:"Hontema"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/es_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/es_dlg.js new file mode 100644 index 0000000..0d95db5 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/es_dlg.js @@ -0,0 +1,20 @@ +tinyMCE.addI18n('es.emotions_dlg',{ +title:"Insertar emoticon", +desc:"Emoticones", +cool:"Todo bien", +cry:"Llora", +embarassed:"Verg\u00FCenza", +foot_in_mouth:"Pie en la boca", +frown:"Triste", +innocent:"Inocente", +kiss:"Beso", +laughing:"Risa", +money_mouth:"Dinero boca", +sealed:"Sellado", +smile:"Sonrisa", +surprised:"Sorprendido", +tongue_out:"Lengua fuera", +undecided:"Indeciso", +wink:"Gui\u00F1o", +yell:"Enfadado" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/fr_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/fr_dlg.js new file mode 100644 index 0000000..07aa0bb --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/fr_dlg.js @@ -0,0 +1,20 @@ +tinyMCE.addI18n('fr.emotions_dlg',{ +title:"Ins\u00E9rer \u00E9motion", +desc:"\u00C9motions", +cool:"Cool", +cry:"En pleurs", +embarassed:"Embarrass\u00E9", +foot_in_mouth:"Pied de nez", +frown:"D\u00E9\u00E7u", +innocent:"Innocent", +kiss:"Bisou", +laughing:"Rigolant", +money_mouth:"Avare", +sealed:"Bouche cousue", +smile:"Sourire", +surprised:"Surpris", +tongue_out:"Langue tir\u00E9e", +undecided:"Non d\u00E9cid\u00E9", +wink:"Clin d'\u0153il", +yell:"Criant" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ja_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ja_dlg.js new file mode 100644 index 0000000..cf988a7 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ja_dlg.js @@ -0,0 +1,20 @@ +tinyMCE.addI18n('ja.emotions_dlg',{ +title:"\u8868\u60C5\u30A2\u30A4\u30B3\u30F3\u306E\u633F\u5165", +desc:"\u8868\u60C5\u30A2\u30A4\u30B3\u30F3", +cool:"Cool", +cry:"Cry", +embarassed:"Embarassed", +foot_in_mouth:"Foot in mouth", +frown:"Frown", +innocent:"Innocent", +kiss:"Kiss", +laughing:"Laughing", +money_mouth:"Money mouth", +sealed:"Sealed", +smile:"Smile", +surprised:"Surprised", +tongue_out:"Tongue out", +undecided:"Undecided", +wink:"Wink", +yell:"Yell" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/nl_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/nl_dlg.js new file mode 100644 index 0000000..39f797d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/nl_dlg.js @@ -0,0 +1,20 @@ +tinyMCE.addI18n('nl.emotions_dlg',{ +title:"Emotie invoegen", +desc:"Emoties", +cool:"Stoer", +cry:"Huilen", +embarassed:"Schamen", +foot_in_mouth:"Verstomd", +frown:"Wenkbrauw ophalen", +innocent:"Onschuldig", +kiss:"Zoenen", +laughing:"Lachen", +money_mouth:"Hebberig", +sealed:"Afgesloten", +smile:"Lachen", +surprised:"Verrast", +tongue_out:"Tong uitsteken", +undecided:"Onbeslist", +wink:"Knipogen", +yell:"Roepen" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/pt_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/pt_dlg.js new file mode 100644 index 0000000..c79cec8 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/pt_dlg.js @@ -0,0 +1,20 @@ +tinyMCE.addI18n('pt.emotions_dlg',{ +title:"Inserir emoticon", +desc:"Emoticons", +cool:"Fixe", +cry:"Chor\u00E3o", +embarassed:"Embara\u00E7ado", +foot_in_mouth:"Disse asneira", +frown:"Decep\u00E7\u00E3o", +innocent:"Inocente", +kiss:"Beijo", +laughing:"Riso", +money_mouth:"Avarez", +sealed:"Boca Fechada", +smile:"Sorriso", +surprised:"Surpresa", +tongue_out:"L\u00EDngua de fora", +undecided:"Indeciso", +wink:"Piscadela", +yell:"Irado" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ru_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ru_dlg.js new file mode 100644 index 0000000..13e1b83 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/langs/ru_dlg.js @@ -0,0 +1,20 @@ +tinyMCE.addI18n('ru.emotions_dlg',{ +title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u043C\u0430\u0439\u043B", +desc:"\u0421\u043C\u0430\u0439\u043B\u0438\u043A\u0438", +cool:"Cool", +cry:"Cry", +embarassed:"Embarassed", +foot_in_mouth:"Foot in mouth", +frown:"Frown", +innocent:"Innocent", +kiss:"Kiss", +laughing:"Laughing", +money_mouth:"Money mouth", +sealed:"Sealed", +smile:"Smile", +surprised:"Surprised", +tongue_out:"Tongue out", +undecided:"Undecided", +wink:"Wink", +yell:"Yell" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm new file mode 100644 index 0000000..50b2b34 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm @@ -0,0 +1,22 @@ + + + + {#example_dlg.title} + + + + + +
                    +

                    Here is a example dialog.

                    +

                    Selected text:

                    +

                    Custom arg:

                    + +
                    + + +
                    +
                    + + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js new file mode 100644 index 0000000..ec1f81e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.PluginManager.requireLangPack("example");tinymce.create("tinymce.plugins.ExamplePlugin",{init:function(a,b){a.addCommand("mceExample",function(){a.windowManager.open({file:b+"/dialog.htm",width:320+parseInt(a.getLang("example.delta_width",0)),height:120+parseInt(a.getLang("example.delta_height",0)),inline:1},{plugin_url:b,some_custom_arg:"custom arg"})});a.addButton("example",{title:"example.desc",cmd:"mceExample",image:b+"/img/example.gif"});a.onNodeChange.add(function(d,c,e){c.setActive("example",e.nodeName=="IMG")})},createControl:function(b,a){return null},getInfo:function(){return{longname:"Example plugin",author:"Some author",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example",version:"1.0"}}});tinymce.PluginManager.add("example",tinymce.plugins.ExamplePlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js new file mode 100644 index 0000000..9a0e7da --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js @@ -0,0 +1,84 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + // Load plugin specific language pack + tinymce.PluginManager.requireLangPack('example'); + + tinymce.create('tinymce.plugins.ExamplePlugin', { + /** + * Initializes the plugin, this will be executed after the plugin has been created. + * This call is done before the editor instance has finished it's initialization so use the onInit event + * of the editor instance to intercept that event. + * + * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in. + * @param {string} url Absolute URL to where the plugin is located. + */ + init : function(ed, url) { + // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample'); + ed.addCommand('mceExample', function() { + ed.windowManager.open({ + file : url + '/dialog.htm', + width : 320 + parseInt(ed.getLang('example.delta_width', 0)), + height : 120 + parseInt(ed.getLang('example.delta_height', 0)), + inline : 1 + }, { + plugin_url : url, // Plugin absolute URL + some_custom_arg : 'custom arg' // Custom argument + }); + }); + + // Register example button + ed.addButton('example', { + title : 'example.desc', + cmd : 'mceExample', + image : url + '/img/example.gif' + }); + + // Add a node change handler, selects the button in the UI when a image is selected + ed.onNodeChange.add(function(ed, cm, n) { + cm.setActive('example', n.nodeName == 'IMG'); + }); + }, + + /** + * Creates control instances based in the incomming name. This method is normally not + * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons + * but you sometimes need to create more complex controls like listboxes, split buttons etc then this + * method can be used to create those. + * + * @param {String} n Name of the control to create. + * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control. + * @return {tinymce.ui.Control} New control instance or null if no control was created. + */ + createControl : function(n, cm) { + return null; + }, + + /** + * Returns information about the plugin as a name/value array. + * The current keys are longname, author, authorurl, infourl and version. + * + * @return {Object} Name/value array containing information about the plugin. + */ + getInfo : function() { + return { + longname : 'Example plugin', + author : 'Some author', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example', + version : "1.0" + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('example', tinymce.plugins.ExamplePlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif new file mode 100644 index 0000000..1ab5da4 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js new file mode 100644 index 0000000..fa83411 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js @@ -0,0 +1,19 @@ +tinyMCEPopup.requireLangPack(); + +var ExampleDialog = { + init : function() { + var f = document.forms[0]; + + // Get the selected contents as text and place it in the input + f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'}); + f.somearg.value = tinyMCEPopup.getWindowArg('some_custom_arg'); + }, + + insert : function() { + // Insert the contents from the input into the document + tinyMCEPopup.editor.execCommand('mceInsertContent', false, document.forms[0].someval.value); + tinyMCEPopup.close(); + } +}; + +tinyMCEPopup.onInit.add(ExampleDialog.init, ExampleDialog); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js new file mode 100644 index 0000000..e0784f8 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js @@ -0,0 +1,3 @@ +tinyMCE.addI18n('en.example',{ + desc : 'This is just a template button' +}); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js new file mode 100644 index 0000000..ebcf948 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js @@ -0,0 +1,3 @@ +tinyMCE.addI18n('en.example_dlg',{ + title : 'This is just a example title' +}); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css new file mode 100644 index 0000000..2675cec --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css @@ -0,0 +1,143 @@ +/* Hide the advanced tab */ +#advanced_tab { + display: none; +} + +#metatitle, #metakeywords, #metadescription, #metaauthor, #metacopyright { + width: 280px; +} + +#doctype, #docencoding { + width: 200px; +} + +#langcode { + width: 30px; +} + +#bgimage { + width: 220px; +} + +#fontface { + width: 240px; +} + +#leftmargin, #rightmargin, #topmargin, #bottommargin { + width: 50px; +} + +.panel_wrapper div.current { + height: 400px; +} + +#stylesheet, #style { + width: 240px; +} + +#doctypes { + width: 200px; +} + +/* Head list classes */ + +.headlistwrapper { + width: 100%; +} + +.selected { + border: 1px solid #0A246A; + background-color: #B6BDD2; +} + +.toolbar { + width: 100%; +} + +#headlist { + width: 100%; + margin-top: 3px; + font-size: 11px; +} + +#info, #title_element, #meta_element, #script_element, #style_element, #base_element, #link_element, #comment_element, #unknown_element { + display: none; +} + +#addmenu { + position: absolute; + border: 1px solid gray; + display: none; + z-index: 100; + background-color: white; +} + +#addmenu a { + display: block; + width: 100%; + line-height: 20px; + text-decoration: none; + background-color: white; +} + +#addmenu a:hover { + background-color: #B6BDD2; + color: black; +} + +#addmenu span { + padding-left: 10px; + padding-right: 10px; +} + +#updateElementPanel { + display: none; +} + +#script_element .panel_wrapper div.current { + height: 108px; +} + +#style_element .panel_wrapper div.current { + height: 108px; +} + +#link_element .panel_wrapper div.current { + height: 140px; +} + +#element_script_value { + width: 100%; + height: 100px; +} + +#element_comment_value { + width: 100%; + height: 120px; +} + +#element_style_value { + width: 100%; + height: 100px; +} + +#element_title, #element_script_src, #element_meta_name, #element_meta_content, #element_base_href, #element_link_href, #element_link_title { + width: 250px; +} + +.updateElementButton { + margin-top: 3px; +} + +/* MSIE specific styles */ + +* html .addbutton, * html .removebutton, * html .moveupbutton, * html .movedownbutton { + width: 22px; + height: 22px; +} + +textarea { + height: 55px; +} + +.panel_wrapper div.current {height:420px;} \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js new file mode 100644 index 0000000..28ec92e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js @@ -0,0 +1 @@ +(function(){var b=tinymce.each,a=tinymce.html.Node;tinymce.create("tinymce.plugins.FullPagePlugin",{init:function(c,d){var e=this;e.editor=c;c.addCommand("mceFullPageProperties",function(){c.windowManager.open({file:d+"/fullpage.htm",width:430+parseInt(c.getLang("fullpage.delta_width",0)),height:495+parseInt(c.getLang("fullpage.delta_height",0)),inline:1},{plugin_url:d,data:e._htmlToData()})});c.addButton("fullpage",{title:"fullpage.desc",cmd:"mceFullPageProperties"});c.onBeforeSetContent.add(e._setContent,e);c.onGetContent.add(e._getContent,e)},getInfo:function(){return{longname:"Fullpage",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_htmlToData:function(){var f=this._parseHeader(),h={},c,i,g,e=this.editor;function d(l,j){var k=l.attr(j);return k||""}h.fontface=e.getParam("fullpage_default_fontface","");h.fontsize=e.getParam("fullpage_default_fontsize","");i=f.firstChild;if(i.type==7){h.xml_pi=true;g=/encoding="([^"]+)"/.exec(i.value);if(g){h.docencoding=g[1]}}i=f.getAll("#doctype")[0];if(i){h.doctype=""}i=f.getAll("title")[0];if(i&&i.firstChild){h.metatitle=i.firstChild.value}b(f.getAll("meta"),function(m){var k=m.attr("name"),j=m.attr("http-equiv"),l;if(k){h["meta"+k.toLowerCase()]=m.attr("content")}else{if(j=="Content-Type"){l=/charset\s*=\s*(.*)\s*/gi.exec(m.attr("content"));if(l){h.docencoding=l[1]}}}});i=f.getAll("html")[0];if(i){h.langcode=d(i,"lang")||d(i,"xml:lang")}i=f.getAll("link")[0];if(i&&i.attr("rel")=="stylesheet"){h.stylesheet=i.attr("href")}i=f.getAll("body")[0];if(i){h.langdir=d(i,"dir");h.style=d(i,"style");h.visited_color=d(i,"vlink");h.link_color=d(i,"link");h.active_color=d(i,"alink")}return h},_dataToHtml:function(g){var f,d,h,j,k,e=this.editor.dom;function c(n,l,m){n.attr(l,m?m:undefined)}function i(l){if(d.firstChild){d.insert(l,d.firstChild)}else{d.append(l)}}f=this._parseHeader();d=f.getAll("head")[0];if(!d){j=f.getAll("html")[0];d=new a("head",1);if(j.firstChild){j.insert(d,j.firstChild,true)}else{j.append(d)}}j=f.firstChild;if(g.xml_pi){k='version="1.0"';if(g.docencoding){k+=' encoding="'+g.docencoding+'"'}if(j.type!=7){j=new a("xml",7);f.insert(j,f.firstChild,true)}j.value=k}else{if(j&&j.type==7){j.remove()}}j=f.getAll("#doctype")[0];if(g.doctype){if(!j){j=new a("#doctype",10);if(g.xml_pi){f.insert(j,f.firstChild)}else{i(j)}}j.value=g.doctype.substring(9,g.doctype.length-1)}else{if(j){j.remove()}}j=f.getAll("title")[0];if(g.metatitle){if(!j){j=new a("title",1);j.append(new a("#text",3)).value=g.metatitle;i(j)}}if(g.docencoding){j=null;b(f.getAll("meta"),function(l){if(l.attr("http-equiv")=="Content-Type"){j=l}});if(!j){j=new a("meta",1);j.attr("http-equiv","Content-Type");j.shortEnded=true;i(j)}j.attr("content","text/html; charset="+g.docencoding)}b("keywords,description,author,copyright,robots".split(","),function(m){var l=f.getAll("meta"),n,p,o=g["meta"+m];for(n=0;n"))},_parseHeader:function(){return new tinymce.html.DomParser({validate:false,root_name:"#document"}).parse(this.head)},_setContent:function(g,d){var m=this,i,c,h=d.content,f,l="",e=m.editor.dom,j;function k(n){return n.replace(/<\/?[A-Z]+/g,function(o){return o.toLowerCase()})}if(d.format=="raw"&&m.head){return}if(d.source_view&&g.getParam("fullpage_hide_in_source_view")){return}h=h.replace(/<(\/?)BODY/gi,"<$1body");i=h.indexOf("",i);m.head=k(h.substring(0,i+1));c=h.indexOf("\n"}f=m._parseHeader();b(f.getAll("style"),function(n){if(n.firstChild){l+=n.firstChild.value}});j=f.getAll("body")[0];if(j){e.setAttribs(m.editor.getBody(),{style:j.attr("style")||"",dir:j.attr("dir")||"",vLink:j.attr("vlink")||"",link:j.attr("link")||"",aLink:j.attr("alink")||""})}if(l){e.add(m.editor.getDoc().getElementsByTagName("head")[0],"style",{id:"fullpage_styles"},l)}else{e.remove("fullpage_styles")}},_getDefaultHeader:function(){var f="",c=this.editor,e,d="";if(c.getParam("fullpage_default_xml_pi")){f+='\n'}f+=c.getParam("fullpage_default_doctype",'');f+="\n\n\n";if(e=c.getParam("fullpage_default_title")){f+=""+v+"\n"}if(e=c.getParam("fullpage_default_encoding")){f+='\n'}if(e=c.getParam("fullpage_default_font_family")){d+="font-family: "+e+";"}if(e=c.getParam("fullpage_default_font_size")){d+="font-size: "+e+";"}if(e=c.getParam("fullpage_default_text_color")){d+="color: "+e+";"}f+="\n\n";return f},_getContent:function(d,e){var c=this;if(!e.source_view||!d.getParam("fullpage_hide_in_source_view")){e.content=tinymce.trim(c.head)+"\n"+tinymce.trim(e.content)+"\n"+tinymce.trim(c.foot)}}});tinymce.PluginManager.add("fullpage",tinymce.plugins.FullPagePlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js new file mode 100644 index 0000000..ad4d3c2 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js @@ -0,0 +1,399 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var each = tinymce.each, Node = tinymce.html.Node; + + tinymce.create('tinymce.plugins.FullPagePlugin', { + init : function(ed, url) { + var t = this; + + t.editor = ed; + + // Register commands + ed.addCommand('mceFullPageProperties', function() { + ed.windowManager.open({ + file : url + '/fullpage.htm', + width : 430 + parseInt(ed.getLang('fullpage.delta_width', 0)), + height : 495 + parseInt(ed.getLang('fullpage.delta_height', 0)), + inline : 1 + }, { + plugin_url : url, + data : t._htmlToData() + }); + }); + + // Register buttons + ed.addButton('fullpage', {title : 'fullpage.desc', cmd : 'mceFullPageProperties'}); + + ed.onBeforeSetContent.add(t._setContent, t); + ed.onGetContent.add(t._getContent, t); + }, + + getInfo : function() { + return { + longname : 'Fullpage', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + // Private plugin internal methods + + _htmlToData : function() { + var headerFragment = this._parseHeader(), data = {}, nodes, elm, matches, editor = this.editor; + + function getAttr(elm, name) { + var value = elm.attr(name); + + return value || ''; + }; + + // Default some values + data.fontface = editor.getParam("fullpage_default_fontface", ""); + data.fontsize = editor.getParam("fullpage_default_fontsize", ""); + + // Parse XML PI + elm = headerFragment.firstChild; + if (elm.type == 7) { + data.xml_pi = true; + matches = /encoding="([^"]+)"/.exec(elm.value); + if (matches) + data.docencoding = matches[1]; + } + + // Parse doctype + elm = headerFragment.getAll('#doctype')[0]; + if (elm) + data.doctype = '"; + + // Parse title element + elm = headerFragment.getAll('title')[0]; + if (elm && elm.firstChild) { + data.metatitle = elm.firstChild.value; + } + + // Parse meta elements + each(headerFragment.getAll('meta'), function(meta) { + var name = meta.attr('name'), httpEquiv = meta.attr('http-equiv'), matches; + + if (name) + data['meta' + name.toLowerCase()] = meta.attr('content'); + else if (httpEquiv == "Content-Type") { + matches = /charset\s*=\s*(.*)\s*/gi.exec(meta.attr('content')); + + if (matches) + data.docencoding = matches[1]; + } + }); + + // Parse html attribs + elm = headerFragment.getAll('html')[0]; + if (elm) + data.langcode = getAttr(elm, 'lang') || getAttr(elm, 'xml:lang'); + + // Parse stylesheet + elm = headerFragment.getAll('link')[0]; + if (elm && elm.attr('rel') == 'stylesheet') + data.stylesheet = elm.attr('href'); + + // Parse body parts + elm = headerFragment.getAll('body')[0]; + if (elm) { + data.langdir = getAttr(elm, 'dir'); + data.style = getAttr(elm, 'style'); + data.visited_color = getAttr(elm, 'vlink'); + data.link_color = getAttr(elm, 'link'); + data.active_color = getAttr(elm, 'alink'); + } + + return data; + }, + + _dataToHtml : function(data) { + var headerFragment, headElement, html, elm, value, dom = this.editor.dom; + + function setAttr(elm, name, value) { + elm.attr(name, value ? value : undefined); + }; + + function addHeadNode(node) { + if (headElement.firstChild) + headElement.insert(node, headElement.firstChild); + else + headElement.append(node); + }; + + headerFragment = this._parseHeader(); + headElement = headerFragment.getAll('head')[0]; + if (!headElement) { + elm = headerFragment.getAll('html')[0]; + headElement = new Node('head', 1); + + if (elm.firstChild) + elm.insert(headElement, elm.firstChild, true); + else + elm.append(headElement); + } + + // Add/update/remove XML-PI + elm = headerFragment.firstChild; + if (data.xml_pi) { + value = 'version="1.0"'; + + if (data.docencoding) + value += ' encoding="' + data.docencoding + '"'; + + if (elm.type != 7) { + elm = new Node('xml', 7); + headerFragment.insert(elm, headerFragment.firstChild, true); + } + + elm.value = value; + } else if (elm && elm.type == 7) + elm.remove(); + + // Add/update/remove doctype + elm = headerFragment.getAll('#doctype')[0]; + if (data.doctype) { + if (!elm) { + elm = new Node('#doctype', 10); + + if (data.xml_pi) + headerFragment.insert(elm, headerFragment.firstChild); + else + addHeadNode(elm); + } + + elm.value = data.doctype.substring(9, data.doctype.length - 1); + } else if (elm) + elm.remove(); + + // Add/update/remove title + elm = headerFragment.getAll('title')[0]; + if (data.metatitle) { + if (!elm) { + elm = new Node('title', 1); + elm.append(new Node('#text', 3)).value = data.metatitle; + addHeadNode(elm); + } + } + + // Add meta encoding + if (data.docencoding) { + elm = null; + each(headerFragment.getAll('meta'), function(meta) { + if (meta.attr('http-equiv') == 'Content-Type') + elm = meta; + }); + + if (!elm) { + elm = new Node('meta', 1); + elm.attr('http-equiv', 'Content-Type'); + elm.shortEnded = true; + addHeadNode(elm); + } + + elm.attr('content', 'text/html; charset=' + data.docencoding); + } + + // Add/update/remove meta + each('keywords,description,author,copyright,robots'.split(','), function(name) { + var nodes = headerFragment.getAll('meta'), i, meta, value = data['meta' + name]; + + for (i = 0; i < nodes.length; i++) { + meta = nodes[i]; + + if (meta.attr('name') == name) { + if (value) + meta.attr('content', value); + else + meta.remove(); + + return; + } + } + + if (value) { + elm = new Node('meta', 1); + elm.attr('name', name); + elm.attr('content', value); + elm.shortEnded = true; + + addHeadNode(elm); + } + }); + + // Add/update/delete link + elm = headerFragment.getAll('link')[0]; + if (elm && elm.attr('rel') == 'stylesheet') { + if (data.stylesheet) + elm.attr('href', data.stylesheet); + else + elm.remove(); + } else if (data.stylesheet) { + elm = new Node('link', 1); + elm.attr({ + rel : 'stylesheet', + text : 'text/css', + href : data.stylesheet + }); + elm.shortEnded = true; + + addHeadNode(elm); + } + + // Update body attributes + elm = headerFragment.getAll('body')[0]; + if (elm) { + setAttr(elm, 'dir', data.langdir); + setAttr(elm, 'style', data.style); + setAttr(elm, 'vlink', data.visited_color); + setAttr(elm, 'link', data.link_color); + setAttr(elm, 'alink', data.active_color); + + // Update iframe body as well + dom.setAttribs(this.editor.getBody(), { + style : data.style, + dir : data.dir, + vLink : data.visited_color, + link : data.link_color, + aLink : data.active_color + }); + } + + // Set html attributes + elm = headerFragment.getAll('html')[0]; + if (elm) { + setAttr(elm, 'lang', data.langcode); + setAttr(elm, 'xml:lang', data.langcode); + } + + // Serialize header fragment and crop away body part + html = new tinymce.html.Serializer({ + validate: false, + indent: true, + apply_source_formatting : true, + indent_before: 'head,html,body,meta,title,script,link,style', + indent_after: 'head,html,body,meta,title,script,link,style' + }).serialize(headerFragment); + + this.head = html.substring(0, html.indexOf('')); + }, + + _parseHeader : function() { + // Parse the contents with a DOM parser + return new tinymce.html.DomParser({ + validate: false, + root_name: '#document' + }).parse(this.head); + }, + + _setContent : function(ed, o) { + var self = this, startPos, endPos, content = o.content, headerFragment, styles = '', dom = self.editor.dom, elm; + + function low(s) { + return s.replace(/<\/?[A-Z]+/g, function(a) { + return a.toLowerCase(); + }) + }; + + // Ignore raw updated if we already have a head, this will fix issues with undo/redo keeping the head/foot separate + if (o.format == 'raw' && self.head) + return; + + if (o.source_view && ed.getParam('fullpage_hide_in_source_view')) + return; + + // Parse out head, body and footer + content = content.replace(/<(\/?)BODY/gi, '<$1body'); + startPos = content.indexOf('', startPos); + self.head = low(content.substring(0, startPos + 1)); + + endPos = content.indexOf('\n'; + + header += editor.getParam('fullpage_default_doctype', ''); + header += '\n\n\n'; + + if (value = editor.getParam('fullpage_default_title')) + header += '' + v + '\n'; + + if (value = editor.getParam('fullpage_default_encoding')) + header += '\n'; + + if (value = editor.getParam('fullpage_default_font_family')) + styles += 'font-family: ' + value + ';'; + + if (value = editor.getParam('fullpage_default_font_size')) + styles += 'font-size: ' + value + ';'; + + if (value = editor.getParam('fullpage_default_text_color')) + styles += 'color: ' + value + ';'; + + header += '\n\n'; + + return header; + }, + + _getContent : function(ed, o) { + var self = this; + + if (!o.source_view || !ed.getParam('fullpage_hide_in_source_view')) + o.content = tinymce.trim(self.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(self.foot); + } + }); + + // Register plugin + tinymce.PluginManager.add('fullpage', tinymce.plugins.FullPagePlugin); +})(); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm new file mode 100644 index 0000000..14ab865 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm @@ -0,0 +1,259 @@ + + + + {#fullpage_dlg.title} + + + + + + + +
                    + + +
                    +
                    +
                    + {#fullpage_dlg.meta_props} + + + + + + + + + + + + + + + + + + + + + + + + + + +
                     
                     
                     
                     
                     
                      + +
                    +
                    + +
                    + {#fullpage_dlg.langprops} + + + + + + + + + + + + + + + + + + + + + + +
                    + +
                      + +
                     
                    + +
                     
                    +
                    +
                    + +
                    +
                    + {#fullpage_dlg.appearance_textprops} + + + + + + + + + + + + + + + + +
                    + +
                    + +
                    + + + + + +
                     
                    +
                    +
                    + +
                    + {#fullpage_dlg.appearance_bgprops} + + + + + + + + + + +
                    + + + + + +
                     
                    +
                    + + + + + +
                     
                    +
                    +
                    + +
                    + {#fullpage_dlg.appearance_marginprops} + + + + + + + + + + + + + + +
                    +
                    + +
                    + {#fullpage_dlg.appearance_linkprops} + + + + + + + + + + + + + + + + + +
                    + + + + + +
                    +
                    + + + + + +
                     
                    +
                    + + + + + +
                     
                    +
                      
                    +
                    + +
                    + {#fullpage_dlg.appearance_style} + + + + + + + + + + +
                    + + + + +
                     
                    +
                    +
                    +
                    + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js new file mode 100644 index 0000000..3f672ad --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js @@ -0,0 +1,232 @@ +/** + * fullpage.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinyMCEPopup.requireLangPack(); + + var defaultDocTypes = + 'XHTML 1.0 Transitional=,' + + 'XHTML 1.0 Frameset=,' + + 'XHTML 1.0 Strict=,' + + 'XHTML 1.1=,' + + 'HTML 4.01 Transitional=,' + + 'HTML 4.01 Strict=,' + + 'HTML 4.01 Frameset='; + + var defaultEncodings = + 'Western european (iso-8859-1)=iso-8859-1,' + + 'Central European (iso-8859-2)=iso-8859-2,' + + 'Unicode (UTF-8)=utf-8,' + + 'Chinese traditional (Big5)=big5,' + + 'Cyrillic (iso-8859-5)=iso-8859-5,' + + 'Japanese (iso-2022-jp)=iso-2022-jp,' + + 'Greek (iso-8859-7)=iso-8859-7,' + + 'Korean (iso-2022-kr)=iso-2022-kr,' + + 'ASCII (us-ascii)=us-ascii'; + + var defaultFontNames = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings'; + var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px'; + + function setVal(id, value) { + var elm = document.getElementById(id); + + if (elm) { + value = value || ''; + + if (elm.nodeName == "SELECT") + selectByValue(document.forms[0], id, value); + else if (elm.type == "checkbox") + elm.checked = !!value; + else + elm.value = value; + } + }; + + function getVal(id) { + var elm = document.getElementById(id); + + if (elm.nodeName == "SELECT") + return elm.options[elm.selectedIndex].value; + + if (elm.type == "checkbox") + return elm.checked; + + return elm.value; + }; + + window.FullPageDialog = { + changedStyle : function() { + var val, styles = tinyMCEPopup.editor.dom.parseStyle(getVal('style')); + + setVal('fontface', styles['font-face']); + setVal('fontsize', styles['font-size']); + setVal('textcolor', styles['color']); + + if (val = styles['background-image']) + setVal('bgimage', val.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1")); + else + setVal('bgimage', ''); + + setVal('bgcolor', styles['background-color']); + + // Reset margin form elements + setVal('topmargin', ''); + setVal('rightmargin', ''); + setVal('bottommargin', ''); + setVal('leftmargin', ''); + + // Expand margin + if (val = styles['margin']) { + val = val.split(' '); + styles['margin-top'] = val[0] || ''; + styles['margin-right'] = val[1] || val[0] || ''; + styles['margin-bottom'] = val[2] || val[0] || ''; + styles['margin-left'] = val[3] || val[0] || ''; + } + + if (val = styles['margin-top']) + setVal('topmargin', val.replace(/px/, '')); + + if (val = styles['margin-right']) + setVal('rightmargin', val.replace(/px/, '')); + + if (val = styles['margin-bottom']) + setVal('bottommargin', val.replace(/px/, '')); + + if (val = styles['margin-left']) + setVal('leftmargin', val.replace(/px/, '')); + + updateColor('bgcolor_pick', 'bgcolor'); + updateColor('textcolor_pick', 'textcolor'); + }, + + changedStyleProp : function() { + var val, dom = tinyMCEPopup.editor.dom, styles = dom.parseStyle(getVal('style')); + + styles['font-face'] = getVal('fontface'); + styles['font-size'] = getVal('fontsize'); + styles['color'] = getVal('textcolor'); + styles['background-color'] = getVal('bgcolor'); + + if (val = getVal('bgimage')) + styles['background-image'] = "url('" + val + "')"; + else + styles['background-image'] = ''; + + delete styles['margin']; + + if (val = getVal('topmargin')) + styles['margin-top'] = val + "px"; + else + styles['margin-top'] = ''; + + if (val = getVal('rightmargin')) + styles['margin-right'] = val + "px"; + else + styles['margin-right'] = ''; + + if (val = getVal('bottommargin')) + styles['margin-bottom'] = val + "px"; + else + styles['margin-bottom'] = ''; + + if (val = getVal('leftmargin')) + styles['margin-left'] = val + "px"; + else + styles['margin-left'] = ''; + + // Serialize, parse and reserialize this will compress redundant styles + setVal('style', dom.serializeStyle(dom.parseStyle(dom.serializeStyle(styles)))); + this.changedStyle(); + }, + + update : function() { + var data = {}; + + tinymce.each(tinyMCEPopup.dom.select('select,input,textarea'), function(node) { + data[node.id] = getVal(node.id); + }); + + tinyMCEPopup.editor.plugins.fullpage._dataToHtml(data); + tinyMCEPopup.close(); + } + }; + + function init() { + var form = document.forms[0], i, item, list, editor = tinyMCEPopup.editor; + + // Setup doctype select box + list = editor.getParam("fullpage_doctypes", defaultDocTypes).split(','); + for (i = 0; i < list.length; i++) { + item = list[i].split('='); + + if (item.length > 1) + addSelectValue(form, 'doctype', item[0], item[1]); + } + + // Setup fonts select box + list = editor.getParam("fullpage_fonts", defaultFontNames).split(';'); + for (i = 0; i < list.length; i++) { + item = list[i].split('='); + + if (item.length > 1) + addSelectValue(form, 'fontface', item[0], item[1]); + } + + // Setup fontsize select box + list = editor.getParam("fullpage_fontsizes", defaultFontSizes).split(','); + for (i = 0; i < list.length; i++) + addSelectValue(form, 'fontsize', list[i], list[i]); + + // Setup encodings select box + list = editor.getParam("fullpage_encodings", defaultEncodings).split(','); + for (i = 0; i < list.length; i++) { + item = list[i].split('='); + + if (item.length > 1) + addSelectValue(form, 'docencoding', item[0], item[1]); + } + + // Setup color pickers + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); + document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color'); + document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color'); + document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color'); + document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor'); + document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage'); + document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage'); + + // Resize some elements + if (isVisible('stylesheetbrowser')) + document.getElementById('stylesheet').style.width = '220px'; + + if (isVisible('link_href_browser')) + document.getElementById('element_link_href').style.width = '230px'; + + if (isVisible('bgimage_browser')) + document.getElementById('bgimage').style.width = '210px'; + + // Update form + tinymce.each(tinyMCEPopup.getWindowArg('data'), function(value, key) { + setVal(key, value); + }); + + FullPageDialog.changedStyle(); + + // Update colors + updateColor('textcolor_pick', 'textcolor'); + updateColor('bgcolor_pick', 'bgcolor'); + updateColor('visited_color_pick', 'visited_color'); + updateColor('active_color_pick', 'active_color'); + updateColor('link_color_pick', 'link_color'); + }; + + tinyMCEPopup.onInit.add(init); +})(); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/de_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/de_dlg.js new file mode 100644 index 0000000..4260fb0 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/de_dlg.js @@ -0,0 +1,85 @@ +tinyMCE.addI18n('de.fullpage_dlg',{ +title:"Dokument-Eigenschaften", +meta_tab:"Allgemein", +appearance_tab:"Aussehen", +advanced_tab:"Erweitert", +meta_props:"Meta-Information", +langprops:"Sprache und Codierung", +meta_title:"Titel", +meta_keywords:"Keywords", +meta_description:"Beschreibung", +meta_robots:"Robots", +doctypes:"DocType", +langcode:"Sprachcode", +langdir:"Sprachrichtung", +ltr:"Links nach Rechts", +rtl:"Rechts nach Links", +xml_pi:"XML Deklaration", +encoding:"Zeichencodierung", +appearance_bgprops:"Hintergrund-Eigenschaften", +appearance_marginprops:"Abst\u00E4nde des Body", +appearance_linkprops:"Linkfarben", +appearance_textprops:"Text-Eigenschaften", +bgcolor:"Hintergrundfarbe", +bgimage:"Hintergrundbild", +left_margin:"Linker Abstand", +right_margin:"Rechter Abstand", +top_margin:"Oberer Abstand", +bottom_margin:"Unterer Abstand", +text_color:"Textfarbe", +font_size:"Schriftgr\u00F6\u00DFe", +font_face:"Schriftart", +link_color:"Linkfarbe", +hover_color:"Hover-Farbe", +visited_color:"Visited-Farbe", +active_color:"Active-Farbe", +textcolor:"Farbe", +fontsize:"Schriftgr\u00F6\u00DFe", +fontface:"Schriftart", +meta_index_follow:"Indizieren und den Links folgen", +meta_index_nofollow:"Indizieren, aber den Links nicht folgen", +meta_noindex_follow:"Nicht indizieren, aber den Links folgen", +meta_noindex_nofollow:"Nicht indizieren und auch nicht den Links folgen", +appearance_style:"CSS-Stylesheet und Stileigenschaften", +stylesheet:"CSS-Stylesheet", +style:"CSS-Stil", +author:"Autor", +copyright:"Copyright", +add:"Neues Element hinzuf\u00FCgen", +remove:"Ausgew\u00E4hltes Element entfernen", +moveup:"Ausgew\u00E4hltes Element nach oben bewegen", +movedown:"Ausgew\u00E4hltes Element nach unten bewegen", +head_elements:"\u00DCberschriftenelemente", +info:"Information", +add_title:"Titel-Element", +add_meta:"Meta-Element", +add_script:"Script-Element", +add_style:"Style-Element", +add_link:"Link-Element", +add_base:"Base-Element", +add_comment:"HTML-Kommentar", +title_element:"Titel-Element", +script_element:"Script-Element", +style_element:"Style-Element", +base_element:"Base-Element", +link_element:"Link-Element", +meta_element:"Meta_Element", +comment_element:"Kommentar", +src:"Src", +language:"Sprache", +href:"Href", +target:"Ziel", +type:"Typ", +charset:"Zeichensatz", +defer:"Defer", +media:"Media", +properties:"Eigenschaften", +name:"Name", +value:"Wert", +content:"Inhalt", +rel:"Rel", +rev:"Rev", +hreflang:"Href lang", +general_props:"Allgemein", +advanced_props:"Erweitert" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js new file mode 100644 index 0000000..f5801b8 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js @@ -0,0 +1,85 @@ +tinyMCE.addI18n('en.fullpage_dlg',{ +title:"Document properties", +meta_tab:"General", +appearance_tab:"Appearance", +advanced_tab:"Advanced", +meta_props:"Meta information", +langprops:"Language and encoding", +meta_title:"Title", +meta_keywords:"Keywords", +meta_description:"Description", +meta_robots:"Robots", +doctypes:"Doctype", +langcode:"Language code", +langdir:"Language direction", +ltr:"Left to right", +rtl:"Right to left", +xml_pi:"XML declaration", +encoding:"Character encoding", +appearance_bgprops:"Background properties", +appearance_marginprops:"Body margins", +appearance_linkprops:"Link colors", +appearance_textprops:"Text properties", +bgcolor:"Background color", +bgimage:"Background image", +left_margin:"Left margin", +right_margin:"Right margin", +top_margin:"Top margin", +bottom_margin:"Bottom margin", +text_color:"Text color", +font_size:"Font size", +font_face:"Font face", +link_color:"Link color", +hover_color:"Hover color", +visited_color:"Visited color", +active_color:"Active color", +textcolor:"Color", +fontsize:"Font size", +fontface:"Font family", +meta_index_follow:"Index and follow the links", +meta_index_nofollow:"Index and don't follow the links", +meta_noindex_follow:"Do not index but follow the links", +meta_noindex_nofollow:"Do not index and don\'t follow the links", +appearance_style:"Stylesheet and style properties", +stylesheet:"Stylesheet", +style:"Style", +author:"Author", +copyright:"Copyright", +add:"Add new element", +remove:"Remove selected element", +moveup:"Move selected element up", +movedown:"Move selected element down", +head_elements:"Head elements", +info:"Information", +add_title:"Title element", +add_meta:"Meta element", +add_script:"Script element", +add_style:"Style element", +add_link:"Link element", +add_base:"Base element", +add_comment:"Comment node", +title_element:"Title element", +script_element:"Script element", +style_element:"Style element", +base_element:"Base element", +link_element:"Link element", +meta_element:"Meta element", +comment_element:"Comment", +src:"Src", +language:"Language", +href:"Href", +target:"Target", +type:"Type", +charset:"Charset", +defer:"Defer", +media:"Media", +properties:"Properties", +name:"Name", +value:"Value", +content:"Content", +rel:"Rel", +rev:"Rev", +hreflang:"Href lang", +general_props:"General", +advanced_props:"Advanced" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/eo_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/eo_dlg.js new file mode 100644 index 0000000..bd11ff3 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/eo_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.fullpage_dlg',{title:"Atributoj de la dokumento","meta_tab":"\u011ceneralaj","appearance_tab":"Aspekto","advanced_tab":"Spertaj","meta_props":"Meta-informo",langprops:"Lingvo kaj enkodigo","meta_title":"Titolo","meta_keywords":"\u015closilvortoj","meta_description":"Priskribo","meta_robots":"Robotoj",doctypes:"Doctype",langcode:"Lingvokodo",langdir:"Tekstodirekto",ltr:"Maldekstre-Dekstren",rtl:"Dekstre-Maldekstren","xml_pi":"Deklaro XML",encoding:"Signa enkodigo","appearance_bgprops":"Fonaj atributoj","appearance_marginprops":"Mar\u011denoj (BODY)","appearance_linkprops":"Koloroj de ligiloj","appearance_textprops":"Atributoj de teksto",bgcolor:"Koloro de fono",bgimage:"Bildo de fono","left_margin":"Maldekstra mar\u011deno","right_margin":"Dekstra mar\u011deno","top_margin":"Supra mar\u011deno","bottom_margin":"Suba mar\u011deno","text_color":"Tekstokoloro","font_size":"Grandeco de tiparo","font_face":"Tiparo","link_color":"Koloro de ligiloj","hover_color":"Koloro dum \u015dvebo","visited_color":"Koloro de vizitita ligilo","active_color":"Koloro de aktiva ligilo",textcolor:"Koloro",fontsize:"Grandeco de tiparo",fontface:"Tiparo","meta_index_follow":"Indeksi kaj sekvi ligilojn","meta_index_nofollow":"Indeksi kaj ne sekvi ligilojn","meta_noindex_follow":"Sekvi ligilojn, sed ne indeksi","meta_noindex_nofollow":"Ne indeksi / ne sekvi ligilojn.","appearance_style":"Atributoj de stilfolio",stylesheet:"Stilfolio",style:"Stilo",author:"A\u016dtoro",copyright:"Kopirajto",add:"Aldoni novan elementon",remove:"Forigi elektitan elementon",moveup:"Suprenigi elektitan elementon",movedown:"Subigi elektitan elementon","head_elements":"Elementoj HEAD",info:"Informo","add_title":"TITLE","add_meta":"META","add_script":"SCRIPT","add_style":"STYLE","add_link":"LINK","add_base":"BASE","add_comment":"Komento","title_element":"TITLE","script_element":"SCRIPT","style_element":"STYLE","base_element":"BASE","link_element":"LINK","meta_element":"META","comment_element":"Komento",src:"src",language:"Lingvo",href:"href",target:"Celo",type:"Tipo",charset:"Signa enkodigo",defer:"Prokrasti",media:"Enhavkomunikilo",properties:"Atributoj",name:"Nomo",value:"Valoro",content:"Enhavo",rel:"rel",rev:"rev",hreflang:"href lang","general_props":"\u0108efaj","advanced_props":"Spertaj"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/es_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/es_dlg.js new file mode 100644 index 0000000..05699c8 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/es_dlg.js @@ -0,0 +1,85 @@ +tinyMCE.addI18n('es.fullpage_dlg',{ +title:"Propiedades del documento", +meta_tab:"General", +appearance_tab:"Apariencia", +advanced_tab:"Avanzado", +meta_props:"Informaci\u00F3n Meta", +langprops:"Lenguaje y codificaci\u00F3n", +meta_title:"T\u00EDtulo", +meta_keywords:"Palabras clave", +meta_description:"Descripci\u00F3n", +meta_robots:"Robots", +doctypes:"Tipo de doc.", +langcode:"C\u00F3digo del lenguaje", +langdir:"Direcci\u00F3n del lenguaje", +ltr:"Izquierda a derecha", +rtl:"Derecha a izquierda", +xml_pi:"Declaraci\u00F3n XML", +encoding:"Codificaci\u00F3n de caracteres", +appearance_bgprops:"Propiedades del fondo", +appearance_marginprops:"M\u00E1rgenes", +appearance_linkprops:"Colores del v\u00EDnculo", +appearance_textprops:"Propiedades de texto", +bgcolor:"Color de fondo", +bgimage:"Imagen de fondo", +left_margin:"Margen izquierdo", +right_margin:"Margen derecho", +top_margin:"Margen superior", +bottom_margin:"Margen inferior", +text_color:"Color del texto", +font_size:"Tama\u00F1o de fuente", +font_face:"Fuente", +link_color:"Color de v\u00EDnculo", +hover_color:"Color rat\u00F3n encima", +visited_color:"Color visitado", +active_color:"Color activo", +textcolor:"Color", +fontsize:"Tama\u00F1o de fuente", +fontface:"Fuente", +meta_index_follow:"Indexar y seguir los v\u00EDnculos", +meta_index_nofollow:"Indexar y no seguir los v\u00EDnculos", +meta_noindex_follow:"No indexar pero seguir v\u00EDnculos", +meta_noindex_nofollow:"No indexar y no seguir v\u00EDnculos", +appearance_style:"Propiedades de hoja de estilos y estilo", +stylesheet:"Hoja de estilo", +style:"Estilo", +author:"Autor", +copyright:"Copyright", +add:"Agregar nuevo elemento", +remove:"Eliminar elemento seleccionado", +moveup:"Mover elemento seleccionado hacia arriba", +movedown:"Mover elemento seleccionado hacia abajo", +head_elements:"Elemento Head", +info:"Informaci\u00F3n", +add_title:"Elemento Title", +add_meta:"Elemento Meta", +add_script:"Elemento Script", +add_style:"Elemento Style", +add_link:"Elemento Link", +add_base:"Elemento Base", +add_comment:"Nodo Comment", +title_element:"Elemento Title", +script_element:"Elemento Script", +style_element:"Elemento Style", +base_element:"Elemento Base", +link_element:"Elemento Link", +meta_element:"Elemento Meta", +comment_element:"Comentario", +src:"Src", +language:"Lenguaje", +href:"Href", +target:"Target", +type:"Tipo", +charset:"Charset", +defer:"Defer", +media:"Medio", +properties:"Propiedades", +name:"Nombre", +value:"Valor", +content:"Contenido", +rel:"Rel", +rev:"Rev", +hreflang:"Href lang", +general_props:"General", +advanced_props:"Avanzado" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/fr_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/fr_dlg.js new file mode 100644 index 0000000..16aa155 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/fr_dlg.js @@ -0,0 +1,85 @@ +tinyMCE.addI18n('fr.fullpage_dlg',{ +title:"Propri\u00E9t\u00E9s du document", +meta_tab:"G\u00E9n\u00E9ral", +appearance_tab:"Apparence", +advanced_tab:"Avanc\u00E9", +meta_props:"Meta information", +langprops:"Langue et encodage", +meta_title:"Titre", +meta_keywords:"Mots-cl\u00E9s", +meta_description:"Description", +meta_robots:"Robots", +doctypes:"Doctype", +langcode:"Code de la langue", +langdir:"Sens de lecture", +ltr:"De gauche \u00E0 droite", +rtl:"De droite \u00E0 gauche", +xml_pi:"D\u00E9claration XML", +encoding:"Encodage des caract\u00E8res", +appearance_bgprops:"Propri\u00E9t\u00E9s du fond", +appearance_marginprops:"Marge du corps de la page", +appearance_linkprops:"Couleurs des liens", +appearance_textprops:"Propri\u00E9t\u00E9s du texte", +bgcolor:"Couleur de fond", +bgimage:"Image de fond", +left_margin:"Marge de gauche", +right_margin:"Marge de droite", +top_margin:"Marge du haut", +bottom_margin:"Marge du bas", +text_color:"Couleur du texte", +font_size:"Taille de la police", +font_face:"Nom de la police", +link_color:"Couleur des liens", +hover_color:"Couleur au survol", +visited_color:"Couleur des liens visit\u00E9s", +active_color:"Couleur du lien actif", +textcolor:"Couleur", +fontsize:"Taille de police", +fontface:"Nom de la police", +meta_index_follow:"Indexer et suivre les liens", +meta_index_nofollow:"Indexer et ne pas suivre les liens", +meta_noindex_follow:"Ne pas indexer et suivre les liens", +meta_noindex_nofollow:"Ne pas indexer et ne pas suivre les liens", +appearance_style:"Propri\u00E9t\u00E9s de la feuille de style et du style", +stylesheet:"Feuille de style", +style:"Style", +author:"Auteur", +copyright:"Copyright", +add:"Ajouter nouvel \u00E9l\u00E9ment", +remove:"Enlever l'\u00E9l\u00E9ment s\u00E9lectionn\u00E9", +moveup:"D\u00E9placer l'\u00E9l\u00E9ment s\u00E9lectionn\u00E9 vers le haut", +movedown:"D\u00E9placer l'\u00E9l\u00E9ment s\u00E9lectionn\u00E9 vers le bas", +head_elements:"\u00C9l\u00E9ments de t\u00EAte", +info:"Information", +add_title:"\u00C9l\u00E9ment de titre", +add_meta:"\u00C9l\u00E9ment Meta", +add_script:"\u00C9l\u00E9ment de script", +add_style:"\u00C9l\u00E9ment de style", +add_link:"\u00C9l\u00E9ment de lien", +add_base:"\u00C9l\u00E9ment de base", +add_comment:"Commentaire", +title_element:"\u00C9l\u00E9ment de titre", +script_element:"\u00C9l\u00E9ment de script", +style_element:"\u00C9l\u00E9ment de style", +base_element:"\u00C9l\u00E9ment de base", +link_element:"\u00C9l\u00E9ment de lien", +meta_element:"\u00C9l\u00E9ment Meta", +comment_element:"Commentaire", +src:"Source", +language:"Langue", +href:"Href", +target:"Cible", +type:"Type", +charset:"Charset", +defer:"D\u00E9f\u00E9rer", +media:"M\u00E9dia", +properties:"Propri\u00E9t\u00E9s", +name:"Nom", +value:"Valeur", +content:"Contenu", +rel:"Rel", +rev:"Rev", +hreflang:"langue Href", +general_props:"G\u00E9n\u00E9ral", +advanced_props:"Avanc\u00E9" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ja_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ja_dlg.js new file mode 100644 index 0000000..55481d3 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ja_dlg.js @@ -0,0 +1,85 @@ +tinyMCE.addI18n('ja.fullpage_dlg',{ +title:"\u30DA\u30FC\u30B8\u8A2D\u5B9A", +meta_tab:"\u4E00\u822C", +appearance_tab:"\u8868\u793A", +advanced_tab:"\u4E0A\u7D1A\u8005\u5411\u3051", +meta_props:"\u30E1\u30BF\u60C5\u5831", +langprops:"\u8A00\u8A9E\u3068\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0", +meta_title:"\u30BF\u30A4\u30C8\u30EB", +meta_keywords:"\u30AD\u30FC\u30EF\u30FC\u30C9", +meta_description:"\u8AAC\u660E", +meta_robots:"\u691C\u7D22\u30ED\u30DC\u30C3\u30C8\u5236\u5FA1", +doctypes:"DOCTYPE", +langcode:"\u8A00\u8A9E\u30B3\u30FC\u30C9", +langdir:"\u6587\u7AE0\u306E\u65B9\u5411", +ltr:"\u5DE6\u304B\u3089\u53F3", +rtl:"\u53F3\u304B\u3089\u5DE6", +xml_pi:"XML\u5BA3\u8A00", +encoding:"\u6587\u5B57\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0", +appearance_bgprops:"\u80CC\u666F\u306E\u30D7\u30ED\u30D1\u30C6\u30A3", +appearance_marginprops:"\u4F59\u767D", +appearance_linkprops:"\u30EA\u30F3\u30AF\u8272", +appearance_textprops:"\u6587\u5B57\u3082\u30D7\u30ED\u30D1\u30C6\u30A3", +bgcolor:"\u80CC\u666F\u8272", +bgimage:"\u80CC\u666F\u753B\u50CF", +left_margin:"\u5DE6\u4F59\u767D", +right_margin:"\u53F3\u4F59\u767D", +top_margin:"\u4E0A\u4F59\u767D", +bottom_margin:"\u4E0B\u4F59\u767D", +text_color:"\u6587\u5B57\u8272", +font_size:"\u6587\u5B57\u30B5\u30A4\u30BA", +font_face:"\u30D5\u30A9\u30F3\u30C8", +link_color:"\u30EA\u30F3\u30AF\u8272", +hover_color:"\u30EA\u30F3\u30AF\u8272(hover)", +visited_color:"\u30EA\u30F3\u30AF\u8272(visited)", +active_color:"\u30EA\u30F3\u30AF\u8272(active)", +textcolor:"\u8272", +fontsize:"\u6587\u5B57\u30B5\u30A4\u30BA", +fontface:"\u30D5\u30A9\u30F3\u30C8", +meta_index_follow:"\u3053\u306E\u30DA\u30FC\u30B8\u3068\u30EA\u30F3\u30AF\u5148\u306E\u5DE1\u56DE\u3092\u8A31\u53EF", +meta_index_nofollow:"\u3053\u306E\u30DA\u30FC\u30B8\u306E\u5DE1\u56DE\u3092\u8A31\u53EF\u3001\u30EA\u30F3\u30AF\u5148\u306E\u5DE1\u56DE\u3092\u7981\u6B62", +meta_noindex_follow:"\u3053\u306E\u30DA\u30FC\u30B8\u306E\u5DE1\u56DE\u3092\u7981\u6B62\u3001\u30EA\u30F3\u30AF\u5148\u306E\u5DE1\u56DE\u3092\u8A31\u53EF", +meta_noindex_nofollow:"\u3053\u306E\u30DA\u30FC\u30B8\u3068\u30EA\u30F3\u30AF\u5148\u306E\u5DE1\u56DE\u3092\u7981\u6B62", +appearance_style:"\u30B9\u30BF\u30A4\u30EB\u8A2D\u5B9A", +stylesheet:"\u30B9\u30BF\u30A4\u30EB\u30B7\u30FC\u30C8", +style:"\u30B9\u30BF\u30A4\u30EB", +author:"\u4F5C\u8005", +copyright:"\u30B3\u30D4\u30FC\u30E9\u30A4\u30C8", +add:"\u30A8\u30EC\u30E1\u30F3\u30C8\u8FFD\u52A0", +remove:"\u9078\u629E\u8981\u7D20\u306E\u524A\u9664", +moveup:"\u9078\u629E\u8981\u7D20\u3092\u4E0A\u3078\u79FB\u52D5", +movedown:"\u9078\u629E\u8981\u7D20\u3092\u4E0B\u3078\u79FB\u52D5", +head_elements:"Head\u8981\u7D20", +info:"\u30A4\u30F3\u30D5\u30A9\u30E1\u30FC\u30B7\u30E7\u30F3", +add_title:"Title\u8981\u7D20", +add_meta:"Meta\u8981\u7D20", +add_script:"Script\u8981\u7D20", +add_style:"Style\u8981\u7D20", +add_link:"Link\u8981\u7D20", +add_base:"Base\u8981\u7D20", +add_comment:"Comment\u30CE\u30FC\u30C9", +title_element:"Title\u8981\u7D20", +script_element:"Script\u8981\u7D20", +style_element:"Style\u8981\u7D20", +base_element:"Base\u8981\u7D20", +link_element:"Link\u8981\u7D20", +meta_element:"Meta\u8981\u7D20", +comment_element:"Comment", +src:"src", +language:"Language", +href:"Href", +target:"Target", +type:"Type", +charset:"Charset", +defer:"Defer", +media:"Media", +properties:"Properties", +name:"Name", +value:"Value", +content:"Content", +rel:"Rel", +rev:"Rev", +hreflang:"Href lang", +general_props:"\u4E00\u822C", +advanced_props:"\u4E0A\u7D1A\u8005\u5411\u3051" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/nl_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/nl_dlg.js new file mode 100644 index 0000000..b90a127 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/nl_dlg.js @@ -0,0 +1,85 @@ +tinyMCE.addI18n('nl.fullpage_dlg',{ +title:"Documenteigenschappen", +meta_tab:"Algemeen", +appearance_tab:"Weergave", +advanced_tab:"Geavanceerd", +meta_props:"Meta informatie", +langprops:"Taal en codering", +meta_title:"Titel", +meta_keywords:"Sleutelwoorden", +meta_description:"Beschrijving", +meta_robots:"Robots", +doctypes:"Doctype", +langcode:"Taalcode", +langdir:"Taalrichting", +ltr:"Van links naar rechts", +rtl:"Van rechts naar links", +xml_pi:"XML toewijzing", +encoding:"Karaktercodering", +appearance_bgprops:"Achtergrondeigenschappen", +appearance_marginprops:"Bodymarge", +appearance_linkprops:"Linkkleuren", +appearance_textprops:"Teksteigenschappen", +bgcolor:"Achtergrondkleur", +bgimage:"Achtergrondafbeelding", +left_margin:"Linkermarge", +right_margin:"Rechtermarge", +top_margin:"Bovenmarge", +bottom_margin:"Ondermarge", +text_color:"Tekstkleur", +font_size:"Tekengrootte", +font_face:"Lettertype", +link_color:"Linkkleur", +hover_color:"Hoverkleur", +visited_color:"Bezocht kleur", +active_color:"Actieve kleur", +textcolor:"Kleur", +fontsize:"Tekengrootte", +fontface:"Lettertype", +meta_index_follow:"Links indexeren en volgen", +meta_index_nofollow:"Links indexeren maar niet volgen", +meta_noindex_follow:"Links volgen maar niet indexeren", +meta_noindex_nofollow:"Links niet indexeren en niet volgen", +appearance_style:"Stijlblad en stijleigenschappen", +stylesheet:"Stijlblad", +style:"Stijl", +author:"Auteur", +copyright:"Copyright", +add:"Nieuw element toevoegen", +remove:"Geselecteerde elementen verwijderen", +moveup:"Geselecteerde elementen omhoog verplaatsen", +movedown:"Geselecteerde elementen omlaag verplaatsen", +head_elements:"Kopelementen", +info:"Informatie", +add_title:"Titelelement", +add_meta:"Meta-element", +add_script:"Scriptelement", +add_style:"Stijlelement", +add_link:"Linkelement", +add_base:"Basiselement", +add_comment:"Opmerkingknooppunt", +title_element:"Titelelement", +script_element:"Scriptelement", +style_element:"Stijlelement", +base_element:"Basiselement", +link_element:"Linkelement", +meta_element:"Meta-element", +comment_element:"Opmerking", +src:"Bron", +language:"Taal", +href:"Href", +target:"Doel", +type:"Type", +charset:"Karakterset", +defer:"Uitstellen", +media:"Media", +properties:"Eigenschappen", +name:"Naam", +value:"Waarde", +content:"Inhoud", +rel:"Rel", +rev:"Rev", +hreflang:"Href taal", +general_props:"Algemeen", +advanced_props:"Geavanceerd" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/pt_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/pt_dlg.js new file mode 100644 index 0000000..2e582ca --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/pt_dlg.js @@ -0,0 +1,85 @@ +tinyMCE.addI18n('pt.fullpage_dlg',{ +title:"Propriedades do documento", +meta_tab:"Geral", +appearance_tab:"Apar\u00EAncia", +advanced_tab:"Avan\u00E7ado", +meta_props:"Meta-informa\u00E7\u00E3o", +langprops:"Idioma e codifica\u00E7\u00E3o", +meta_title:"T\u00EDtulo", +meta_keywords:"Palavras-chave", +meta_description:"Descri\u00E7\u00E3o", +meta_robots:"Robots", +doctypes:"Doctype", +langcode:"C\u00F3digo de idioma", +langdir:"Dire\u00E7\u00E3o do texto", +ltr:"Esquerda para direita", +rtl:"Direita para esquerda", +xml_pi:"Declara\u00E7\u00E3o XML", +encoding:"Codifica\u00E7\u00E3o de caracteres", +appearance_bgprops:"Propriedades do plano de fundo", +appearance_marginprops:"Margens (BODY)", +appearance_linkprops:"Cores dos links", +appearance_textprops:"Propriedades de texto", +bgcolor:"Cor de fundo", +bgimage:"Imagem de fundo", +left_margin:"Margem esquerda", +right_margin:"Margem direita", +top_margin:"Margem topo", +bottom_margin:"Margem base", +text_color:"Cor do texto", +font_size:"Tamanho fonte", +font_face:"Fonte", +link_color:"Cores dos links", +hover_color:"Hover", +visited_color:"Visitado", +active_color:"Ativo", +textcolor:"Cor", +fontsize:"Tamanho fonte", +fontface:"Fonte", +meta_index_follow:"Indexar e seguir os hyperlinks", +meta_index_nofollow:"Indexar e n\u00E3o seguir os hyperlinks", +meta_noindex_follow:"Seguir hyperlinks, mas n\u00E3o indexar", +meta_noindex_nofollow:"N\u00E3o indexar / n\u00E3o seguir hyperlinks.", +appearance_style:"Propriedades de folhas de estilo", +stylesheet:"Folha de estilo", +style:"Estilo", +author:"Autor", +copyright:"Copyright", +add:"Acrescentar novo elemento", +remove:"Remover elemento selecionado", +moveup:"Subir elemento selecionado", +movedown:"Descer elemento selecionado", +head_elements:"Elementos HEAD", +info:"Informa\u00E7\u00E3o", +add_title:"TITLE", +add_meta:"META", +add_script:"SCRIPT", +add_style:"STYLE", +add_link:"LINK", +add_base:"BASE", +add_comment:"Coment\u00E1rio", +title_element:"TITLE", +script_element:"SCRIPT", +style_element:"STYLE", +base_element:"BASE", +link_element:"LINK", +meta_element:"META", +comment_element:"Coment\u00E1rio", +src:"src", +language:"Idioma", +href:"href", +target:"Alvo", +type:"Tipo", +charset:"Charset", +defer:"Adiar", +media:"Media", +properties:"Propriedades", +name:"Nome", +value:"Valor", +content:"Conte\u00FAdo", +rel:"rel", +rev:"rev", +hreflang:"href lang", +general_props:"Geral", +advanced_props:"Avan\u00E7ado" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ru_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ru_dlg.js new file mode 100644 index 0000000..97d0ce5 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/ru_dlg.js @@ -0,0 +1,85 @@ +tinyMCE.addI18n('ru.fullpage_dlg',{ +title:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430", +meta_tab:"\u041E\u0431\u0449\u0435\u0435", +appearance_tab:"\u0412\u0438\u0434", +advanced_tab:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E", +meta_props:"\u0426\u0435\u043B\u044C \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438", +langprops:"\u042F\u0437\u044B\u043A \u0438 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F", +meta_title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A", +meta_keywords:"\u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0441\u043B\u043E\u0432\u0430", +meta_description:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435", +meta_robots:"\u0420\u0430\u0431\u043E\u0442\u044B", +doctypes:"Doctype", +langcode:"\u041A\u043E\u0434 \u044F\u0437\u044B\u043A\u0430", +langdir:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u044F\u0437\u044B\u043A\u0430", +ltr:"\u0421\u043B\u0435\u0432\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043E", +rtl:"\u0421\u043F\u0440\u0430\u0432\u0430 \u043D\u0430\u043B\u0435\u0432\u043E", +xml_pi:"XML declaration", +encoding:"\u041A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430", +appearance_bgprops:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0444\u043E\u043D\u0430", +appearance_marginprops:"\u041E\u0442\u0441\u0442\u0443\u043F\u044B", +appearance_linkprops:"\u0426\u0432\u0435\u0442 \u0441\u0441\u044B\u043B\u043E\u043A", +appearance_textprops:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0442\u0435\u043A\u0441\u0442\u0430", +bgcolor:"\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430", +bgimage:"\u0424\u043E\u043D\u043E\u0432\u043E\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435", +left_margin:"\u041E\u0442\u0441\u0442\u0443\u043F \u0441\u043B\u0435\u0432\u0430", +right_margin:"\u041E\u0442\u0441\u0442\u0443\u043F \u0441\u043F\u0440\u0430\u0432\u0430", +top_margin:"\u041E\u0442\u0441\u0442\u0443\u043F \u0441\u0432\u0435\u0440\u0445\u0443", +bottom_margin:"\u041E\u0442\u0441\u0442\u0443\u043F \u0441\u043D\u0438\u0437\u0443", +text_color:"\u0426\u0432\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u0430", +font_size:"\u0420\u0430\u0437\u043C\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430", +font_face:"\u0428\u0440\u0438\u0444\u0442", +link_color:"\u0426\u0432\u0435\u0442 \u0441\u0441\u044B\u043B\u043A\u0438", +hover_color:"\u0426\u0432\u0435\u0442 \u0441\u0441\u044B\u043B\u043A\u0438 \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438", +visited_color:"\u0426\u0432\u0435\u0442 \u043D\u0430\u0436\u0430\u0442\u043E\u0439 \u0441\u0441\u044B\u043B\u043A\u0438", +active_color:"\u0426\u0432\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0439 \u0441\u0441\u044B\u043B\u043A\u0438", +textcolor:"\u0426\u0432\u0435\u0442", +fontsize:"\u0420\u0430\u0437\u043C\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430", +fontface:"\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u0448\u0440\u0438\u0444\u0442\u0430", +meta_index_follow:"Index and follow the links", +meta_index_nofollow:"Index and don't follow the links", +meta_noindex_follow:"Do not index but follow the links", +meta_noindex_nofollow:"Do not index and don \ 't follow the links", +appearance_style:"Stylesheet and style properties", +stylesheet:"Stylesheet", +style:"\u0421\u0442\u0438\u043B\u044C", +author:"\u0410\u0432\u0442\u043E\u0440", +copyright:"\u041A\u043E\u043F\u0438\u0440\u0430\u0439\u0442", +add:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442", +remove:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442", +moveup:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0432\u0432\u0435\u0440\u0445", +movedown:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0432\u043D\u0438\u0437", +head_elements:"Head elements", +info:"\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F", +add_title:"Title element", +add_meta:"Meta element", +add_script:"Script element", +add_style:"Style element", +add_link:"Link element", +add_base:"Base element", +add_comment:"Comment node", +title_element:"Title element", +script_element:"Script element", +style_element:"Style element", +base_element:"Base element", +link_element:"Link element", +meta_element:"Meta \u044D\u043B\u0435\u043C\u0435\u043D\u0442", +comment_element:"\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439", +src:"Src", +language:"\u042F\u0437\u044B\u043A", +href:"Href", +target:"Target", +type:"Type", +charset:"Charset", +defer:"Defer", +media:"Media", +properties:"Properties", +name:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435", +value:"\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435", +content:"\u0421\u043E\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435", +rel:"Rel", +rev:"Rev", +hreflang:"Href lang", +general_props:"\u041E\u0431\u0449\u0435\u0435", +advanced_props:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js new file mode 100644 index 0000000..6eae3ec --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js @@ -0,0 +1 @@ +(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.FullScreenPlugin",{init:function(d,e){var f=this,g={},c,b;f.editor=d;d.addCommand("mceFullScreen",function(){var i,j=a.doc.documentElement;if(d.getParam("fullscreen_is_enabled")){if(d.getParam("fullscreen_new_window")){closeFullscreen()}else{a.win.setTimeout(function(){tinymce.dom.Event.remove(a.win,"resize",f.resizeFunc);tinyMCE.get(d.getParam("fullscreen_editor_id")).setContent(d.getContent({format:"raw"}),{format:"raw"});tinyMCE.remove(d);a.remove("mce_fullscreen_container");j.style.overflow=d.getParam("fullscreen_html_overflow");a.setStyle(a.doc.body,"overflow",d.getParam("fullscreen_overflow"));a.win.scrollTo(d.getParam("fullscreen_scrollx"),d.getParam("fullscreen_scrolly"));tinyMCE.settings=tinyMCE.oldSettings},10)}return}if(d.getParam("fullscreen_new_window")){i=a.win.open(e+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{i.resizeTo(screen.availWidth,screen.availHeight)}catch(h){}}else{tinyMCE.oldSettings=tinyMCE.settings;g.fullscreen_overflow=a.getStyle(a.doc.body,"overflow",1)||"auto";g.fullscreen_html_overflow=a.getStyle(j,"overflow",1);c=a.getViewPort();g.fullscreen_scrollx=c.x;g.fullscreen_scrolly=c.y;if(tinymce.isOpera&&g.fullscreen_overflow=="visible"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&g.fullscreen_overflow=="scroll"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&(g.fullscreen_html_overflow=="visible"||g.fullscreen_html_overflow=="scroll")){g.fullscreen_html_overflow="auto"}if(g.fullscreen_overflow=="0px"){g.fullscreen_overflow=""}a.setStyle(a.doc.body,"overflow","hidden");j.style.overflow="hidden";c=a.getViewPort();a.win.scrollTo(0,0);if(tinymce.isIE){c.h-=1}if(tinymce.isIE6){b="absolute;top:"+c.y}else{b="fixed;top:0"}n=a.add(a.doc.body,"div",{id:"mce_fullscreen_container",style:"position:"+b+";left:0;width:"+c.w+"px;height:"+c.h+"px;z-index:200000;"});a.add(n,"div",{id:"mce_fullscreen"});tinymce.each(d.settings,function(k,l){g[l]=k});g.id="mce_fullscreen";g.width=n.clientWidth;g.height=n.clientHeight-15;g.fullscreen_is_enabled=true;g.fullscreen_editor_id=d.id;g.theme_advanced_resizing=false;g.save_onsavecallback=function(){d.setContent(tinyMCE.get(g.id).getContent({format:"raw"}),{format:"raw"});d.execCommand("mceSave")};tinymce.each(d.getParam("fullscreen_settings"),function(m,l){g[l]=m});if(g.theme_advanced_toolbar_location==="external"){g.theme_advanced_toolbar_location="top"}f.fullscreenEditor=new tinymce.Editor("mce_fullscreen",g);f.fullscreenEditor.onInit.add(function(){f.fullscreenEditor.setContent(d.getContent());f.fullscreenEditor.focus()});f.fullscreenEditor.render();f.fullscreenElement=new tinymce.dom.Element("mce_fullscreen_container");f.fullscreenElement.update();f.resizeFunc=tinymce.dom.Event.add(a.win,"resize",function(){var o=tinymce.DOM.getViewPort(),l=f.fullscreenEditor,k,m;k=l.dom.getSize(l.getContainer().firstChild);m=l.dom.getSize(l.getContainer().getElementsByTagName("iframe")[0]);l.theme.resizeTo(o.w-k.w+m.w,o.h-k.h+m.h)})}});d.addButton("fullscreen",{title:"fullscreen.desc",cmd:"mceFullScreen"});d.onNodeChange.add(function(i,h){h.setActive("fullscreen",i.getParam("fullscreen_is_enabled"))})},getInfo:function(){return{longname:"Fullscreen",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("fullscreen",tinymce.plugins.FullScreenPlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js new file mode 100644 index 0000000..3477c86 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js @@ -0,0 +1,159 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var DOM = tinymce.DOM; + + tinymce.create('tinymce.plugins.FullScreenPlugin', { + init : function(ed, url) { + var t = this, s = {}, vp, posCss; + + t.editor = ed; + + // Register commands + ed.addCommand('mceFullScreen', function() { + var win, de = DOM.doc.documentElement; + + if (ed.getParam('fullscreen_is_enabled')) { + if (ed.getParam('fullscreen_new_window')) + closeFullscreen(); // Call to close in new window + else { + DOM.win.setTimeout(function() { + tinymce.dom.Event.remove(DOM.win, 'resize', t.resizeFunc); + tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format : 'raw'}), {format : 'raw'}); + tinyMCE.remove(ed); + DOM.remove('mce_fullscreen_container'); + de.style.overflow = ed.getParam('fullscreen_html_overflow'); + DOM.setStyle(DOM.doc.body, 'overflow', ed.getParam('fullscreen_overflow')); + DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly')); + tinyMCE.settings = tinyMCE.oldSettings; // Restore old settings + }, 10); + } + + return; + } + + if (ed.getParam('fullscreen_new_window')) { + win = DOM.win.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight); + try { + win.resizeTo(screen.availWidth, screen.availHeight); + } catch (e) { + // Ignore + } + } else { + tinyMCE.oldSettings = tinyMCE.settings; // Store old settings + s.fullscreen_overflow = DOM.getStyle(DOM.doc.body, 'overflow', 1) || 'auto'; + s.fullscreen_html_overflow = DOM.getStyle(de, 'overflow', 1); + vp = DOM.getViewPort(); + s.fullscreen_scrollx = vp.x; + s.fullscreen_scrolly = vp.y; + + // Fixes an Opera bug where the scrollbars doesn't reappear + if (tinymce.isOpera && s.fullscreen_overflow == 'visible') + s.fullscreen_overflow = 'auto'; + + // Fixes an IE bug where horizontal scrollbars would appear + if (tinymce.isIE && s.fullscreen_overflow == 'scroll') + s.fullscreen_overflow = 'auto'; + + // Fixes an IE bug where the scrollbars doesn't reappear + if (tinymce.isIE && (s.fullscreen_html_overflow == 'visible' || s.fullscreen_html_overflow == 'scroll')) + s.fullscreen_html_overflow = 'auto'; + + if (s.fullscreen_overflow == '0px') + s.fullscreen_overflow = ''; + + DOM.setStyle(DOM.doc.body, 'overflow', 'hidden'); + de.style.overflow = 'hidden'; //Fix for IE6/7 + vp = DOM.getViewPort(); + DOM.win.scrollTo(0, 0); + + if (tinymce.isIE) + vp.h -= 1; + + // Use fixed position if it exists + if (tinymce.isIE6) + posCss = 'absolute;top:' + vp.y; + else + posCss = 'fixed;top:0'; + + n = DOM.add(DOM.doc.body, 'div', { + id : 'mce_fullscreen_container', + style : 'position:' + posCss + ';left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'}); + DOM.add(n, 'div', {id : 'mce_fullscreen'}); + + tinymce.each(ed.settings, function(v, n) { + s[n] = v; + }); + + s.id = 'mce_fullscreen'; + s.width = n.clientWidth; + s.height = n.clientHeight - 15; + s.fullscreen_is_enabled = true; + s.fullscreen_editor_id = ed.id; + s.theme_advanced_resizing = false; + s.save_onsavecallback = function() { + ed.setContent(tinyMCE.get(s.id).getContent({format : 'raw'}), {format : 'raw'}); + ed.execCommand('mceSave'); + }; + + tinymce.each(ed.getParam('fullscreen_settings'), function(v, k) { + s[k] = v; + }); + + if (s.theme_advanced_toolbar_location === 'external') + s.theme_advanced_toolbar_location = 'top'; + + t.fullscreenEditor = new tinymce.Editor('mce_fullscreen', s); + t.fullscreenEditor.onInit.add(function() { + t.fullscreenEditor.setContent(ed.getContent()); + t.fullscreenEditor.focus(); + }); + + t.fullscreenEditor.render(); + + t.fullscreenElement = new tinymce.dom.Element('mce_fullscreen_container'); + t.fullscreenElement.update(); + //document.body.overflow = 'hidden'; + + t.resizeFunc = tinymce.dom.Event.add(DOM.win, 'resize', function() { + var vp = tinymce.DOM.getViewPort(), fed = t.fullscreenEditor, outerSize, innerSize; + + // Get outer/inner size to get a delta size that can be used to calc the new iframe size + outerSize = fed.dom.getSize(fed.getContainer().firstChild); + innerSize = fed.dom.getSize(fed.getContainer().getElementsByTagName('iframe')[0]); + + fed.theme.resizeTo(vp.w - outerSize.w + innerSize.w, vp.h - outerSize.h + innerSize.h); + }); + } + }); + + // Register buttons + ed.addButton('fullscreen', {title : 'fullscreen.desc', cmd : 'mceFullScreen'}); + + ed.onNodeChange.add(function(ed, cm) { + cm.setActive('fullscreen', ed.getParam('fullscreen_is_enabled')); + }); + }, + + getInfo : function() { + return { + longname : 'Fullscreen', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('fullscreen', tinymce.plugins.FullScreenPlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm new file mode 100644 index 0000000..4c4f27e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm @@ -0,0 +1,109 @@ + + + + + + + + +
                    + +
                    + + + + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js new file mode 100644 index 0000000..e9cba10 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.IESpell",{init:function(a,b){var c=this,d;if(!tinymce.isIE){return}c.editor=a;a.addCommand("mceIESpell",function(){try{d=new ActiveXObject("ieSpell.ieSpellExtension");d.CheckDocumentNode(a.getDoc().documentElement)}catch(f){if(f.number==-2146827859){a.windowManager.confirm(a.getLang("iespell.download"),function(e){if(e){window.open("http://www.iespell.com/download.php","ieSpellDownload","")}})}else{a.windowManager.alert("Error Loading ieSpell: Exception "+f.number)}}});a.addButton("iespell",{title:"iespell.iespell_desc",cmd:"mceIESpell"})},getInfo:function(){return{longname:"IESpell (IE Only)",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("iespell",tinymce.plugins.IESpell)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js new file mode 100644 index 0000000..1b2bb98 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js @@ -0,0 +1,54 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.IESpell', { + init : function(ed, url) { + var t = this, sp; + + if (!tinymce.isIE) + return; + + t.editor = ed; + + // Register commands + ed.addCommand('mceIESpell', function() { + try { + sp = new ActiveXObject("ieSpell.ieSpellExtension"); + sp.CheckDocumentNode(ed.getDoc().documentElement); + } catch (e) { + if (e.number == -2146827859) { + ed.windowManager.confirm(ed.getLang("iespell.download"), function(s) { + if (s) + window.open('http://www.iespell.com/download.php', 'ieSpellDownload', ''); + }); + } else + ed.windowManager.alert("Error Loading ieSpell: Exception " + e.number); + } + }); + + // Register buttons + ed.addButton('iespell', {title : 'iespell.iespell_desc', cmd : 'mceIESpell'}); + }, + + getInfo : function() { + return { + longname : 'IESpell (IE Only)', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('iespell', tinymce.plugins.IESpell); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js new file mode 100644 index 0000000..ef64817 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js @@ -0,0 +1 @@ +(function(){var d=tinymce.DOM,b=tinymce.dom.Element,a=tinymce.dom.Event,e=tinymce.each,c=tinymce.is;tinymce.create("tinymce.plugins.InlinePopups",{init:function(f,g){f.onBeforeRenderUI.add(function(){f.windowManager=new tinymce.InlineWindowManager(f);d.loadCSS(g+"/skins/"+(f.settings.inlinepopups_skin||"clearlooks2")+"/window.css")})},getInfo:function(){return{longname:"InlinePopups",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.create("tinymce.InlineWindowManager:tinymce.WindowManager",{InlineWindowManager:function(f){var g=this;g.parent(f);g.zIndex=300000;g.count=0;g.windows={}},open:function(s,j){var z=this,i,k="",r=z.editor,g=0,v=0,h,m,o,q,l,x,y,n;s=s||{};j=j||{};if(!s.inline){return z.parent(s,j)}n=z._frontWindow();if(n&&d.get(n.id+"_ifr")){n.focussedElement=d.get(n.id+"_ifr").contentWindow.document.activeElement}if(!s.type){z.bookmark=r.selection.getBookmark(1)}i=d.uniqueId();h=d.getViewPort();s.width=parseInt(s.width||320);s.height=parseInt(s.height||240)+(tinymce.isIE?8:0);s.min_width=parseInt(s.min_width||150);s.min_height=parseInt(s.min_height||100);s.max_width=parseInt(s.max_width||2000);s.max_height=parseInt(s.max_height||2000);s.left=s.left||Math.round(Math.max(h.x,h.x+(h.w/2)-(s.width/2)));s.top=s.top||Math.round(Math.max(h.y,h.y+(h.h/2)-(s.height/2)));s.movable=s.resizable=true;j.mce_width=s.width;j.mce_height=s.height;j.mce_inline=true;j.mce_window_id=i;j.mce_auto_focus=s.auto_focus;z.features=s;z.params=j;z.onOpen.dispatch(z,s,j);if(s.type){k+=" mceModal";if(s.type){k+=" mce"+s.type.substring(0,1).toUpperCase()+s.type.substring(1)}s.resizable=false}if(s.statusbar){k+=" mceStatusbar"}if(s.resizable){k+=" mceResizable"}if(s.minimizable){k+=" mceMinimizable"}if(s.maximizable){k+=" mceMaximizable"}if(s.movable){k+=" mceMovable"}z._addAll(d.doc.body,["div",{id:i,role:"dialog","aria-labelledby":s.type?i+"_content":i+"_title","class":(r.settings.inlinepopups_skin||"clearlooks2")+(tinymce.isIE&&window.getSelection?" ie9":""),style:"width:100px;height:100px"},["div",{id:i+"_wrapper","class":"mceWrapper"+k},["div",{id:i+"_top","class":"mceTop"},["div",{"class":"mceLeft"}],["div",{"class":"mceCenter"}],["div",{"class":"mceRight"}],["span",{id:i+"_title"},s.title||""]],["div",{id:i+"_middle","class":"mceMiddle"},["div",{id:i+"_left","class":"mceLeft",tabindex:"0"}],["span",{id:i+"_content"}],["div",{id:i+"_right","class":"mceRight",tabindex:"0"}]],["div",{id:i+"_bottom","class":"mceBottom"},["div",{"class":"mceLeft"}],["div",{"class":"mceCenter"}],["div",{"class":"mceRight"}],["span",{id:i+"_status"},"Content"]],["a",{"class":"mceMove",tabindex:"-1",href:"javascript:;"}],["a",{"class":"mceMin",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceMax",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceMed",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceClose",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{id:i+"_resize_n","class":"mceResize mceResizeN",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_s","class":"mceResize mceResizeS",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_w","class":"mceResize mceResizeW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_e","class":"mceResize mceResizeE",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_nw","class":"mceResize mceResizeNW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_ne","class":"mceResize mceResizeNE",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_sw","class":"mceResize mceResizeSW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_se","class":"mceResize mceResizeSE",tabindex:"-1",href:"javascript:;"}]]]);d.setStyles(i,{top:-10000,left:-10000});if(tinymce.isGecko){d.setStyle(i,"overflow","auto")}if(!s.type){g+=d.get(i+"_left").clientWidth;g+=d.get(i+"_right").clientWidth;v+=d.get(i+"_top").clientHeight;v+=d.get(i+"_bottom").clientHeight}d.setStyles(i,{top:s.top,left:s.left,width:s.width+g,height:s.height+v});y=s.url||s.file;if(y){if(tinymce.relaxedDomain){y+=(y.indexOf("?")==-1?"?":"&")+"mce_rdomain="+tinymce.relaxedDomain}y=tinymce._addVer(y)}if(!s.type){d.add(i+"_content","iframe",{id:i+"_ifr",src:'javascript:""',frameBorder:0,style:"border:0;width:10px;height:10px"});d.setStyles(i+"_ifr",{width:s.width,height:s.height});d.setAttrib(i+"_ifr","src",y)}else{d.add(i+"_wrapper","a",{id:i+"_ok","class":"mceButton mceOk",href:"javascript:;",onmousedown:"return false;"},"Ok");if(s.type=="confirm"){d.add(i+"_wrapper","a",{"class":"mceButton mceCancel",href:"javascript:;",onmousedown:"return false;"},"Cancel")}d.add(i+"_middle","div",{"class":"mceIcon"});d.setHTML(i+"_content",s.content.replace("\n","
                    "));a.add(i,"keyup",function(f){var p=27;if(f.keyCode===p){s.button_func(false);return a.cancel(f)}});a.add(i,"keydown",function(f){var t,p=9;if(f.keyCode===p){t=d.select("a.mceCancel",i+"_wrapper")[0];if(t&&t!==f.target){t.focus()}else{d.get(i+"_ok").focus()}return a.cancel(f)}})}o=a.add(i,"mousedown",function(t){var u=t.target,f,p;f=z.windows[i];z.focus(i);if(u.nodeName=="A"||u.nodeName=="a"){if(u.className=="mceMax"){f.oldPos=f.element.getXY();f.oldSize=f.element.getSize();p=d.getViewPort();p.w-=2;p.h-=2;f.element.moveTo(p.x,p.y);f.element.resizeTo(p.w,p.h);d.setStyles(i+"_ifr",{width:p.w-f.deltaWidth,height:p.h-f.deltaHeight});d.addClass(i+"_wrapper","mceMaximized")}else{if(u.className=="mceMed"){f.element.moveTo(f.oldPos.x,f.oldPos.y);f.element.resizeTo(f.oldSize.w,f.oldSize.h);f.iframeElement.resizeTo(f.oldSize.w-f.deltaWidth,f.oldSize.h-f.deltaHeight);d.removeClass(i+"_wrapper","mceMaximized")}else{if(u.className=="mceMove"){return z._startDrag(i,t,u.className)}else{if(d.hasClass(u,"mceResize")){return z._startDrag(i,t,u.className.substring(13))}}}}}});q=a.add(i,"click",function(f){var p=f.target;z.focus(i);if(p.nodeName=="A"||p.nodeName=="a"){switch(p.className){case"mceClose":z.close(null,i);return a.cancel(f);case"mceButton mceOk":case"mceButton mceCancel":s.button_func(p.className=="mceButton mceOk");return a.cancel(f)}}});a.add([i+"_left",i+"_right"],"focus",function(p){var t=d.get(i+"_ifr");if(t){var f=t.contentWindow.document.body;var u=d.select(":input:enabled,*[tabindex=0]",f);if(p.target.id===(i+"_left")){u[u.length-1].focus()}else{u[0].focus()}}else{d.get(i+"_ok").focus()}});x=z.windows[i]={id:i,mousedown_func:o,click_func:q,element:new b(i,{blocker:1,container:r.getContainer()}),iframeElement:new b(i+"_ifr"),features:s,deltaWidth:g,deltaHeight:v};x.iframeElement.on("focus",function(){z.focus(i)});if(z.count==0&&z.editor.getParam("dialog_type","modal")=="modal"){d.add(d.doc.body,"div",{id:"mceModalBlocker","class":(z.editor.settings.inlinepopups_skin||"clearlooks2")+"_modalBlocker",style:{zIndex:z.zIndex-1}});d.show("mceModalBlocker");d.setAttrib(d.doc.body,"aria-hidden","true")}else{d.setStyle("mceModalBlocker","z-index",z.zIndex-1)}if(tinymce.isIE6||/Firefox\/2\./.test(navigator.userAgent)||(tinymce.isIE&&!d.boxModel)){d.setStyles("mceModalBlocker",{position:"absolute",left:h.x,top:h.y,width:h.w-2,height:h.h-2})}d.setAttrib(i,"aria-hidden","false");z.focus(i);z._fixIELayout(i,1);if(d.get(i+"_ok")){d.get(i+"_ok").focus()}z.count++;return x},focus:function(h){var g=this,f;if(f=g.windows[h]){f.zIndex=this.zIndex++;f.element.setStyle("zIndex",f.zIndex);f.element.update();h=h+"_wrapper";d.removeClass(g.lastId,"mceFocus");d.addClass(h,"mceFocus");g.lastId=h;if(f.focussedElement){f.focussedElement.focus()}else{if(d.get(h+"_ok")){d.get(f.id+"_ok").focus()}else{if(d.get(f.id+"_ifr")){d.get(f.id+"_ifr").focus()}}}}},_addAll:function(k,h){var g,l,f=this,j=tinymce.DOM;if(c(h,"string")){k.appendChild(j.doc.createTextNode(h))}else{if(h.length){k=k.appendChild(j.create(h[0],h[1]));for(g=2;gf){g=h;f=h.zIndex}});return g},setTitle:function(f,g){var h;f=this._findId(f);if(h=d.get(f+"_title")){h.innerHTML=d.encode(g)}},alert:function(g,f,j){var i=this,h;h=i.open({title:i,type:"alert",button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},confirm:function(g,f,j){var i=this,h;h=i.open({title:i,type:"confirm",button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},_findId:function(f){var g=this;if(typeof(f)=="string"){return f}e(g.windows,function(h){var i=d.get(h.id+"_ifr");if(i&&f==i.contentWindow){f=h.id;return false}});return f},_fixIELayout:function(i,h){var f,g;if(!tinymce.isIE6){return}e(["n","s","w","e","nw","ne","sw","se"],function(j){var k=d.get(i+"_resize_"+j);d.setStyles(k,{width:h?k.clientWidth:"",height:h?k.clientHeight:"",cursor:d.getStyle(k,"cursor",1)});d.setStyle(i+"_bottom","bottom","-1px");k=0});if(f=this.windows[i]){f.element.hide();f.element.show();e(d.select("div,a",i),function(k,j){if(k.currentStyle.backgroundImage!="none"){g=new Image();g.src=k.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/,"$1")}});d.get(i).style.filter=""}}});tinymce.PluginManager.add("inlinepopups",tinymce.plugins.InlinePopups)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js new file mode 100644 index 0000000..ac6fb1c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js @@ -0,0 +1,696 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var DOM = tinymce.DOM, Element = tinymce.dom.Element, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is; + + tinymce.create('tinymce.plugins.InlinePopups', { + init : function(ed, url) { + // Replace window manager + ed.onBeforeRenderUI.add(function() { + ed.windowManager = new tinymce.InlineWindowManager(ed); + DOM.loadCSS(url + '/skins/' + (ed.settings.inlinepopups_skin || 'clearlooks2') + "/window.css"); + }); + }, + + getInfo : function() { + return { + longname : 'InlinePopups', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + tinymce.create('tinymce.InlineWindowManager:tinymce.WindowManager', { + InlineWindowManager : function(ed) { + var t = this; + + t.parent(ed); + t.zIndex = 300000; + t.count = 0; + t.windows = {}; + }, + + open : function(f, p) { + var t = this, id, opt = '', ed = t.editor, dw = 0, dh = 0, vp, po, mdf, clf, we, w, u, parentWindow; + + f = f || {}; + p = p || {}; + + // Run native windows + if (!f.inline) + return t.parent(f, p); + + parentWindow = t._frontWindow(); + if (parentWindow && DOM.get(parentWindow.id + '_ifr')) { + parentWindow.focussedElement = DOM.get(parentWindow.id + '_ifr').contentWindow.document.activeElement; + } + + // Only store selection if the type is a normal window + if (!f.type) + t.bookmark = ed.selection.getBookmark(1); + + id = DOM.uniqueId(); + vp = DOM.getViewPort(); + f.width = parseInt(f.width || 320); + f.height = parseInt(f.height || 240) + (tinymce.isIE ? 8 : 0); + f.min_width = parseInt(f.min_width || 150); + f.min_height = parseInt(f.min_height || 100); + f.max_width = parseInt(f.max_width || 2000); + f.max_height = parseInt(f.max_height || 2000); + f.left = f.left || Math.round(Math.max(vp.x, vp.x + (vp.w / 2.0) - (f.width / 2.0))); + f.top = f.top || Math.round(Math.max(vp.y, vp.y + (vp.h / 2.0) - (f.height / 2.0))); + f.movable = f.resizable = true; + p.mce_width = f.width; + p.mce_height = f.height; + p.mce_inline = true; + p.mce_window_id = id; + p.mce_auto_focus = f.auto_focus; + + // Transpose +// po = DOM.getPos(ed.getContainer()); +// f.left -= po.x; +// f.top -= po.y; + + t.features = f; + t.params = p; + t.onOpen.dispatch(t, f, p); + + if (f.type) { + opt += ' mceModal'; + + if (f.type) + opt += ' mce' + f.type.substring(0, 1).toUpperCase() + f.type.substring(1); + + f.resizable = false; + } + + if (f.statusbar) + opt += ' mceStatusbar'; + + if (f.resizable) + opt += ' mceResizable'; + + if (f.minimizable) + opt += ' mceMinimizable'; + + if (f.maximizable) + opt += ' mceMaximizable'; + + if (f.movable) + opt += ' mceMovable'; + + // Create DOM objects + t._addAll(DOM.doc.body, + ['div', {id : id, role : 'dialog', 'aria-labelledby': f.type ? id + '_content' : id + '_title', 'class' : (ed.settings.inlinepopups_skin || 'clearlooks2') + (tinymce.isIE && window.getSelection ? ' ie9' : ''), style : 'width:100px;height:100px'}, + ['div', {id : id + '_wrapper', 'class' : 'mceWrapper' + opt}, + ['div', {id : id + '_top', 'class' : 'mceTop'}, + ['div', {'class' : 'mceLeft'}], + ['div', {'class' : 'mceCenter'}], + ['div', {'class' : 'mceRight'}], + ['span', {id : id + '_title'}, f.title || ''] + ], + + ['div', {id : id + '_middle', 'class' : 'mceMiddle'}, + ['div', {id : id + '_left', 'class' : 'mceLeft', tabindex : '0'}], + ['span', {id : id + '_content'}], + ['div', {id : id + '_right', 'class' : 'mceRight', tabindex : '0'}] + ], + + ['div', {id : id + '_bottom', 'class' : 'mceBottom'}, + ['div', {'class' : 'mceLeft'}], + ['div', {'class' : 'mceCenter'}], + ['div', {'class' : 'mceRight'}], + ['span', {id : id + '_status'}, 'Content'] + ], + + ['a', {'class' : 'mceMove', tabindex : '-1', href : 'javascript:;'}], + ['a', {'class' : 'mceMin', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}], + ['a', {'class' : 'mceMax', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}], + ['a', {'class' : 'mceMed', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}], + ['a', {'class' : 'mceClose', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}], + ['a', {id : id + '_resize_n', 'class' : 'mceResize mceResizeN', tabindex : '-1', href : 'javascript:;'}], + ['a', {id : id + '_resize_s', 'class' : 'mceResize mceResizeS', tabindex : '-1', href : 'javascript:;'}], + ['a', {id : id + '_resize_w', 'class' : 'mceResize mceResizeW', tabindex : '-1', href : 'javascript:;'}], + ['a', {id : id + '_resize_e', 'class' : 'mceResize mceResizeE', tabindex : '-1', href : 'javascript:;'}], + ['a', {id : id + '_resize_nw', 'class' : 'mceResize mceResizeNW', tabindex : '-1', href : 'javascript:;'}], + ['a', {id : id + '_resize_ne', 'class' : 'mceResize mceResizeNE', tabindex : '-1', href : 'javascript:;'}], + ['a', {id : id + '_resize_sw', 'class' : 'mceResize mceResizeSW', tabindex : '-1', href : 'javascript:;'}], + ['a', {id : id + '_resize_se', 'class' : 'mceResize mceResizeSE', tabindex : '-1', href : 'javascript:;'}] + ] + ] + ); + + DOM.setStyles(id, {top : -10000, left : -10000}); + + // Fix gecko rendering bug, where the editors iframe messed with window contents + if (tinymce.isGecko) + DOM.setStyle(id, 'overflow', 'auto'); + + // Measure borders + if (!f.type) { + dw += DOM.get(id + '_left').clientWidth; + dw += DOM.get(id + '_right').clientWidth; + dh += DOM.get(id + '_top').clientHeight; + dh += DOM.get(id + '_bottom').clientHeight; + } + + // Resize window + DOM.setStyles(id, {top : f.top, left : f.left, width : f.width + dw, height : f.height + dh}); + + u = f.url || f.file; + if (u) { + if (tinymce.relaxedDomain) + u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain; + + u = tinymce._addVer(u); + } + + if (!f.type) { + DOM.add(id + '_content', 'iframe', {id : id + '_ifr', src : 'javascript:""', frameBorder : 0, style : 'border:0;width:10px;height:10px'}); + DOM.setStyles(id + '_ifr', {width : f.width, height : f.height}); + DOM.setAttrib(id + '_ifr', 'src', u); + } else { + DOM.add(id + '_wrapper', 'a', {id : id + '_ok', 'class' : 'mceButton mceOk', href : 'javascript:;', onmousedown : 'return false;'}, 'Ok'); + + if (f.type == 'confirm') + DOM.add(id + '_wrapper', 'a', {'class' : 'mceButton mceCancel', href : 'javascript:;', onmousedown : 'return false;'}, 'Cancel'); + + DOM.add(id + '_middle', 'div', {'class' : 'mceIcon'}); + DOM.setHTML(id + '_content', f.content.replace('\n', '
                    ')); + + Event.add(id, 'keyup', function(evt) { + var VK_ESCAPE = 27; + if (evt.keyCode === VK_ESCAPE) { + f.button_func(false); + return Event.cancel(evt); + } + }); + + Event.add(id, 'keydown', function(evt) { + var cancelButton, VK_TAB = 9; + if (evt.keyCode === VK_TAB) { + cancelButton = DOM.select('a.mceCancel', id + '_wrapper')[0]; + if (cancelButton && cancelButton !== evt.target) { + cancelButton.focus(); + } else { + DOM.get(id + '_ok').focus(); + } + return Event.cancel(evt); + } + }); + } + + // Register events + mdf = Event.add(id, 'mousedown', function(e) { + var n = e.target, w, vp; + + w = t.windows[id]; + t.focus(id); + + if (n.nodeName == 'A' || n.nodeName == 'a') { + if (n.className == 'mceMax') { + w.oldPos = w.element.getXY(); + w.oldSize = w.element.getSize(); + + vp = DOM.getViewPort(); + + // Reduce viewport size to avoid scrollbars + vp.w -= 2; + vp.h -= 2; + + w.element.moveTo(vp.x, vp.y); + w.element.resizeTo(vp.w, vp.h); + DOM.setStyles(id + '_ifr', {width : vp.w - w.deltaWidth, height : vp.h - w.deltaHeight}); + DOM.addClass(id + '_wrapper', 'mceMaximized'); + } else if (n.className == 'mceMed') { + // Reset to old size + w.element.moveTo(w.oldPos.x, w.oldPos.y); + w.element.resizeTo(w.oldSize.w, w.oldSize.h); + w.iframeElement.resizeTo(w.oldSize.w - w.deltaWidth, w.oldSize.h - w.deltaHeight); + + DOM.removeClass(id + '_wrapper', 'mceMaximized'); + } else if (n.className == 'mceMove') + return t._startDrag(id, e, n.className); + else if (DOM.hasClass(n, 'mceResize')) + return t._startDrag(id, e, n.className.substring(13)); + } + }); + + clf = Event.add(id, 'click', function(e) { + var n = e.target; + + t.focus(id); + + if (n.nodeName == 'A' || n.nodeName == 'a') { + switch (n.className) { + case 'mceClose': + t.close(null, id); + return Event.cancel(e); + + case 'mceButton mceOk': + case 'mceButton mceCancel': + f.button_func(n.className == 'mceButton mceOk'); + return Event.cancel(e); + } + } + }); + + // Make sure the tab order loops within the dialog. + Event.add([id + '_left', id + '_right'], 'focus', function(evt) { + var iframe = DOM.get(id + '_ifr'); + if (iframe) { + var body = iframe.contentWindow.document.body; + var focusable = DOM.select(':input:enabled,*[tabindex=0]', body); + if (evt.target.id === (id + '_left')) { + focusable[focusable.length - 1].focus(); + } else { + focusable[0].focus(); + } + } else { + DOM.get(id + '_ok').focus(); + } + }); + + // Add window + w = t.windows[id] = { + id : id, + mousedown_func : mdf, + click_func : clf, + element : new Element(id, {blocker : 1, container : ed.getContainer()}), + iframeElement : new Element(id + '_ifr'), + features : f, + deltaWidth : dw, + deltaHeight : dh + }; + + w.iframeElement.on('focus', function() { + t.focus(id); + }); + + // Setup blocker + if (t.count == 0 && t.editor.getParam('dialog_type', 'modal') == 'modal') { + DOM.add(DOM.doc.body, 'div', { + id : 'mceModalBlocker', + 'class' : (t.editor.settings.inlinepopups_skin || 'clearlooks2') + '_modalBlocker', + style : {zIndex : t.zIndex - 1} + }); + + DOM.show('mceModalBlocker'); // Reduces flicker in IE + DOM.setAttrib(DOM.doc.body, 'aria-hidden', 'true'); + } else + DOM.setStyle('mceModalBlocker', 'z-index', t.zIndex - 1); + + if (tinymce.isIE6 || /Firefox\/2\./.test(navigator.userAgent) || (tinymce.isIE && !DOM.boxModel)) + DOM.setStyles('mceModalBlocker', {position : 'absolute', left : vp.x, top : vp.y, width : vp.w - 2, height : vp.h - 2}); + + DOM.setAttrib(id, 'aria-hidden', 'false'); + t.focus(id); + t._fixIELayout(id, 1); + + // Focus ok button + if (DOM.get(id + '_ok')) + DOM.get(id + '_ok').focus(); + t.count++; + + return w; + }, + + focus : function(id) { + var t = this, w; + + if (w = t.windows[id]) { + w.zIndex = this.zIndex++; + w.element.setStyle('zIndex', w.zIndex); + w.element.update(); + + id = id + '_wrapper'; + DOM.removeClass(t.lastId, 'mceFocus'); + DOM.addClass(id, 'mceFocus'); + t.lastId = id; + + if (w.focussedElement) { + w.focussedElement.focus(); + } else if (DOM.get(id + '_ok')) { + DOM.get(w.id + '_ok').focus(); + } else if (DOM.get(w.id + '_ifr')) { + DOM.get(w.id + '_ifr').focus(); + } + } + }, + + _addAll : function(te, ne) { + var i, n, t = this, dom = tinymce.DOM; + + if (is(ne, 'string')) + te.appendChild(dom.doc.createTextNode(ne)); + else if (ne.length) { + te = te.appendChild(dom.create(ne[0], ne[1])); + + for (i=2; i ix) { + fw = w; + ix = w.zIndex; + } + }); + return fw; + }, + + setTitle : function(w, ti) { + var e; + + w = this._findId(w); + + if (e = DOM.get(w + '_title')) + e.innerHTML = DOM.encode(ti); + }, + + alert : function(txt, cb, s) { + var t = this, w; + + w = t.open({ + title : t, + type : 'alert', + button_func : function(s) { + if (cb) + cb.call(s || t, s); + + t.close(null, w.id); + }, + content : DOM.encode(t.editor.getLang(txt, txt)), + inline : 1, + width : 400, + height : 130 + }); + }, + + confirm : function(txt, cb, s) { + var t = this, w; + + w = t.open({ + title : t, + type : 'confirm', + button_func : function(s) { + if (cb) + cb.call(s || t, s); + + t.close(null, w.id); + }, + content : DOM.encode(t.editor.getLang(txt, txt)), + inline : 1, + width : 400, + height : 130 + }); + }, + + // Internal functions + + _findId : function(w) { + var t = this; + + if (typeof(w) == 'string') + return w; + + each(t.windows, function(wo) { + var ifr = DOM.get(wo.id + '_ifr'); + + if (ifr && w == ifr.contentWindow) { + w = wo.id; + return false; + } + }); + + return w; + }, + + _fixIELayout : function(id, s) { + var w, img; + + if (!tinymce.isIE6) + return; + + // Fixes the bug where hover flickers and does odd things in IE6 + each(['n','s','w','e','nw','ne','sw','se'], function(v) { + var e = DOM.get(id + '_resize_' + v); + + DOM.setStyles(e, { + width : s ? e.clientWidth : '', + height : s ? e.clientHeight : '', + cursor : DOM.getStyle(e, 'cursor', 1) + }); + + DOM.setStyle(id + "_bottom", 'bottom', '-1px'); + + e = 0; + }); + + // Fixes graphics glitch + if (w = this.windows[id]) { + // Fixes rendering bug after resize + w.element.hide(); + w.element.show(); + + // Forced a repaint of the window + //DOM.get(id).style.filter = ''; + + // IE has a bug where images used in CSS won't get loaded + // sometimes when the cache in the browser is disabled + // This fix tries to solve it by loading the images using the image object + each(DOM.select('div,a', id), function(e, i) { + if (e.currentStyle.backgroundImage != 'none') { + img = new Image(); + img.src = e.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/, '$1'); + } + }); + + DOM.get(id).style.filter = ''; + } + } + }); + + // Register plugin + tinymce.PluginManager.add('inlinepopups', tinymce.plugins.InlinePopups); +})(); + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif new file mode 100644 index 0000000..94abd08 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif new file mode 100644 index 0000000..e671094 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif new file mode 100644 index 0000000..6baf64a Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif new file mode 100644 index 0000000..497307a Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif new file mode 100644 index 0000000..c894b2e Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif new file mode 100644 index 0000000..c2a2ad4 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif new file mode 100644 index 0000000..43a735f Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css new file mode 100644 index 0000000..a50d4fc --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css @@ -0,0 +1,90 @@ +/* Clearlooks 2 */ + +/* Reset */ +.clearlooks2, .clearlooks2 div, .clearlooks2 span, .clearlooks2 a {vertical-align:baseline; text-align:left; position:absolute; border:0; padding:0; margin:0; background:transparent; font-family:Arial,Verdana; font-size:11px; color:#000; text-decoration:none; font-weight:normal; width:auto; height:auto; overflow:hidden; display:block} + +/* General */ +.clearlooks2 {position:absolute; direction:ltr} +.clearlooks2 .mceWrapper {position:static} +.mceEventBlocker {position:fixed; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%} +.clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50)} +.clearlooks2_modalBlocker {position:fixed; left:0; top:0; width:100%; height:100%; background:#FFF; opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60); display:none} + +/* Top */ +.clearlooks2 .mceTop, .clearlooks2 .mceTop div {top:0; width:100%; height:23px} +.clearlooks2 .mceTop .mceLeft {width:6px; background:url(img/corners.gif)} +.clearlooks2 .mceTop .mceCenter {right:6px; width:100%; height:23px; background:url(img/horizontal.gif) 12px 0; clip:rect(auto auto auto 12px)} +.clearlooks2 .mceTop .mceRight {right:0; width:6px; height:23px; background:url(img/corners.gif) -12px 0} +.clearlooks2 .mceTop span {width:100%; text-align:center; vertical-align:middle; line-height:23px; font-weight:bold} +.clearlooks2 .mceFocus .mceTop .mceLeft {background:url(img/corners.gif) -6px 0} +.clearlooks2 .mceFocus .mceTop .mceCenter {background:url(img/horizontal.gif) 0 -23px} +.clearlooks2 .mceFocus .mceTop .mceRight {background:url(img/corners.gif) -18px 0} +.clearlooks2 .mceFocus .mceTop span {color:#FFF} + +/* Middle */ +.clearlooks2 .mceMiddle, .clearlooks2 .mceMiddle div {top:0} +.clearlooks2 .mceMiddle {width:100%; height:100%; clip:rect(23px auto auto auto)} +.clearlooks2 .mceMiddle .mceLeft {left:0; width:5px; height:100%; background:url(img/vertical.gif) -5px 0} +.clearlooks2 .mceMiddle span {top:23px; left:5px; width:100%; height:100%; background:#FFF} +.clearlooks2 .mceMiddle .mceRight {right:0; width:5px; height:100%; background:url(img/vertical.gif)} + +/* Bottom */ +.clearlooks2 .mceBottom, .clearlooks2 .mceBottom div {height:6px} +.clearlooks2 .mceBottom {left:0; bottom:0; width:100%} +.clearlooks2 .mceBottom div {top:0} +.clearlooks2 .mceBottom .mceLeft {left:0; width:5px; background:url(img/corners.gif) -34px -6px} +.clearlooks2 .mceBottom .mceCenter {left:5px; width:100%; background:url(img/horizontal.gif) 0 -46px} +.clearlooks2 .mceBottom .mceRight {right:0; width:5px; background: url(img/corners.gif) -34px 0} +.clearlooks2 .mceBottom span {display:none} +.clearlooks2 .mceStatusbar .mceBottom, .clearlooks2 .mceStatusbar .mceBottom div {height:23px} +.clearlooks2 .mceStatusbar .mceBottom .mceLeft {background:url(img/corners.gif) -29px 0} +.clearlooks2 .mceStatusbar .mceBottom .mceCenter {background:url(img/horizontal.gif) 0 -52px} +.clearlooks2 .mceStatusbar .mceBottom .mceRight {background:url(img/corners.gif) -24px 0} +.clearlooks2 .mceStatusbar .mceBottom span {display:block; left:7px; font-family:Arial, Verdana; font-size:11px; line-height:23px} + +/* Actions */ +.clearlooks2 a {width:29px; height:16px; top:3px;} +.clearlooks2 .mceClose {right:6px; background:url(img/buttons.gif) -87px 0} +.clearlooks2 .mceMin {display:none; right:68px; background:url(img/buttons.gif) 0 0} +.clearlooks2 .mceMed {display:none; right:37px; background:url(img/buttons.gif) -29px 0} +.clearlooks2 .mceMax {display:none; right:37px; background:url(img/buttons.gif) -58px 0} +.clearlooks2 .mceMove {display:none;width:100%;cursor:move;background:url(img/corners.gif) no-repeat -100px -100px} +.clearlooks2 .mceMovable .mceMove {display:block} +.clearlooks2 .mceFocus .mceClose {right:6px; background:url(img/buttons.gif) -87px -16px} +.clearlooks2 .mceFocus .mceMin {right:68px; background:url(img/buttons.gif) 0 -16px} +.clearlooks2 .mceFocus .mceMed {right:37px; background:url(img/buttons.gif) -29px -16px} +.clearlooks2 .mceFocus .mceMax {right:37px; background:url(img/buttons.gif) -58px -16px} +.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px} +.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px} +.clearlooks2 .mceFocus .mceMin:hover {right:68px; background:url(img/buttons.gif) 0 -32px} +.clearlooks2 .mceFocus .mceMed:hover {right:37px; background:url(img/buttons.gif) -29px -32px} +.clearlooks2 .mceFocus .mceMax:hover {right:37px; background:url(img/buttons.gif) -58px -32px} + +/* Resize */ +.clearlooks2 .mceResize {top:auto; left:auto; display:none; width:5px; height:5px; background:url(img/horizontal.gif) no-repeat 0 -75px} +.clearlooks2 .mceResizable .mceResize {display:block} +.clearlooks2 .mceResizable .mceMin, .clearlooks2 .mceMax {display:none} +.clearlooks2 .mceMinimizable .mceMin {display:block} +.clearlooks2 .mceMaximizable .mceMax {display:block} +.clearlooks2 .mceMaximized .mceMed {display:block} +.clearlooks2 .mceMaximized .mceMax {display:none} +.clearlooks2 a.mceResizeN {top:0; left:0; width:100%; cursor:n-resize} +.clearlooks2 a.mceResizeNW {top:0; left:0; cursor:nw-resize} +.clearlooks2 a.mceResizeNE {top:0; right:0; cursor:ne-resize} +.clearlooks2 a.mceResizeW {top:0; left:0; height:100%; cursor:w-resize;} +.clearlooks2 a.mceResizeE {top:0; right:0; height:100%; cursor:e-resize} +.clearlooks2 a.mceResizeS {bottom:0; left:0; width:100%; cursor:s-resize} +.clearlooks2 a.mceResizeSW {bottom:0; left:0; cursor:sw-resize} +.clearlooks2 a.mceResizeSE {bottom:0; right:0; cursor:se-resize} + +/* Alert/Confirm */ +.clearlooks2 .mceButton {font-weight:bold; bottom:10px; width:80px; height:30px; background:url(img/button.gif); line-height:30px; vertical-align:middle; text-align:center; outline:0} +.clearlooks2 .mceMiddle .mceIcon {left:15px; top:35px; width:32px; height:32px} +.clearlooks2 .mceAlert .mceMiddle span, .clearlooks2 .mceConfirm .mceMiddle span {background:transparent;left:60px; top:35px; width:320px; height:50px; font-weight:bold; overflow:auto; white-space:normal} +.clearlooks2 a:hover {font-weight:bold;} +.clearlooks2 .mceAlert .mceMiddle, .clearlooks2 .mceConfirm .mceMiddle {background:#D6D7D5} +.clearlooks2 .mceAlert .mceOk {left:50%; top:auto; margin-left: -40px} +.clearlooks2 .mceAlert .mceIcon {background:url(img/alert.gif)} +.clearlooks2 .mceConfirm .mceOk {left:50%; top:auto; margin-left: -90px} +.clearlooks2 .mceConfirm .mceCancel {left:50%; top:auto} +.clearlooks2 .mceConfirm .mceIcon {background:url(img/confirm.gif)} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm new file mode 100644 index 0000000..f9ec642 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm @@ -0,0 +1,387 @@ + + + +Template for dialogs + + + + +
                    +
                    +
                    +
                    +
                    +
                    +
                    + Blured +
                    + +
                    +
                    + Content +
                    +
                    + +
                    +
                    +
                    +
                    + Statusbar text. +
                    + + + + + + + + + + + + + + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    +
                    + Focused +
                    + +
                    +
                    + Content +
                    +
                    + +
                    +
                    +
                    +
                    + Statusbar text. +
                    + + + + + + + + + + + + + + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    +
                    + Statusbar +
                    + +
                    +
                    + Content +
                    +
                    + +
                    +
                    +
                    +
                    + Statusbar text. +
                    + + + + + + + + + + + + + + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    +
                    + Statusbar, Resizable +
                    + +
                    +
                    + Content +
                    +
                    + +
                    +
                    +
                    +
                    + Statusbar text. +
                    + + + + + + + + + + + + + + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    +
                    + Resizable, Maximizable +
                    + +
                    +
                    + Content +
                    +
                    + +
                    +
                    +
                    +
                    + Statusbar text. +
                    + + + + + + + + + + + + + + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    +
                    + Blurred, Maximizable, Statusbar, Resizable +
                    + +
                    +
                    + Content +
                    +
                    + +
                    +
                    +
                    +
                    + Statusbar text. +
                    + + + + + + + + + + + + + + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    +
                    + Maximized, Maximizable, Minimizable +
                    + +
                    +
                    + Content +
                    +
                    + +
                    +
                    +
                    +
                    + Statusbar text. +
                    + + + + + + + + + + + + + + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    +
                    + Blured +
                    + +
                    +
                    + Content +
                    +
                    + +
                    +
                    +
                    +
                    + Statusbar text. +
                    + + + + + + + + + + + + + + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    +
                    + Alert +
                    + +
                    +
                    + + This is a very long error message. This is a very long error message. + This is a very long error message. This is a very long error message. + This is a very long error message. This is a very long error message. + This is a very long error message. This is a very long error message. + This is a very long error message. This is a very long error message. + This is a very long error message. This is a very long error message. + +
                    +
                    +
                    + +
                    +
                    +
                    +
                    +
                    + + + Ok + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    +
                    + Confirm +
                    + +
                    +
                    + + This is a very long error message. This is a very long error message. + This is a very long error message. This is a very long error message. + This is a very long error message. This is a very long error message. + This is a very long error message. This is a very long error message. + This is a very long error message. This is a very long error message. + This is a very long error message. This is a very long error message. + +
                    +
                    +
                    + +
                    +
                    +
                    +
                    +
                    + + + Ok + Cancel + +
                    +
                    +
                    + + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js new file mode 100644 index 0000000..938ce6b --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.InsertDateTime",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceInsertDate",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_dateFormat",a.getLang("insertdatetime.date_fmt")));a.execCommand("mceInsertContent",false,d)});a.addCommand("mceInsertTime",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_timeFormat",a.getLang("insertdatetime.time_fmt")));a.execCommand("mceInsertContent",false,d)});a.addButton("insertdate",{title:"insertdatetime.insertdate_desc",cmd:"mceInsertDate"});a.addButton("inserttime",{title:"insertdatetime.inserttime_desc",cmd:"mceInsertTime"})},getInfo:function(){return{longname:"Insert date/time",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_getDateTime:function(e,a){var c=this.editor;function b(g,d){g=""+g;if(g.length-1){a[c].style.zIndex=g[j];a[j].style.zIndex=g[c]}else{if(g[c]>0){a[c].style.zIndex=g[c]-1}}}else{for(f=0;fg[c]){j=f;break}}if(j>-1){a[c].style.zIndex=g[j];a[j].style.zIndex=g[c]}else{a[c].style.zIndex=g[c]+1}}b.execCommand("mceRepaint")},_getParentLayer:function(a){return this.editor.dom.getParent(a,function(b){return b.nodeType==1&&/^(absolute|relative|static)$/i.test(b.style.position)})},_insertLayer:function(){var a=this.editor,b=a.dom.getPos(a.dom.getParent(a.selection.getNode(),"*"));a.dom.add(a.getBody(),"div",{style:{position:"absolute",left:b.x,top:(b.y>20?b.y:20),width:100,height:100},"class":"mceItemVisualAid"},a.selection.getContent()||a.getLang("layer.content"))},_toggleAbsolute:function(){var a=this.editor,b=this._getParentLayer(a.selection.getNode());if(!b){b=a.dom.getParent(a.selection.getNode(),"DIV,P,IMG")}if(b){if(b.style.position.toLowerCase()=="absolute"){a.dom.setStyles(b,{position:"",left:"",top:"",width:"",height:""});a.dom.removeClass(b,"mceItemVisualAid")}else{if(b.style.left==""){b.style.left=20+"px"}if(b.style.top==""){b.style.top=20+"px"}if(b.style.width==""){b.style.width=b.width?(b.width+"px"):"100px"}if(b.style.height==""){b.style.height=b.height?(b.height+"px"):"100px"}b.style.position="absolute";a.dom.setAttrib(b,"data-mce-style","");a.addVisual(a.getBody())}a.execCommand("mceRepaint");a.nodeChanged()}}});tinymce.PluginManager.add("layer",tinymce.plugins.Layer)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js new file mode 100644 index 0000000..a8ac5a7 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js @@ -0,0 +1,214 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.Layer', { + init : function(ed, url) { + var t = this; + + t.editor = ed; + + // Register commands + ed.addCommand('mceInsertLayer', t._insertLayer, t); + + ed.addCommand('mceMoveForward', function() { + t._move(1); + }); + + ed.addCommand('mceMoveBackward', function() { + t._move(-1); + }); + + ed.addCommand('mceMakeAbsolute', function() { + t._toggleAbsolute(); + }); + + // Register buttons + ed.addButton('moveforward', {title : 'layer.forward_desc', cmd : 'mceMoveForward'}); + ed.addButton('movebackward', {title : 'layer.backward_desc', cmd : 'mceMoveBackward'}); + ed.addButton('absolute', {title : 'layer.absolute_desc', cmd : 'mceMakeAbsolute'}); + ed.addButton('insertlayer', {title : 'layer.insertlayer_desc', cmd : 'mceInsertLayer'}); + + ed.onInit.add(function() { + if (tinymce.isIE) + ed.getDoc().execCommand('2D-Position', false, true); + }); + + ed.onNodeChange.add(t._nodeChange, t); + ed.onVisualAid.add(t._visualAid, t); + }, + + getInfo : function() { + return { + longname : 'Layer', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + // Private methods + + _nodeChange : function(ed, cm, n) { + var le, p; + + le = this._getParentLayer(n); + p = ed.dom.getParent(n, 'DIV,P,IMG'); + + if (!p) { + cm.setDisabled('absolute', 1); + cm.setDisabled('moveforward', 1); + cm.setDisabled('movebackward', 1); + } else { + cm.setDisabled('absolute', 0); + cm.setDisabled('moveforward', !le); + cm.setDisabled('movebackward', !le); + cm.setActive('absolute', le && le.style.position.toLowerCase() == "absolute"); + } + }, + + // Private methods + + _visualAid : function(ed, e, s) { + var dom = ed.dom; + + tinymce.each(dom.select('div,p', e), function(e) { + if (/^(absolute|relative|static)$/i.test(e.style.position)) { + if (s) + dom.addClass(e, 'mceItemVisualAid'); + else + dom.removeClass(e, 'mceItemVisualAid'); + } + }); + }, + + _move : function(d) { + var ed = this.editor, i, z = [], le = this._getParentLayer(ed.selection.getNode()), ci = -1, fi = -1, nl; + + nl = []; + tinymce.walk(ed.getBody(), function(n) { + if (n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position)) + nl.push(n); + }, 'childNodes'); + + // Find z-indexes + for (i=0; i -1) { + nl[ci].style.zIndex = z[fi]; + nl[fi].style.zIndex = z[ci]; + } else { + if (z[ci] > 0) + nl[ci].style.zIndex = z[ci] - 1; + } + } else { + // Move forward + + // Try find a higher one + for (i=0; i z[ci]) { + fi = i; + break; + } + } + + if (fi > -1) { + nl[ci].style.zIndex = z[fi]; + nl[fi].style.zIndex = z[ci]; + } else + nl[ci].style.zIndex = z[ci] + 1; + } + + ed.execCommand('mceRepaint'); + }, + + _getParentLayer : function(n) { + return this.editor.dom.getParent(n, function(n) { + return n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position); + }); + }, + + _insertLayer : function() { + var ed = this.editor, p = ed.dom.getPos(ed.dom.getParent(ed.selection.getNode(), '*')); + + ed.dom.add(ed.getBody(), 'div', { + style : { + position : 'absolute', + left : p.x, + top : (p.y > 20 ? p.y : 20), + width : 100, + height : 100 + }, + 'class' : 'mceItemVisualAid' + }, ed.selection.getContent() || ed.getLang('layer.content')); + }, + + _toggleAbsolute : function() { + var ed = this.editor, le = this._getParentLayer(ed.selection.getNode()); + + if (!le) + le = ed.dom.getParent(ed.selection.getNode(), 'DIV,P,IMG'); + + if (le) { + if (le.style.position.toLowerCase() == "absolute") { + ed.dom.setStyles(le, { + position : '', + left : '', + top : '', + width : '', + height : '' + }); + + ed.dom.removeClass(le, 'mceItemVisualAid'); + } else { + if (le.style.left == "") + le.style.left = 20 + 'px'; + + if (le.style.top == "") + le.style.top = 20 + 'px'; + + if (le.style.width == "") + le.style.width = le.width ? (le.width + 'px') : '100px'; + + if (le.style.height == "") + le.style.height = le.height ? (le.height + 'px') : '100px'; + + le.style.position = "absolute"; + + ed.dom.setAttrib(le, 'data-mce-style', ''); + ed.addVisual(ed.getBody()); + } + + ed.execCommand('mceRepaint'); + ed.nodeChanged(); + } + } + }); + + // Register plugin + tinymce.PluginManager.add('layer', tinymce.plugins.Layer); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js new file mode 100644 index 0000000..b3a4ce3 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js @@ -0,0 +1 @@ +(function(a){a.onAddEditor.addToTop(function(c,b){b.settings.inline_styles=false});a.create("tinymce.plugins.LegacyOutput",{init:function(b){b.onInit.add(function(){var c="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",e=a.explode(b.settings.font_size_style_values),d=b.schema;b.formatter.register({alignleft:{selector:c,attributes:{align:"left"}},aligncenter:{selector:c,attributes:{align:"center"}},alignright:{selector:c,attributes:{align:"right"}},alignfull:{selector:c,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:true}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:true}],fontname:{inline:"font",attributes:{face:"%value"}},fontsize:{inline:"font",attributes:{size:function(f){return a.inArray(e,f.value)+1}}},forecolor:{inline:"font",styles:{color:"%value"}},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"}}});a.each("b,i,u,strike".split(","),function(f){d.addValidElements(f+"[*]")});if(!d.getElementRule("font")){d.addValidElements("font[face|size|color|style]")}a.each(c.split(","),function(f){var h=d.getElementRule(f),g;if(h){if(!h.attributes.align){h.attributes.align={};h.attributesOrder.push("align")}}});b.onNodeChange.add(function(g,k){var j,f,h,i;f=g.dom.getParent(g.selection.getNode(),"font");if(f){h=f.face;i=f.size}if(j=k.get("fontselect")){j.select(function(l){return l==h})}if(j=k.get("fontsizeselect")){j.select(function(m){var l=a.inArray(e,m.fontSize);return l+1==i})}})})},getInfo:function(){return{longname:"LegacyOutput",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/legacyoutput",version:a.majorVersion+"."+a.minorVersion}}});a.PluginManager.add("legacyoutput",a.plugins.LegacyOutput)})(tinymce); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js new file mode 100644 index 0000000..e627ec7 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js @@ -0,0 +1,139 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + * + * This plugin will force TinyMCE to produce deprecated legacy output such as font elements, u elements, align + * attributes and so forth. There are a few cases where these old items might be needed for example in email applications or with Flash + * + * However you should NOT use this plugin if you are building some system that produces web contents such as a CMS. All these elements are + * not apart of the newer specifications for HTML and XHTML. + */ + +(function(tinymce) { + // Override inline_styles setting to force TinyMCE to produce deprecated contents + tinymce.onAddEditor.addToTop(function(tinymce, editor) { + editor.settings.inline_styles = false; + }); + + // Create the legacy ouput plugin + tinymce.create('tinymce.plugins.LegacyOutput', { + init : function(editor) { + editor.onInit.add(function() { + var alignElements = 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', + fontSizes = tinymce.explode(editor.settings.font_size_style_values), + schema = editor.schema; + + // Override some internal formats to produce legacy elements and attributes + editor.formatter.register({ + // Change alignment formats to use the deprecated align attribute + alignleft : {selector : alignElements, attributes : {align : 'left'}}, + aligncenter : {selector : alignElements, attributes : {align : 'center'}}, + alignright : {selector : alignElements, attributes : {align : 'right'}}, + alignfull : {selector : alignElements, attributes : {align : 'justify'}}, + + // Change the basic formatting elements to use deprecated element types + bold : [ + {inline : 'b', remove : 'all'}, + {inline : 'strong', remove : 'all'}, + {inline : 'span', styles : {fontWeight : 'bold'}} + ], + italic : [ + {inline : 'i', remove : 'all'}, + {inline : 'em', remove : 'all'}, + {inline : 'span', styles : {fontStyle : 'italic'}} + ], + underline : [ + {inline : 'u', remove : 'all'}, + {inline : 'span', styles : {textDecoration : 'underline'}, exact : true} + ], + strikethrough : [ + {inline : 'strike', remove : 'all'}, + {inline : 'span', styles : {textDecoration: 'line-through'}, exact : true} + ], + + // Change font size and font family to use the deprecated font element + fontname : {inline : 'font', attributes : {face : '%value'}}, + fontsize : { + inline : 'font', + attributes : { + size : function(vars) { + return tinymce.inArray(fontSizes, vars.value) + 1; + } + } + }, + + // Setup font elements for colors as well + forecolor : {inline : 'font', styles : {color : '%value'}}, + hilitecolor : {inline : 'font', styles : {backgroundColor : '%value'}} + }); + + // Check that deprecated elements are allowed if not add them + tinymce.each('b,i,u,strike'.split(','), function(name) { + schema.addValidElements(name + '[*]'); + }); + + // Add font element if it's missing + if (!schema.getElementRule("font")) + schema.addValidElements("font[face|size|color|style]"); + + // Add the missing and depreacted align attribute for the serialization engine + tinymce.each(alignElements.split(','), function(name) { + var rule = schema.getElementRule(name), found; + + if (rule) { + if (!rule.attributes.align) { + rule.attributes.align = {}; + rule.attributesOrder.push('align'); + } + } + }); + + // Listen for the onNodeChange event so that we can do special logic for the font size and font name drop boxes + editor.onNodeChange.add(function(editor, control_manager) { + var control, fontElm, fontName, fontSize; + + // Find font element get it's name and size + fontElm = editor.dom.getParent(editor.selection.getNode(), 'font'); + if (fontElm) { + fontName = fontElm.face; + fontSize = fontElm.size; + } + + // Select/unselect the font name in droplist + if (control = control_manager.get('fontselect')) { + control.select(function(value) { + return value == fontName; + }); + } + + // Select/unselect the font size in droplist + if (control = control_manager.get('fontsizeselect')) { + control.select(function(value) { + var index = tinymce.inArray(fontSizes, value.fontSize); + + return index + 1 == fontSize; + }); + } + }); + }); + }, + + getInfo : function() { + return { + longname : 'LegacyOutput', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/legacyoutput', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('legacyoutput', tinymce.plugins.LegacyOutput); +})(tinymce); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js new file mode 100644 index 0000000..4464599 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js @@ -0,0 +1 @@ +(function(){var e=tinymce.each,r=tinymce.dom.Event,g;function p(t,s){while(t&&(t.nodeType===8||(t.nodeType===3&&/^[ \t\n\r]*$/.test(t.nodeValue)))){t=s(t)}return t}function b(s){return p(s,function(t){return t.previousSibling})}function i(s){return p(s,function(t){return t.nextSibling})}function d(s,u,t){return s.dom.getParent(u,function(v){return tinymce.inArray(t,v)!==-1})}function n(s){return s&&(s.tagName==="OL"||s.tagName==="UL")}function c(u,v){var t,w,s;t=b(u.lastChild);while(n(t)){w=t;t=b(w.previousSibling)}if(w){s=v.create("li",{style:"list-style-type: none;"});v.split(u,w);v.insertAfter(s,w);s.appendChild(w);s.appendChild(w);u=s.previousSibling}return u}function m(t,s,u){t=a(t,s,u);return o(t,s,u)}function a(u,s,v){var t=b(u.previousSibling);if(t){return h(t,u,s?t:false,v)}else{return u}}function o(u,t,v){var s=i(u.nextSibling);if(s){return h(u,s,t?s:false,v)}else{return u}}function h(u,s,t,v){if(l(u,s,!!t,v)){return f(u,s,t)}else{if(u&&u.tagName==="LI"&&n(s)){u.appendChild(s)}}return s}function l(u,t,s,v){if(!u||!t){return false}else{if(u.tagName==="LI"&&t.tagName==="LI"){return t.style.listStyleType==="none"||j(t)}else{if(n(u)){return(u.tagName===t.tagName&&(s||u.style.listStyleType===t.style.listStyleType))||q(t)}else{if(v&&u.tagName==="P"&&t.tagName==="P"){return true}else{return false}}}}}function q(t){var s=i(t.firstChild),u=b(t.lastChild);return s&&u&&n(t)&&s===u&&(n(s)||s.style.listStyleType==="none"||j(s))}function j(u){var t=i(u.firstChild),s=b(u.lastChild);return t&&s&&t===s&&n(t)}function f(w,v,s){var u=b(w.lastChild),t=i(v.firstChild);if(w.tagName==="P"){w.appendChild(w.ownerDocument.createElement("br"))}while(v.firstChild){w.appendChild(v.firstChild)}if(s){w.style.listStyleType=s.style.listStyleType}v.parentNode.removeChild(v);h(u,t,false);return w}function k(t,u){var s;if(!u.is(t,"li,ol,ul")){s=u.getParent(t,"li");if(s){t=s}}return t}tinymce.create("tinymce.plugins.Lists",{init:function(u,v){var s=false;function x(y){return y.keyCode===9&&(u.queryCommandState("InsertUnorderedList")||u.queryCommandState("InsertOrderedList"))}function w(y,A){var z=y.selection,B;if(A.keyCode===13){B=z.getStart();s=z.isCollapsed()&&B&&B.tagName==="LI"&&B.childNodes.length===0;return s}}function t(y,z){if(x(z)||w(y,z)){return r.cancel(z)}}this.ed=u;u.addCommand("Indent",this.indent,this);u.addCommand("Outdent",this.outdent,this);u.addCommand("InsertUnorderedList",function(){this.applyList("UL","OL")},this);u.addCommand("InsertOrderedList",function(){this.applyList("OL","UL")},this);u.onInit.add(function(){u.editorCommands.addCommands({outdent:function(){var z=u.selection,A=u.dom;function y(B){B=A.getParent(B,A.isBlock);return B&&(parseInt(u.dom.getStyle(B,"margin-left")||0,10)+parseInt(u.dom.getStyle(B,"padding-left")||0,10))>0}return y(z.getStart())||y(z.getEnd())||u.queryCommandState("InsertOrderedList")||u.queryCommandState("InsertUnorderedList")}},"state")});u.onKeyUp.add(function(z,A){var B,y;if(x(A)){z.execCommand(A.shiftKey?"Outdent":"Indent",true,null);return r.cancel(A)}else{if(s&&w(z,A)){if(z.queryCommandState("InsertOrderedList")){z.execCommand("InsertOrderedList")}else{z.execCommand("InsertUnorderedList")}B=z.selection.getStart();if(B&&B.tagName==="LI"){B=z.dom.getParent(B,"ol,ul").nextSibling;if(B&&B.tagName==="P"){if(!B.firstChild){B.appendChild(z.getDoc().createTextNode(""))}y=z.dom.createRng();y.setStart(B.firstChild,1);y.setEnd(B.firstChild,1);z.selection.setRng(y)}}return r.cancel(A)}}});u.onKeyPress.add(t);u.onKeyDown.add(t)},applyList:function(y,v){var C=this,z=C.ed,I=z.dom,s=[],H=false,u=false,w=false,B,G=z.selection.getSelectedBlocks();function E(t){if(t&&t.tagName==="BR"){I.remove(t)}}function F(M){var N=I.create(y),t;function L(O){if(O.style.marginLeft||O.style.paddingLeft){C.adjustPaddingFunction(false)(O)}}if(M.tagName==="LI"){}else{if(M.tagName==="P"||M.tagName==="DIV"||M.tagName==="BODY"){K(M,function(P,O,Q){J(P,O,M.tagName==="BODY"?null:P.parentNode);t=P.parentNode;L(t);E(O)});if(M.tagName==="P"||G.length>1){I.split(t.parentNode.parentNode,t.parentNode)}m(t.parentNode,true);return}else{t=I.create("li");I.insertAfter(t,M);t.appendChild(M);L(M);M=t}}I.insertAfter(N,M);N.appendChild(M);m(N,true);s.push(M)}function J(Q,L,O){var t,P=Q,N,M;while(!I.isBlock(Q.parentNode)&&Q.parentNode!==I.getRoot()){Q=I.split(Q.parentNode,Q.previousSibling);Q=Q.nextSibling;P=Q}if(O){t=O.cloneNode(true);Q.parentNode.insertBefore(t,Q);while(t.firstChild){I.remove(t.firstChild)}t=I.rename(t,"li")}else{t=I.create("li");Q.parentNode.insertBefore(t,Q)}while(P&&P!=L){N=P.nextSibling;t.appendChild(P);P=N}if(t.childNodes.length===0){t.innerHTML='
                    '}F(t)}function K(Q,T){var N,R,O=3,L=1,t="br,ul,ol,p,div,h1,h2,h3,h4,h5,h6,table,blockquote,address,pre,form,center,dl";function P(X,U){var V=I.createRng(),W;g.keep=true;z.selection.moveToBookmark(g);g.keep=false;W=z.selection.getRng(true);if(!U){U=X.parentNode.lastChild}V.setStartBefore(X);V.setEndAfter(U);return !(V.compareBoundaryPoints(O,W)>0||V.compareBoundaryPoints(L,W)<=0)}function S(U){if(U.nextSibling){return U.nextSibling}if(!I.isBlock(U.parentNode)&&U.parentNode!==I.getRoot()){return S(U.parentNode)}}N=Q.firstChild;var M=false;e(I.select(t,Q),function(V){var U;if(V.hasAttribute&&V.hasAttribute("_mce_bogus")){return true}if(P(N,V)){I.addClass(V,"_mce_tagged_br");N=S(V)}});M=(N&&P(N,undefined));N=Q.firstChild;e(I.select(t,Q),function(V){var U=S(V);if(V.hasAttribute&&V.hasAttribute("_mce_bogus")){return true}if(I.hasClass(V,"_mce_tagged_br")){T(N,V,R);R=null}else{R=V}N=U});if(M){T(N,undefined,R)}}function D(t){K(t,function(M,L,N){J(M,L);E(L);E(N)})}function A(t){if(tinymce.inArray(s,t)!==-1){return}if(t.parentNode.tagName===v){I.split(t.parentNode,t);F(t);o(t.parentNode,false)}s.push(t)}function x(M){var O,N,L,t;if(tinymce.inArray(s,M)!==-1){return}M=c(M,I);while(I.is(M.parentNode,"ol,ul,li")){I.split(M.parentNode,M)}s.push(M);M=I.rename(M,"p");L=m(M,false,z.settings.force_br_newlines);if(L===M){O=M.firstChild;while(O){if(I.isBlock(O)){O=I.split(O.parentNode,O);t=true;N=O.nextSibling&&O.nextSibling.firstChild}else{N=O.nextSibling;if(t&&O.tagName==="BR"){I.remove(O)}t=false}O=N}}}e(G,function(t){t=k(t,I);if(t.tagName===v||(t.tagName==="LI"&&t.parentNode.tagName===v)){u=true}else{if(t.tagName===y||(t.tagName==="LI"&&t.parentNode.tagName===y)){H=true}else{w=true}}});if(w||u||G.length===0){B={LI:A,H1:F,H2:F,H3:F,H4:F,H5:F,H6:F,P:F,BODY:F,DIV:G.length>1?F:D,defaultAction:D}}else{B={defaultAction:x}}this.process(B)},indent:function(){var u=this.ed,w=u.dom,x=[];function s(z){var y=w.create("li",{style:"list-style-type: none;"});w.insertAfter(y,z);return y}function t(B){var y=s(B),D=w.getParent(B,"ol,ul"),C=D.tagName,E=w.getStyle(D,"list-style-type"),A={},z;if(E!==""){A.style="list-style-type: "+E+";"}z=w.create(C,A);y.appendChild(z);return z}function v(z){if(!d(u,z,x)){z=c(z,w);var y=t(z);y.appendChild(z);m(y.parentNode,false);m(y,false);x.push(z)}}this.process({LI:v,defaultAction:this.adjustPaddingFunction(true)})},outdent:function(){var v=this,u=v.ed,w=u.dom,s=[];function x(t){var z,y,A;if(!d(u,t,s)){if(w.getStyle(t,"margin-left")!==""||w.getStyle(t,"padding-left")!==""){return v.adjustPaddingFunction(false)(t)}A=w.getStyle(t,"text-align",true);if(A==="center"||A==="right"){w.setStyle(t,"text-align","left");return}t=c(t,w);z=t.parentNode;y=t.parentNode.parentNode;if(y.tagName==="P"){w.split(y,t.parentNode)}else{w.split(z,t);if(y.tagName==="LI"){w.split(y,t)}else{if(!w.is(y,"ol,ul")){w.rename(t,"p")}}}s.push(t)}}this.process({LI:x,defaultAction:this.adjustPaddingFunction(false)});e(s,m)},process:function(x){var B=this,v=B.ed.selection,y=B.ed.dom,A,s;function w(t){y.removeClass(t,"_mce_act_on");if(!t||t.nodeType!==1){return}t=k(t,y);var C=x[t.tagName];if(!C){C=x.defaultAction}C(t)}function u(t){B.splitSafeEach(t.childNodes,w)}function z(t,C){return C>=0&&t.hasChildNodes()&&C0){t=s.shift();w.removeClass(t,"_mce_act_on");u(t);s=w.select("._mce_act_on")}},adjustPaddingFunction:function(u){var s,v,t=this.ed;s=t.settings.indentation;v=/[a-z%]+/i.exec(s);s=parseInt(s,10);return function(w){var y,x;y=parseInt(t.dom.getStyle(w,"margin-left")||0,10)+parseInt(t.dom.getStyle(w,"padding-left")||0,10);if(u){x=y+s}else{x=y-s}t.dom.setStyle(w,"padding-left","");t.dom.setStyle(w,"margin-left",x>0?x+v:"")}},getInfo:function(){return{longname:"Lists",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/lists",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("lists",tinymce.plugins.Lists)}()); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js new file mode 100644 index 0000000..b7ca762 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js @@ -0,0 +1,617 @@ +/** + * editor_plugin_src.js + * + * Copyright 2011, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var each = tinymce.each, Event = tinymce.dom.Event, bookmark; + + // Skips text nodes that only contain whitespace since they aren't semantically important. + function skipWhitespaceNodes(e, next) { + while (e && (e.nodeType === 8 || (e.nodeType === 3 && /^[ \t\n\r]*$/.test(e.nodeValue)))) { + e = next(e); + } + return e; + } + + function skipWhitespaceNodesBackwards(e) { + return skipWhitespaceNodes(e, function(e) { return e.previousSibling; }); + } + + function skipWhitespaceNodesForwards(e) { + return skipWhitespaceNodes(e, function(e) { return e.nextSibling; }); + } + + function hasParentInList(ed, e, list) { + return ed.dom.getParent(e, function(p) { + return tinymce.inArray(list, p) !== -1; + }); + } + + function isList(e) { + return e && (e.tagName === 'OL' || e.tagName === 'UL'); + } + + function splitNestedLists(element, dom) { + var tmp, nested, wrapItem; + tmp = skipWhitespaceNodesBackwards(element.lastChild); + while (isList(tmp)) { + nested = tmp; + tmp = skipWhitespaceNodesBackwards(nested.previousSibling); + } + if (nested) { + wrapItem = dom.create('li', { style: 'list-style-type: none;'}); + dom.split(element, nested); + dom.insertAfter(wrapItem, nested); + wrapItem.appendChild(nested); + wrapItem.appendChild(nested); + element = wrapItem.previousSibling; + } + return element; + } + + function attemptMergeWithAdjacent(e, allowDifferentListStyles, mergeParagraphs) { + e = attemptMergeWithPrevious(e, allowDifferentListStyles, mergeParagraphs); + return attemptMergeWithNext(e, allowDifferentListStyles, mergeParagraphs); + } + + function attemptMergeWithPrevious(e, allowDifferentListStyles, mergeParagraphs) { + var prev = skipWhitespaceNodesBackwards(e.previousSibling); + if (prev) { + return attemptMerge(prev, e, allowDifferentListStyles ? prev : false, mergeParagraphs); + } else { + return e; + } + } + + function attemptMergeWithNext(e, allowDifferentListStyles, mergeParagraphs) { + var next = skipWhitespaceNodesForwards(e.nextSibling); + if (next) { + return attemptMerge(e, next, allowDifferentListStyles ? next : false, mergeParagraphs); + } else { + return e; + } + } + + function attemptMerge(e1, e2, differentStylesMasterElement, mergeParagraphs) { + if (canMerge(e1, e2, !!differentStylesMasterElement, mergeParagraphs)) { + return merge(e1, e2, differentStylesMasterElement); + } else if (e1 && e1.tagName === 'LI' && isList(e2)) { + // Fix invalidly nested lists. + e1.appendChild(e2); + } + return e2; + } + + function canMerge(e1, e2, allowDifferentListStyles, mergeParagraphs) { + if (!e1 || !e2) { + return false; + } else if (e1.tagName === 'LI' && e2.tagName === 'LI') { + return e2.style.listStyleType === 'none' || containsOnlyAList(e2); + } else if (isList(e1)) { + return (e1.tagName === e2.tagName && (allowDifferentListStyles || e1.style.listStyleType === e2.style.listStyleType)) || isListForIndent(e2); + } else if (mergeParagraphs && e1.tagName === 'P' && e2.tagName === 'P') { + return true; + } else { + return false; + } + } + + function isListForIndent(e) { + var firstLI = skipWhitespaceNodesForwards(e.firstChild), lastLI = skipWhitespaceNodesBackwards(e.lastChild); + return firstLI && lastLI && isList(e) && firstLI === lastLI && (isList(firstLI) || firstLI.style.listStyleType === 'none' || containsOnlyAList(firstLI)); + } + + function containsOnlyAList(e) { + var firstChild = skipWhitespaceNodesForwards(e.firstChild), lastChild = skipWhitespaceNodesBackwards(e.lastChild); + return firstChild && lastChild && firstChild === lastChild && isList(firstChild); + } + + function merge(e1, e2, masterElement) { + var lastOriginal = skipWhitespaceNodesBackwards(e1.lastChild), firstNew = skipWhitespaceNodesForwards(e2.firstChild); + if (e1.tagName === 'P') { + e1.appendChild(e1.ownerDocument.createElement('br')); + } + while (e2.firstChild) { + e1.appendChild(e2.firstChild); + } + if (masterElement) { + e1.style.listStyleType = masterElement.style.listStyleType; + } + e2.parentNode.removeChild(e2); + attemptMerge(lastOriginal, firstNew, false); + return e1; + } + + function findItemToOperateOn(e, dom) { + var item; + if (!dom.is(e, 'li,ol,ul')) { + item = dom.getParent(e, 'li'); + if (item) { + e = item; + } + } + return e; + } + + tinymce.create('tinymce.plugins.Lists', { + init: function(ed, url) { + var enterDownInEmptyList = false; + function isTriggerKey(e) { + return e.keyCode === 9 && (ed.queryCommandState('InsertUnorderedList') || ed.queryCommandState('InsertOrderedList')); + } + function isEnterInEmptyListItem(ed, e) { + var sel = ed.selection, n; + if (e.keyCode === 13) { + n = sel.getStart(); + enterDownInEmptyList = sel.isCollapsed() && n && n.tagName === 'LI' && n.childNodes.length === 0; + return enterDownInEmptyList; + } + } + function cancelKeys(ed, e) { + if (isTriggerKey(e) || isEnterInEmptyListItem(ed, e)) { + return Event.cancel(e); + } + } + + this.ed = ed; + ed.addCommand('Indent', this.indent, this); + ed.addCommand('Outdent', this.outdent, this); + ed.addCommand('InsertUnorderedList', function() { + this.applyList('UL', 'OL'); + }, this); + ed.addCommand('InsertOrderedList', function() { + this.applyList('OL', 'UL'); + }, this); + + ed.onInit.add(function() { + ed.editorCommands.addCommands({ + 'outdent': function() { + var sel = ed.selection, dom = ed.dom; + function hasStyleIndent(n) { + n = dom.getParent(n, dom.isBlock); + return n && (parseInt(ed.dom.getStyle(n, 'margin-left') || 0, 10) + parseInt(ed.dom.getStyle(n, 'padding-left') || 0, 10)) > 0; + } + return hasStyleIndent(sel.getStart()) || hasStyleIndent(sel.getEnd()) || ed.queryCommandState('InsertOrderedList') || ed.queryCommandState('InsertUnorderedList'); + } + }, 'state'); + }); + + ed.onKeyUp.add(function(ed, e) { + var n, rng; + if (isTriggerKey(e)) { + ed.execCommand(e.shiftKey ? 'Outdent' : 'Indent', true, null); + return Event.cancel(e); + } else if (enterDownInEmptyList && isEnterInEmptyListItem(ed, e)) { + if (ed.queryCommandState('InsertOrderedList')) { + ed.execCommand('InsertOrderedList'); + } else { + ed.execCommand('InsertUnorderedList'); + } + n = ed.selection.getStart(); + if (n && n.tagName === 'LI') { + // Fix the caret position on IE since it jumps back up to the previous list item. + n = ed.dom.getParent(n, 'ol,ul').nextSibling; + if (n && n.tagName === 'P') { + if (!n.firstChild) { + n.appendChild(ed.getDoc().createTextNode('')); + } + rng = ed.dom.createRng(); + rng.setStart(n.firstChild, 1); + rng.setEnd(n.firstChild, 1); + ed.selection.setRng(rng); + } + } + return Event.cancel(e); + } + }); + ed.onKeyPress.add(cancelKeys); + ed.onKeyDown.add(cancelKeys); + }, + + applyList: function(targetListType, oppositeListType) { + var t = this, ed = t.ed, dom = ed.dom, applied = [], hasSameType = false, hasOppositeType = false, hasNonList = false, actions, + selectedBlocks = ed.selection.getSelectedBlocks(); + + function cleanupBr(e) { + if (e && e.tagName === 'BR') { + dom.remove(e); + } + } + + function makeList(element) { + var list = dom.create(targetListType), li; + function adjustIndentForNewList(element) { + // If there's a margin-left, outdent one level to account for the extra list margin. + if (element.style.marginLeft || element.style.paddingLeft) { + t.adjustPaddingFunction(false)(element); + } + } + + if (element.tagName === 'LI') { + // No change required. + } else if (element.tagName === 'P' || element.tagName === 'DIV' || element.tagName === 'BODY') { + processBrs(element, function(startSection, br, previousBR) { + doWrapList(startSection, br, element.tagName === 'BODY' ? null : startSection.parentNode); + li = startSection.parentNode; + adjustIndentForNewList(li); + cleanupBr(br); + }); + if (element.tagName === 'P' || selectedBlocks.length > 1) { + dom.split(li.parentNode.parentNode, li.parentNode); + } + attemptMergeWithAdjacent(li.parentNode, true); + return; + } else { + // Put the list around the element. + li = dom.create('li'); + dom.insertAfter(li, element); + li.appendChild(element); + adjustIndentForNewList(element); + element = li; + } + dom.insertAfter(list, element); + list.appendChild(element); + attemptMergeWithAdjacent(list, true); + applied.push(element); + } + + function doWrapList(start, end, template) { + var li, n = start, tmp, i; + while (!dom.isBlock(start.parentNode) && start.parentNode !== dom.getRoot()) { + start = dom.split(start.parentNode, start.previousSibling); + start = start.nextSibling; + n = start; + } + if (template) { + li = template.cloneNode(true); + start.parentNode.insertBefore(li, start); + while (li.firstChild) dom.remove(li.firstChild); + li = dom.rename(li, 'li'); + } else { + li = dom.create('li'); + start.parentNode.insertBefore(li, start); + } + while (n && n != end) { + tmp = n.nextSibling; + li.appendChild(n); + n = tmp; + } + if (li.childNodes.length === 0) { + li.innerHTML = '
                    '; + } + makeList(li); + } + + function processBrs(element, callback) { + var startSection, previousBR, END_TO_START = 3, START_TO_END = 1, + breakElements = 'br,ul,ol,p,div,h1,h2,h3,h4,h5,h6,table,blockquote,address,pre,form,center,dl'; + function isAnyPartSelected(start, end) { + var r = dom.createRng(), sel; + bookmark.keep = true; + ed.selection.moveToBookmark(bookmark); + bookmark.keep = false; + sel = ed.selection.getRng(true); + if (!end) { + end = start.parentNode.lastChild; + } + r.setStartBefore(start); + r.setEndAfter(end); + return !(r.compareBoundaryPoints(END_TO_START, sel) > 0 || r.compareBoundaryPoints(START_TO_END, sel) <= 0); + } + function nextLeaf(br) { + if (br.nextSibling) + return br.nextSibling; + if (!dom.isBlock(br.parentNode) && br.parentNode !== dom.getRoot()) + return nextLeaf(br.parentNode); + } + // Split on BRs within the range and process those. + startSection = element.firstChild; + // First mark the BRs that have any part of the previous section selected. + var trailingContentSelected = false; + each(dom.select(breakElements, element), function(br) { + var b; + if (br.hasAttribute && br.hasAttribute('_mce_bogus')) { + return true; // Skip the bogus Brs that are put in to appease Firefox and Safari. + } + if (isAnyPartSelected(startSection, br)) { + dom.addClass(br, '_mce_tagged_br'); + startSection = nextLeaf(br); + } + }); + trailingContentSelected = (startSection && isAnyPartSelected(startSection, undefined)); + startSection = element.firstChild; + each(dom.select(breakElements, element), function(br) { + // Got a section from start to br. + var tmp = nextLeaf(br); + if (br.hasAttribute && br.hasAttribute('_mce_bogus')) { + return true; // Skip the bogus Brs that are put in to appease Firefox and Safari. + } + if (dom.hasClass(br, '_mce_tagged_br')) { + callback(startSection, br, previousBR); + previousBR = null; + } else { + previousBR = br; + } + startSection = tmp; + }); + if (trailingContentSelected) { + callback(startSection, undefined, previousBR); + } + } + + function wrapList(element) { + processBrs(element, function(startSection, br, previousBR) { + // Need to indent this part + doWrapList(startSection, br); + cleanupBr(br); + cleanupBr(previousBR); + }); + } + + function changeList(element) { + if (tinymce.inArray(applied, element) !== -1) { + return; + } + if (element.parentNode.tagName === oppositeListType) { + dom.split(element.parentNode, element); + makeList(element); + attemptMergeWithNext(element.parentNode, false); + } + applied.push(element); + } + + function convertListItemToParagraph(element) { + var child, nextChild, mergedElement, splitLast; + if (tinymce.inArray(applied, element) !== -1) { + return; + } + element = splitNestedLists(element, dom); + while (dom.is(element.parentNode, 'ol,ul,li')) { + dom.split(element.parentNode, element); + } + // Push the original element we have from the selection, not the renamed one. + applied.push(element); + element = dom.rename(element, 'p'); + mergedElement = attemptMergeWithAdjacent(element, false, ed.settings.force_br_newlines); + if (mergedElement === element) { + // Now split out any block elements that can't be contained within a P. + // Manually iterate to ensure we handle modifications correctly (doesn't work with tinymce.each) + child = element.firstChild; + while (child) { + if (dom.isBlock(child)) { + child = dom.split(child.parentNode, child); + splitLast = true; + nextChild = child.nextSibling && child.nextSibling.firstChild; + } else { + nextChild = child.nextSibling; + if (splitLast && child.tagName === 'BR') { + dom.remove(child); + } + splitLast = false; + } + child = nextChild; + } + } + } + + each(selectedBlocks, function(e) { + e = findItemToOperateOn(e, dom); + if (e.tagName === oppositeListType || (e.tagName === 'LI' && e.parentNode.tagName === oppositeListType)) { + hasOppositeType = true; + } else if (e.tagName === targetListType || (e.tagName === 'LI' && e.parentNode.tagName === targetListType)) { + hasSameType = true; + } else { + hasNonList = true; + } + }); + + if (hasNonList || hasOppositeType || selectedBlocks.length === 0) { + actions = { + 'LI': changeList, + 'H1': makeList, + 'H2': makeList, + 'H3': makeList, + 'H4': makeList, + 'H5': makeList, + 'H6': makeList, + 'P': makeList, + 'BODY': makeList, + 'DIV': selectedBlocks.length > 1 ? makeList : wrapList, + defaultAction: wrapList + }; + } else { + actions = { + defaultAction: convertListItemToParagraph + }; + } + this.process(actions); + }, + + indent: function() { + var ed = this.ed, dom = ed.dom, indented = []; + + function createWrapItem(element) { + var wrapItem = dom.create('li', { style: 'list-style-type: none;'}); + dom.insertAfter(wrapItem, element); + return wrapItem; + } + + function createWrapList(element) { + var wrapItem = createWrapItem(element), + list = dom.getParent(element, 'ol,ul'), + listType = list.tagName, + listStyle = dom.getStyle(list, 'list-style-type'), + attrs = {}, + wrapList; + if (listStyle !== '') { + attrs.style = 'list-style-type: ' + listStyle + ';'; + } + wrapList = dom.create(listType, attrs); + wrapItem.appendChild(wrapList); + return wrapList; + } + + function indentLI(element) { + if (!hasParentInList(ed, element, indented)) { + element = splitNestedLists(element, dom); + var wrapList = createWrapList(element); + wrapList.appendChild(element); + attemptMergeWithAdjacent(wrapList.parentNode, false); + attemptMergeWithAdjacent(wrapList, false); + indented.push(element); + } + } + + this.process({ + 'LI': indentLI, + defaultAction: this.adjustPaddingFunction(true) + }); + + }, + + outdent: function() { + var t = this, ed = t.ed, dom = ed.dom, outdented = []; + + function outdentLI(element) { + var listElement, targetParent, align; + if (!hasParentInList(ed, element, outdented)) { + if (dom.getStyle(element, 'margin-left') !== '' || dom.getStyle(element, 'padding-left') !== '') { + return t.adjustPaddingFunction(false)(element); + } + align = dom.getStyle(element, 'text-align', true); + if (align === 'center' || align === 'right') { + dom.setStyle(element, 'text-align', 'left'); + return; + } + element = splitNestedLists(element, dom); + listElement = element.parentNode; + targetParent = element.parentNode.parentNode; + if (targetParent.tagName === 'P') { + dom.split(targetParent, element.parentNode); + } else { + dom.split(listElement, element); + if (targetParent.tagName === 'LI') { + // Nested list, need to split the LI and go back out to the OL/UL element. + dom.split(targetParent, element); + } else if (!dom.is(targetParent, 'ol,ul')) { + dom.rename(element, 'p'); + } + } + outdented.push(element); + } + } + + this.process({ + 'LI': outdentLI, + defaultAction: this.adjustPaddingFunction(false) + }); + + each(outdented, attemptMergeWithAdjacent); + }, + + process: function(actions) { + var t = this, sel = t.ed.selection, dom = t.ed.dom, selectedBlocks, r; + function processElement(element) { + dom.removeClass(element, '_mce_act_on'); + if (!element || element.nodeType !== 1) { + return; + } + element = findItemToOperateOn(element, dom); + var action = actions[element.tagName]; + if (!action) { + action = actions.defaultAction; + } + action(element); + } + function recurse(element) { + t.splitSafeEach(element.childNodes, processElement); + } + function brAtEdgeOfSelection(container, offset) { + return offset >= 0 && container.hasChildNodes() && offset < container.childNodes.length && + container.childNodes[offset].tagName === 'BR'; + } + selectedBlocks = sel.getSelectedBlocks(); + if (selectedBlocks.length === 0) { + selectedBlocks = [ dom.getRoot() ]; + } + + r = sel.getRng(true); + if (!r.collapsed) { + if (brAtEdgeOfSelection(r.endContainer, r.endOffset - 1)) { + r.setEnd(r.endContainer, r.endOffset - 1); + sel.setRng(r); + } + if (brAtEdgeOfSelection(r.startContainer, r.startOffset)) { + r.setStart(r.startContainer, r.startOffset + 1); + sel.setRng(r); + } + } + bookmark = sel.getBookmark(); + actions.OL = actions.UL = recurse; + t.splitSafeEach(selectedBlocks, processElement); + sel.moveToBookmark(bookmark); + bookmark = null; + // Avoids table or image handles being left behind in Firefox. + t.ed.execCommand('mceRepaint'); + }, + + splitSafeEach: function(elements, f) { + if (tinymce.isGecko && (/Firefox\/[12]\.[0-9]/.test(navigator.userAgent) || + /Firefox\/3\.[0-4]/.test(navigator.userAgent))) { + this.classBasedEach(elements, f); + } else { + each(elements, f); + } + }, + + classBasedEach: function(elements, f) { + var dom = this.ed.dom, nodes, element; + // Mark nodes + each(elements, function(element) { + dom.addClass(element, '_mce_act_on'); + }); + nodes = dom.select('._mce_act_on'); + while (nodes.length > 0) { + element = nodes.shift(); + dom.removeClass(element, '_mce_act_on'); + f(element); + nodes = dom.select('._mce_act_on'); + } + }, + + adjustPaddingFunction: function(isIndent) { + var indentAmount, indentUnits, ed = this.ed; + indentAmount = ed.settings.indentation; + indentUnits = /[a-z%]+/i.exec(indentAmount); + indentAmount = parseInt(indentAmount, 10); + return function(element) { + var currentIndent, newIndentAmount; + currentIndent = parseInt(ed.dom.getStyle(element, 'margin-left') || 0, 10) + parseInt(ed.dom.getStyle(element, 'padding-left') || 0, 10); + if (isIndent) { + newIndentAmount = currentIndent + indentAmount; + } else { + newIndentAmount = currentIndent - indentAmount; + } + ed.dom.setStyle(element, 'padding-left', ''); + ed.dom.setStyle(element, 'margin-left', newIndentAmount > 0 ? newIndentAmount + indentUnits : ''); + }; + }, + + getInfo: function() { + return { + longname : 'Lists', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/lists', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + tinymce.PluginManager.add("lists", tinymce.plugins.Lists); +}()); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/content.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/content.css new file mode 100644 index 0000000..1bf6a75 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/content.css @@ -0,0 +1,6 @@ +.mceItemFlash, .mceItemShockWave, .mceItemQuickTime, .mceItemWindowsMedia, .mceItemRealMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc;} +.mceItemShockWave {background-image: url(../img/shockwave.gif);} +.mceItemFlash {background-image:url(../img/flash.gif);} +.mceItemQuickTime {background-image:url(../img/quicktime.gif);} +.mceItemWindowsMedia {background-image:url(../img/windowsmedia.gif);} +.mceItemRealMedia {background-image:url(../img/realmedia.gif);} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/media.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/media.css new file mode 100644 index 0000000..0c45c7f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/css/media.css @@ -0,0 +1,17 @@ +#id, #name, #hspace, #vspace, #class_name, #align { width: 100px } +#hspace, #vspace { width: 50px } +#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px } +#flash_base, #flash_flashvars, #html5_altsource1, #html5_altsource2, #html5_poster { width: 240px } +#width, #height { width: 40px } +#src, #media_type { width: 250px } +#class { width: 120px } +#prev { margin: 0; border: 1px solid black; width: 380px; height: 260px; overflow: auto } +.panel_wrapper div.current { height: 420px; overflow: auto } +#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none } +.mceAddSelectValue { background-color: #DDDDDD } +#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { width: 70px } +#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px } +#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px } +#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px } +#qt_qtsrc { width: 200px } +iframe {border: 1px solid gray} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js new file mode 100644 index 0000000..6621907 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js @@ -0,0 +1 @@ +(function(){var d=tinymce.explode("id,name,width,height,style,align,class,hspace,vspace,bgcolor,type"),h=tinymce.makeMap(d.join(",")),b=tinymce.html.Node,f,a,g=tinymce.util.JSON,e;f=[["Flash","d27cdb6e-ae6d-11cf-96b8-444553540000","application/x-shockwave-flash","http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"],["ShockWave","166b1bca-3f9c-11cf-8075-444553540000","application/x-director","http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0"],["WindowsMedia","6bf52a52-394a-11d3-b153-00c04f79faa6,22d6f312-b0f6-11d0-94ab-0080c74c7e95,05589fa1-c356-11ce-bf01-00aa0055595a","application/x-mplayer2","http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"],["QuickTime","02bf25d5-8c17-4b23-bc80-d3488abddc6b","video/quicktime","http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"],["RealMedia","cfcdaa03-8be4-11cf-b84b-0020afbbccfa","audio/x-pn-realaudio-plugin","http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"],["Java","8ad9c840-044e-11d1-b3e9-00805f499d93","application/x-java-applet","http://java.sun.com/products/plugin/autodl/jinstall-1_5_0-windows-i586.cab#Version=1,5,0,0"],["Silverlight","dfeaf541-f3e1-4c24-acac-99c30715084a","application/x-silverlight-2"],["Iframe"],["Video"]];function c(m){var l,j,k;if(m&&!m.splice){j=[];for(k=0;true;k++){if(m[k]){j[k]=m[k]}else{break}}return j}return m}tinymce.create("tinymce.plugins.MediaPlugin",{init:function(n,j){var r=this,l={},m,p,q,k;function o(i){return i&&i.nodeName==="IMG"&&n.dom.hasClass(i,"mceItemMedia")}r.editor=n;r.url=j;a="";for(m=0;m0){L+=(L?"&":"")+M+"="+escape(N)}});if(L.length){D.params.flashvars=L}I=o.getParam("flash_video_player_params",{allowfullscreen:true,allowscriptaccess:true});tinymce.each(I,function(N,M){D.params[M]=""+N})}}D=g.parse(x.attr("data-mce-json"));p=this.getType(x.attr("class"));z=x.attr("data-mce-style");if(!z){z=x.attr("style");if(z){z=o.dom.serializeStyle(o.dom.parseStyle(z,"img"))}}if(p.name==="Iframe"){v=new b("iframe",1);tinymce.each(d,function(i){var G=x.attr(i);if(i=="class"&&G){G=G.replace(/mceItem.+ ?/g,"")}if(G&&G.length>0){v.attr(i,G)}});for(F in D.params){v.attr(F,D.params[F])}v.attr({style:z,src:D.params.src});x.replace(v);return}if(this.editor.settings.media_use_script){v=new b("script",1).attr("type","text/javascript");w=new b("#text",3);w.value="write"+p.name+"("+g.serialize(tinymce.extend(D.params,{width:x.attr("width"),height:x.attr("height")}))+");";v.append(w);x.replace(v);return}if(p.name==="Video"&&D.video.sources[0]){A=new b("video",1).attr(tinymce.extend({id:x.attr("id"),width:x.attr("width"),height:x.attr("height"),style:z},D.video.attrs));if(D.video.attrs){l=D.video.attrs.poster}k=D.video.sources=c(D.video.sources);for(y=0;y 0) + flashVarsOutput += (flashVarsOutput ? '&' : '') + name + '=' + escape(value); + }); + + if (flashVarsOutput.length) + data.params.flashvars = flashVarsOutput; + + params = editor.getParam('flash_video_player_params', { + allowfullscreen: true, + allowscriptaccess: true + }); + + tinymce.each(params, function(value, name) { + data.params[name] = "" + value; + }); + } + }; + + data = JSON.parse(node.attr('data-mce-json')); + typeItem = this.getType(node.attr('class')); + + style = node.attr('data-mce-style') + if (!style) { + style = node.attr('style'); + + if (style) + style = editor.dom.serializeStyle(editor.dom.parseStyle(style, 'img')); + } + + // Handle iframe + if (typeItem.name === 'Iframe') { + replacement = new Node('iframe', 1); + + tinymce.each(rootAttributes, function(name) { + var value = node.attr(name); + + if (name == 'class' && value) + value = value.replace(/mceItem.+ ?/g, ''); + + if (value && value.length > 0) + replacement.attr(name, value); + }); + + for (name in data.params) + replacement.attr(name, data.params[name]); + + replacement.attr({ + style: style, + src: data.params.src + }); + + node.replace(replacement); + + return; + } + + // Handle scripts + if (this.editor.settings.media_use_script) { + replacement = new Node('script', 1).attr('type', 'text/javascript'); + + value = new Node('#text', 3); + value.value = 'write' + typeItem.name + '(' + JSON.serialize(tinymce.extend(data.params, { + width: node.attr('width'), + height: node.attr('height') + })) + ');'; + + replacement.append(value); + node.replace(replacement); + + return; + } + + // Add HTML5 video element + if (typeItem.name === 'Video' && data.video.sources[0]) { + // Create new object element + video = new Node('video', 1).attr(tinymce.extend({ + id : node.attr('id'), + width: node.attr('width'), + height: node.attr('height'), + style : style + }, data.video.attrs)); + + // Get poster source and use that for flash fallback + if (data.video.attrs) + posterSrc = data.video.attrs.poster; + + sources = data.video.sources = toArray(data.video.sources); + for (i = 0; i < sources.length; i++) { + if (/\.mp4$/.test(sources[i].src)) + mp4Source = sources[i].src; + } + + if (!sources[0].type) { + video.attr('src', sources[0].src); + sources.splice(0, 1); + } + + for (i = 0; i < sources.length; i++) { + source = new Node('source', 1).attr(sources[i]); + source.shortEnded = true; + video.append(source); + } + + // Create flash fallback for video if we have a mp4 source + if (mp4Source) { + addPlayer(mp4Source, posterSrc); + typeItem = self.getType('flash'); + } else + data.params.src = ''; + } + + // Do we have a params src then we can generate object + if (data.params.src) { + // Is flv movie add player for it + if (/\.flv$/i.test(data.params.src)) + addPlayer(data.params.src, ''); + + if (args && args.force_absolute) + data.params.src = editor.documentBaseURI.toAbsolute(data.params.src); + + // Create new object element + object = new Node('object', 1).attr({ + id : node.attr('id'), + width: node.attr('width'), + height: node.attr('height'), + style : style + }); + + tinymce.each(rootAttributes, function(name) { + if (data[name] && name != 'type') + object.attr(name, data[name]); + }); + + // Add params + for (name in data.params) { + param = new Node('param', 1); + param.shortEnded = true; + value = data.params[name]; + + // Windows media needs to use url instead of src for the media URL + if (name === 'src' && typeItem.name === 'WindowsMedia') + name = 'url'; + + param.attr({name: name, value: value}); + object.append(param); + } + + // Setup add type and classid if strict is disabled + if (this.editor.getParam('media_strict', true)) { + object.attr({ + data: data.params.src, + type: typeItem.mimes[0] + }); + } else { + object.attr({ + classid: "clsid:" + typeItem.clsids[0], + codebase: typeItem.codebase + }); + + embed = new Node('embed', 1); + embed.shortEnded = true; + embed.attr({ + id: node.attr('id'), + width: node.attr('width'), + height: node.attr('height'), + style : style, + type: typeItem.mimes[0] + }); + + for (name in data.params) + embed.attr(name, data.params[name]); + + tinymce.each(rootAttributes, function(name) { + if (data[name] && name != 'type') + embed.attr(name, data[name]); + }); + + object.append(embed); + } + + // Insert raw HTML + if (data.object_html) { + value = new Node('#text', 3); + value.raw = true; + value.value = data.object_html; + object.append(value); + } + + // Append object to video element if it exists + if (video) + video.append(object); + } + + if (video) { + // Insert raw HTML + if (data.video_html) { + value = new Node('#text', 3); + value.raw = true; + value.value = data.video_html; + video.append(value); + } + } + + if (video || object) + node.replace(video || object); + else + node.remove(); + }, + + /** + * Converts a tinymce.html.Node video/object/embed to an img element. + * + * The video/object/embed will be converted into an image placeholder with a JSON data attribute like this: + * + * + * The JSON structure will be like this: + * {'params':{'flashvars':'something','quality':'high','src':'someurl'}, 'video':{'sources':[{src: 'someurl', type: 'video/mp4'}]}} + */ + objectToImg : function(node) { + var object, embed, video, iframe, img, name, id, width, height, style, i, html, + param, params, source, sources, data, type, lookup = this.lookup, + matches, attrs, urlConverter = this.editor.settings.url_converter, + urlConverterScope = this.editor.settings.url_converter_scope; + + function getInnerHTML(node) { + return new tinymce.html.Serializer({ + inner: true, + validate: false + }).serialize(node); + }; + + // If node isn't in document + if (!node.parent) + return; + + // Handle media scripts + if (node.name === 'script') { + if (node.firstChild) + matches = scriptRegExp.exec(node.firstChild.value); + + if (!matches) + return; + + type = matches[1]; + data = {video : {}, params : JSON.parse(matches[2])}; + width = data.params.width; + height = data.params.height; + } + + // Setup data objects + data = data || { + video : {}, + params : {} + }; + + // Setup new image object + img = new Node('img', 1); + img.attr({ + src : this.editor.theme.url + '/img/trans.gif' + }); + + // Video element + name = node.name; + if (name === 'video') { + video = node; + object = node.getAll('object')[0]; + embed = node.getAll('embed')[0]; + width = video.attr('width'); + height = video.attr('height'); + id = video.attr('id'); + data.video = {attrs : {}, sources : []}; + + // Get all video attributes + attrs = data.video.attrs; + for (name in video.attributes.map) + attrs[name] = video.attributes.map[name]; + + source = node.attr('src'); + if (source) + data.video.sources.push({src : urlConverter.call(urlConverterScope, source, 'src', 'video')}); + + // Get all sources + sources = video.getAll("source"); + for (i = 0; i < sources.length; i++) { + source = sources[i].remove(); + + data.video.sources.push({ + src: urlConverter.call(urlConverterScope, source.attr('src'), 'src', 'source'), + type: source.attr('type'), + media: source.attr('media') + }); + } + + // Convert the poster URL + if (attrs.poster) + attrs.poster = urlConverter.call(urlConverterScope, attrs.poster, 'poster', 'video'); + } + + // Object element + if (node.name === 'object') { + object = node; + embed = node.getAll('embed')[0]; + } + + // Embed element + if (node.name === 'embed') + embed = node; + + // Iframe element + if (node.name === 'iframe') { + iframe = node; + type = 'Iframe'; + } + + if (object) { + // Get width/height + width = width || object.attr('width'); + height = height || object.attr('height'); + style = style || object.attr('style'); + id = id || object.attr('id'); + + // Get all object params + params = object.getAll("param"); + for (i = 0; i < params.length; i++) { + param = params[i]; + name = param.remove().attr('name'); + + if (!excludedAttrs[name]) + data.params[name] = param.attr('value'); + } + + data.params.src = data.params.src || object.attr('data'); + } + + if (embed) { + // Get width/height + width = width || embed.attr('width'); + height = height || embed.attr('height'); + style = style || embed.attr('style'); + id = id || embed.attr('id'); + + // Get all embed attributes + for (name in embed.attributes.map) { + if (!excludedAttrs[name] && !data.params[name]) + data.params[name] = embed.attributes.map[name]; + } + } + + if (iframe) { + // Get width/height + width = iframe.attr('width'); + height = iframe.attr('height'); + style = style || iframe.attr('style'); + id = iframe.attr('id'); + + tinymce.each(rootAttributes, function(name) { + img.attr(name, iframe.attr(name)); + }); + + // Get all iframe attributes + for (name in iframe.attributes.map) { + if (!excludedAttrs[name] && !data.params[name]) + data.params[name] = iframe.attributes.map[name]; + } + } + + // Use src not movie + if (data.params.movie) { + data.params.src = data.params.src || data.params.movie; + delete data.params.movie; + } + + // Convert the URL to relative/absolute depending on configuration + if (data.params.src) + data.params.src = urlConverter.call(urlConverterScope, data.params.src, 'src', 'object'); + + if (video) + type = lookup.video.name; + + if (object && !type) + type = (lookup[(object.attr('clsid') || '').toLowerCase()] || lookup[(object.attr('type') || '').toLowerCase()] || {}).name; + + if (embed && !type) + type = (lookup[(embed.attr('type') || '').toLowerCase()] || {}).name; + + // Replace the video/object/embed element with a placeholder image containing the data + node.replace(img); + + // Remove embed + if (embed) + embed.remove(); + + // Serialize the inner HTML of the object element + if (object) { + html = getInnerHTML(object.remove()); + + if (html) + data.object_html = html; + } + + // Serialize the inner HTML of the video element + if (video) { + html = getInnerHTML(video.remove()); + + if (html) + data.video_html = html; + } + + // Set width/height of placeholder + img.attr({ + id : id, + 'class' : 'mceItemMedia mceItem' + (type || 'Flash'), + style : style, + width : width || "320", + height : height || "240", + "data-mce-json" : JSON.serialize(data, "'") + }); + } + }); + + // Register plugin + tinymce.PluginManager.add('media', tinymce.plugins.MediaPlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flash.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flash.gif new file mode 100644 index 0000000..cb192e6 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flash.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flv_player.swf b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flv_player.swf new file mode 100644 index 0000000..042c2ab Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/flv_player.swf differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/quicktime.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/quicktime.gif new file mode 100644 index 0000000..3b04991 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/quicktime.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/realmedia.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/realmedia.gif new file mode 100644 index 0000000..fdfe0b9 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/realmedia.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/shockwave.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/shockwave.gif new file mode 100644 index 0000000..5f235df Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/shockwave.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif new file mode 100644 index 0000000..3884865 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/windowsmedia.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/windowsmedia.gif new file mode 100644 index 0000000..ab50f2d Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/img/windowsmedia.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js new file mode 100644 index 0000000..f8dc810 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js @@ -0,0 +1,73 @@ +/** + * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose. + */ + +function writeFlash(p) { + writeEmbed( + 'D27CDB6E-AE6D-11cf-96B8-444553540000', + 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', + 'application/x-shockwave-flash', + p + ); +} + +function writeShockWave(p) { + writeEmbed( + '166B1BCA-3F9C-11CF-8075-444553540000', + 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0', + 'application/x-director', + p + ); +} + +function writeQuickTime(p) { + writeEmbed( + '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B', + 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0', + 'video/quicktime', + p + ); +} + +function writeRealMedia(p) { + writeEmbed( + 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA', + 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', + 'audio/x-pn-realaudio-plugin', + p + ); +} + +function writeWindowsMedia(p) { + p.url = p.src; + writeEmbed( + '6BF52A52-394A-11D3-B153-00C04F79FAA6', + 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701', + 'application/x-mplayer2', + p + ); +} + +function writeEmbed(cls, cb, mt, p) { + var h = '', n; + + h += ''; + + h += ''); + + function get(id) { + return document.getElementById(id); + } + + function getVal(id) { + var elm = get(id); + + if (elm.nodeName == "SELECT") + return elm.options[elm.selectedIndex].value; + + if (elm.type == "checkbox") + return elm.checked; + + return elm.value; + } + + function setVal(id, value) { + if (typeof(value) != 'undefined') { + var elm = get(id); + + if (elm.nodeName == "SELECT") + selectByValue(document.forms[0], id, value); + else if (elm.type == "checkbox") { + if (typeof(value) == 'string') + elm.checked = value.toLowerCase() === 'true' ? true : false; + else + elm.checked = !!value; + } else + elm.value = value; + } + } + + window.Media = { + init : function() { + var html, editor; + + this.editor = editor = tinyMCEPopup.editor; + + // Setup file browsers and color pickers + get('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media'); + get('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','quicktime_qtsrc','media','media'); + get('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); + get('video_altsource1_filebrowser').innerHTML = getBrowserHTML('filebrowser_altsource1','video_altsource1','media','media'); + get('video_altsource2_filebrowser').innerHTML = getBrowserHTML('filebrowser_altsource2','video_altsource2','media','media'); + get('video_poster_filebrowser').innerHTML = getBrowserHTML('filebrowser_poster','video_poster','media','image'); + + html = this.getMediaListHTML('medialist', 'src', 'media', 'media'); + if (html == "") + get("linklistrow").style.display = 'none'; + else + get("linklistcontainer").innerHTML = html; + + if (isVisible('filebrowser')) + get('src').style.width = '230px'; + + if (isVisible('filebrowser_altsource1')) + get('video_altsource1').style.width = '220px'; + + if (isVisible('filebrowser_altsource2')) + get('video_altsource2').style.width = '220px'; + + if (isVisible('filebrowser_poster')) + get('video_poster').style.width = '220px'; + + this.data = tinyMCEPopup.getWindowArg('data'); + this.dataToForm(); + this.preview(); + }, + + insert : function() { + var editor = tinyMCEPopup.editor; + + this.formToData(); + editor.execCommand('mceRepaint'); + tinyMCEPopup.restoreSelection(); + editor.selection.setNode(editor.plugins.media.dataToImg(this.data)); + tinyMCEPopup.close(); + }, + + preview : function() { + get('prev').innerHTML = this.editor.plugins.media.dataToHtml(this.data, true); + }, + + moveStates : function(to_form, field) { + var data = this.data, editor = this.editor, data = this.data, + mediaPlugin = editor.plugins.media, ext, src, typeInfo, defaultStates, src; + + defaultStates = { + // QuickTime + quicktime_autoplay : true, + quicktime_controller : true, + + // Flash + flash_play : true, + flash_loop : true, + flash_menu : true, + + // WindowsMedia + windowsmedia_autostart : true, + windowsmedia_enablecontextmenu : true, + windowsmedia_invokeurls : true, + + // RealMedia + realmedia_autogotourl : true, + realmedia_imagestatus : true + }; + + function parseQueryParams(str) { + var out = {}; + + if (str) { + tinymce.each(str.split('&'), function(item) { + var parts = item.split('='); + + out[unescape(parts[0])] = unescape(parts[1]); + }); + } + + return out; + }; + + function setOptions(type, names) { + var i, name, formItemName, value, list; + + if (type == data.type || type == 'global') { + names = tinymce.explode(names); + for (i = 0; i < names.length; i++) { + name = names[i]; + formItemName = type == 'global' ? name : type + '_' + name; + + if (type == 'global') + list = data; + else if (type == 'video') { + list = data.video.attrs; + + if (!list && !to_form) + data.video.attrs = list = {}; + } else + list = data.params; + + if (list) { + if (to_form) { + setVal(formItemName, list[name]); + } else { + delete list[name]; + + value = getVal(formItemName); + if (type == 'video' && value === true) + value = name; + + if (defaultStates[formItemName]) { + if (value !== defaultStates[formItemName]) { + value = "" + value; + list[name] = value; + } + } else if (value) { + value = "" + value; + list[name] = value; + } + } + } + } + } + } + + if (!to_form) { + data.type = get('media_type').options[get('media_type').selectedIndex].value; + data.width = getVal('width'); + data.height = getVal('height'); + + // Switch type based on extension + src = getVal('src'); + if (field == 'src') { + ext = src.replace(/^.*\.([^.]+)$/, '$1'); + if (typeInfo = mediaPlugin.getType(ext)) + data.type = typeInfo.name.toLowerCase(); + + setVal('media_type', data.type); + } + + if (data.type == "video") { + if (!data.video.sources) + data.video.sources = []; + + data.video.sources[0] = {src: getVal('src')}; + } + } + + // Hide all fieldsets and show the one active + get('video_options').style.display = 'none'; + get('flash_options').style.display = 'none'; + get('quicktime_options').style.display = 'none'; + get('shockwave_options').style.display = 'none'; + get('windowsmedia_options').style.display = 'none'; + get('realmedia_options').style.display = 'none'; + + if (get(data.type + '_options')) + get(data.type + '_options').style.display = 'block'; + + setVal('media_type', data.type); + + setOptions('flash', 'play,loop,menu,swliveconnect,quality,scale,salign,wmode,base,flashvars'); + setOptions('quicktime', 'loop,autoplay,cache,controller,correction,enablejavascript,kioskmode,autohref,playeveryframe,targetcache,scale,starttime,endtime,target,qtsrcchokespeed,volume,qtsrc'); + setOptions('shockwave', 'sound,progress,autostart,swliveconnect,swvolume,swstretchstyle,swstretchhalign,swstretchvalign'); + setOptions('windowsmedia', 'autostart,enabled,enablecontextmenu,fullscreen,invokeurls,mute,stretchtofit,windowlessvideo,balance,baseurl,captioningid,currentmarker,currentposition,defaultframe,playcount,rate,uimode,volume'); + setOptions('realmedia', 'autostart,loop,autogotourl,center,imagestatus,maintainaspect,nojava,prefetch,shuffle,console,controls,numloop,scriptcallbacks'); + setOptions('video', 'poster,autoplay,loop,preload,controls'); + setOptions('global', 'id,name,vspace,hspace,bgcolor,align,width,height'); + + if (to_form) { + if (data.type == 'video') { + if (data.video.sources[0]) + setVal('src', data.video.sources[0].src); + + src = data.video.sources[1]; + if (src) + setVal('video_altsource1', src.src); + + src = data.video.sources[2]; + if (src) + setVal('video_altsource2', src.src); + } else { + // Check flash vars + if (data.type == 'flash') { + tinymce.each(editor.getParam('flash_video_player_flashvars', {url : '$url', poster : '$poster'}), function(value, name) { + if (value == '$url') + data.params.src = parseQueryParams(data.params.flashvars)[name] || data.params.src; + }); + } + + setVal('src', data.params.src); + } + } else { + src = getVal("src"); + + // YouTube + if (src.match(/youtube.com(.+)v=([^&]+)/)) { + data.width = 425; + data.height = 350; + data.params.frameborder = '0'; + data.type = 'iframe'; + src = 'http://www.youtube.com/embed/' + src.match(/v=([^&]+)/)[1]; + setVal('src', src); + setVal('media_type', data.type); + } + + // Google video + if (src.match(/video.google.com(.+)docid=([^&]+)/)) { + data.width = 425; + data.height = 326; + data.type = 'flash'; + src = 'http://video.google.com/googleplayer.swf?docId=' + src.match(/docid=([^&]+)/)[1] + '&hl=en'; + setVal('src', src); + setVal('media_type', data.type); + } + + if (data.type == 'video') { + if (!data.video.sources) + data.video.sources = []; + + data.video.sources[0] = {src : src}; + + src = getVal("video_altsource1"); + if (src) + data.video.sources[1] = {src : src}; + + src = getVal("video_altsource2"); + if (src) + data.video.sources[2] = {src : src}; + } else + data.params.src = src; + + // Set default size + setVal('width', data.width || 320); + setVal('height', data.height || 240); + } + }, + + dataToForm : function() { + this.moveStates(true); + }, + + formToData : function(field) { + if (field == "width" || field == "height") + this.changeSize(field); + + if (field == 'source') { + this.moveStates(false, field); + setVal('source', this.editor.plugins.media.dataToHtml(this.data)); + this.panel = 'source'; + } else { + if (this.panel == 'source') { + this.data = this.editor.plugins.media.htmlToData(getVal('source')); + this.dataToForm(); + this.panel = ''; + } + + this.moveStates(false, field); + this.preview(); + } + }, + + beforeResize : function() { + this.width = parseInt(getVal('width') || "320", 10); + this.height = parseInt(getVal('height') || "240", 10); + }, + + changeSize : function(type) { + var width, height, scale, size; + + if (get('constrain').checked) { + width = parseInt(getVal('width') || "320", 10); + height = parseInt(getVal('height') || "240", 10); + + if (type == 'width') { + this.height = Math.round((width / this.width) * height); + setVal('height', this.height); + } else { + this.width = Math.round((height / this.height) * width); + setVal('width', this.width); + } + } + }, + + getMediaListHTML : function() { + if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) { + var html = ""; + + html += ''; + + return html; + } + + return ""; + } + }; + + tinyMCEPopup.requireLangPack(); + tinyMCEPopup.onInit.add(function() { + Media.init(); + }); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/de_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/de_dlg.js new file mode 100644 index 0000000..4b3d7f6 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/de_dlg.js @@ -0,0 +1,103 @@ +tinyMCE.addI18n('de.media_dlg',{ +title:"Multimedia-Inhalte einf\u00FCgen/bearbeiten", +general:"Allgemein", +advanced:"Erweitert", +file:"Datei/URL", +list:"Liste", +size:"Abmessungen", +preview:"Vorschau", +constrain_proportions:"Proportionen erhalten", +type:"Typ", +id:"Id", +name:"Name", +class_name:"CSS-Klasse", +vspace:"Vertikaler Abstand", +hspace:"Horizontaler Abstand", +play:"Automatisches Abspielen", +loop:"Wiederholung", +menu:"Men\u00FC anzeigen", +quality:"Qualit\u00E4t", +scale:"Skalierung", +align:"Ausrichtung", +salign:"S-Ausrichtung", +wmode:"WMode", +bgcolor:"Hintergrund", +base:"Base", +flashvars:"Flashvariablen", +liveconnect:"SWLiveConnect", +autohref:"AutoHREF", +cache:"Zwischenspeicher", +hidden:"Versteckt", +controller:"Controller", +kioskmode:"Kioskmodus", +playeveryframe:"Jeden Frame abspielen", +targetcache:"Ziel zwischenspeichern", +correction:"Ohne Korrektur", +enablejavascript:"JavaScript aktivieren", +starttime:"Startzeitpunkt", +endtime:"Endzeitpunkt", +href:"Href", +qtsrcchokespeed:"Choke speed", +target:"Ziel", +volume:"Lautst\u00E4rke", +autostart:"Autostart", +enabled:"Aktiviert", +fullscreen:"Vollbild", +invokeurls:"Invoke URLs", +mute:"Stumm", +stretchtofit:"Anzeigefl\u00E4che an verf\u00FCgbaren Platz anpassen", +windowlessvideo:"Fensterloses Video", +balance:"Balance", +baseurl:"Base URL", +captioningid:"Captioning id", +currentmarker:"Aktueller Marker", +currentposition:"Aktuelle Position", +defaultframe:"Frame-Voreinstellung", +playcount:"Z\u00E4hler", +rate:"Rate", +uimode:"UI Modus", +flash_options:"Flash-Optionen", +qt_options:"Quicktime-Optionen", +wmp_options:"Optionen f\u00FCr Windows Media Player", +rmp_options:"Optionen f\u00FCr Real Media Player", +shockwave_options:"Shockwave-Optionen", +autogotourl:"Auto goto URL", +center:"Zentriert", +imagestatus:"Bildstatus", +maintainaspect:"Bildverh\u00E4ltnis beibehalten", +nojava:"Kein Java", +prefetch:"Prefetch", +shuffle:"Zuf\u00E4llige Wiedergabe", +console:"Konsole", +numloop:"Anzahl Wiederholungen", +controls:"Steuerung", +scriptcallbacks:"Script callbacks", +swstretchstyle:"Stretch style", +swstretchhalign:"Stretch H-Ausrichtung", +swstretchvalign:"Stretch V-Ausrichtung", +sound:"Ton", +progress:"Fortschritt", +qtsrc:"QT Src", +qt_stream_warn:"In den Erweiterten Einstellungen sollten im Feld 'QT Src' gestreamte RTSP Resourcen hinzugef\u00FCgt werden.\nZus\u00E4tzlich sollten Sie dort auch eine nicht-gestreamte Resource angeben.", +align_top:"Oben", +align_right:"Rechts", +align_bottom:"Unten", +align_left:"Links", +align_center:"Zentriert", +align_top_left:"Oben Links", +align_top_right:"Oben Rechts", +align_bottom_left:"Unten Links", +align_bottom_right:"Unten Rechts", +flv_options:"Optionen f\u00FCr Flash Video", +flv_scalemode:"Skalierungsmodus", +flv_buffer:"Puffer", +flv_startimage:"Startbild", +flv_starttime:"Startzeitpunkt", +flv_defaultvolume:"Standardlautst\u00E4rke", +flv_hiddengui:"Versteckte GUI", +flv_autostart:"Autostart", +flv_loop:"Wiederholung", +flv_showscalemodes:"Skalierungsmodi anzeigen", +flv_smoothvideo:"Smooth Video", +flv_jscallback:"JS Callback" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js new file mode 100644 index 0000000..29d26a0 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js @@ -0,0 +1,109 @@ +tinyMCE.addI18n('en.media_dlg',{ +title:"Insert / edit embedded media", +general:"General", +advanced:"Advanced", +file:"File/URL", +list:"List", +size:"Dimensions", +preview:"Preview", +constrain_proportions:"Constrain proportions", +type:"Type", +id:"Id", +name:"Name", +class_name:"Class", +vspace:"V-Space", +hspace:"H-Space", +play:"Auto play", +loop:"Loop", +menu:"Show menu", +quality:"Quality", +scale:"Scale", +align:"Align", +salign:"SAlign", +wmode:"WMode", +bgcolor:"Background", +base:"Base", +flashvars:"Flashvars", +liveconnect:"SWLiveConnect", +autohref:"AutoHREF", +cache:"Cache", +hidden:"Hidden", +controller:"Controller", +kioskmode:"Kiosk mode", +playeveryframe:"Play every frame", +targetcache:"Target cache", +correction:"No correction", +enablejavascript:"Enable JavaScript", +starttime:"Start time", +endtime:"End time", +href:"Href", +qtsrcchokespeed:"Choke speed", +target:"Target", +volume:"Volume", +autostart:"Auto start", +enabled:"Enabled", +fullscreen:"Fullscreen", +invokeurls:"Invoke URLs", +mute:"Mute", +stretchtofit:"Stretch to fit", +windowlessvideo:"Windowless video", +balance:"Balance", +baseurl:"Base URL", +captioningid:"Captioning id", +currentmarker:"Current marker", +currentposition:"Current position", +defaultframe:"Default frame", +playcount:"Play count", +rate:"Rate", +uimode:"UI Mode", +flash_options:"Flash options", +qt_options:"Quicktime options", +wmp_options:"Windows media player options", +rmp_options:"Real media player options", +shockwave_options:"Shockwave options", +autogotourl:"Auto goto URL", +center:"Center", +imagestatus:"Image status", +maintainaspect:"Maintain aspect", +nojava:"No java", +prefetch:"Prefetch", +shuffle:"Shuffle", +console:"Console", +numloop:"Num loops", +controls:"Controls", +scriptcallbacks:"Script callbacks", +swstretchstyle:"Stretch style", +swstretchhalign:"Stretch H-Align", +swstretchvalign:"Stretch V-Align", +sound:"Sound", +progress:"Progress", +qtsrc:"QT Src", +qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..", +align_top:"Top", +align_right:"Right", +align_bottom:"Bottom", +align_left:"Left", +align_center:"Center", +align_top_left:"Top left", +align_top_right:"Top right", +align_bottom_left:"Bottom left", +align_bottom_right:"Bottom right", +flv_options:"Flash video options", +flv_scalemode:"Scale mode", +flv_buffer:"Buffer", +flv_starttime:"Start time", +flv_defaultvolume:"Default volumne", +flv_hiddengui:"Hidden GUI", +flv_autostart:"Auto start", +flv_loop:"Loop", +flv_showscalemodes:"Show scale modes", +flv_smoothvideo:"Smooth video", +flv_jscallback:"JS Callback", +html5_video_options:"HTML5 Video Options", +altsource1:"Alternative source 1", +altsource2:"Alternative source 2", +preload:"Preload", +poster:"Poster", + +source:"Source" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/eo_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/eo_dlg.js new file mode 100644 index 0000000..69b67bb --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/eo_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.media_dlg',{list:"Listo",file:"Dosiero/Adreso",advanced:"Sperta",general:"\u0108efa",title:"Enmeti/Redakti enhavon enkonstruitan","align_top_left":"Supre-maldekstre","align_center":"Meze","align_left":"Maldekstre","align_bottom":"Sube","align_right":"Dekstre","align_top":"Supre","qt_stream_warn":"Fluoj de risurcoj rtsp devas esti aldonitaj al la kampo QT Src en la Sperta Re\u011dimo.\\nVersio sen fluo anka\u016d devas esti aldonita al la kampo Src.",qtsrc:"QT Src",progress:"Progreso",sound:"Sono",swstretchvalign:"Devigi V-Liniigon",swstretchhalign:"Devigi H-Liniigon",swstretchstyle:"Devigi Stilon",scriptcallbacks:"Revokojn de skriptoj","align_top_right":"Supre-dekstre",uimode:"UI-re\u011dimo",rate:"Rapido",playcount:"Kalkulo de a\u016dskultantoj",defaultframe:"Defa\u016dlta kadro",currentposition:"Aktuala pozicio",currentmarker:"Aktuala markilo",captioningid:"ID de subteksto",baseurl:"Baza URL",balance:"Stereo",windowlessvideo:"Video sen fenestro",stretchtofit:"Etendi",mute:"Sen sono",invokeurls:"Voki URL-oj",fullscreen:"Plenekrane",enabled:"Aktiva",autostart:"A\u016dtomata starto",volume:"La\u016dteco",target:"Celo",qtsrcchokespeed:"Malrapidigi",href:"Ligilo",endtime:"Tempo de fino",starttime:"Tempo de komenco",enablejavascript:"Aktivigi JavaScript-on",correction:"Sen correktoj",targetcache:"Cela ka\u015dmemoro",playeveryframe:"Ludi \u0109iujn kadrojn",kioskmode:"Kioskre\u011dimo",controller:"Kontrolilo",menu:"Montri menuon",loop:"A\u016dtomata ripetado",play:"A\u016dtomata starto",hspace:"Horizontala spaco",vspace:"Verticala spaco","class_name":"Klaso",name:"Nomo",id:"Id",type:"Tipo",size:"Dimensioj",preview:"Anta\u016dvido","constrain_proportions":"Konservi proporcion",controls:"Komandoj",numloop:"Ripetado",console:"Konzolo",cache:"Ka\u015dmemoro",autohref:"A\u016dtoHREF",liveconnect:"SWLiveConnect",flashvars:"Flashvars",base:"Bazo",bgcolor:"Fono",wmode:"WMode",salign:"SAlign",align:"Liniigo",scale:"Skalo",quality:"Kvalito",shuffle:"Hazarda ordo",prefetch:"Anta\u016dvenigi",nojava:"Sen Java",maintainaspect:"Konservi aspekton",imagestatus:"Stato de bildo",center:"Centro",autogotourl:"A\u016dtomate malfermi adreson","shockwave_options":"Agordoj de Shockwave","rmp_options":"Agordoj de Real Media Player","wmp_options":"Agordoj de Windows Media Player","qt_options":"Agordoj de Quicktime","flash_options":"Agordoj de Flash",hidden:"Ka\u015dita","align_bottom_left":"Sube-maldekstre","align_bottom_right":"Sube-dekstre","flv_options":"Agordoj de Flash video","flv_scalemode":"Skalre\u011dimo","flv_buffer":"Bufro","flv_startimage":"Komenca bildo","flv_starttime":"Komenca tempo","flv_defaultvolume":"Defa\u016dlta la\u016dteco","flv_hiddengui":"GUI ka\u015dita","flv_autostart":"A\u016dtomata starto","flv_loop":"Ripetado","flv_showscalemodes":"Montri skalre\u011dimojn","flv_smoothvideo":"Glatigi videon","flv_jscallback":"Revoko de JS","html5_video_options":"Agordoj pri HTML5-video",altsource1:"Alternativa kodo 1",altsource2:"Alternativa kodo 2",preload:"Anta\u016d\u015dargi",poster:"Afi\u015do",source:"Fonto"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/es_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/es_dlg.js new file mode 100644 index 0000000..7765ab3 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/es_dlg.js @@ -0,0 +1,103 @@ +tinyMCE.addI18n('es.media_dlg',{ +title:"Insertar/editar medio embebido", +general:"General", +advanced:"Avanzado", +file:"Archivo/URL", +list:"Lista", +size:"Dimensiones", +preview:"Vista Previa", +constrain_proportions:"Bloquear relaci\u00F3n de aspecto", +type:"Tipo", +id:"Id", +name:"Nombre", +class_name:"Clase", +vspace:"V-Space", +hspace:"H-Space", +play:"Comienzo Autom\u00E1tico", +loop:"Repetitivo", +menu:"Mostrar Men\u00FA", +quality:"Calidad", +scale:"Scale", +align:"Alineaci\u00F3n", +salign:"SAlign", +wmode:"WMode", +bgcolor:"Fondo", +base:"Base", +flashvars:"Flashvars", +liveconnect:"SWLiveConnect", +autohref:"AutoHREF", +cache:"Cach\u00E9", +hidden:"Hidden", +controller:"Controller", +kioskmode:"Kiosk mode", +playeveryframe:"Reproducir todo los frames", +targetcache:"Target cache", +correction:"Sin correci\u00F3n", +enablejavascript:"Habilitar JavaScript", +starttime:"Inicio", +endtime:"Fin", +href:"Href", +qtsrcchokespeed:"Vel. de choque", +target:"Target", +volume:"Volumen", +autostart:"Comienzo Autom\u00E1tico", +enabled:"Habilitado", +fullscreen:"Pantalla Completa", +invokeurls:"Invocar URLs", +mute:"Silencio", +stretchtofit:"Estirar para ajustar", +windowlessvideo:"Video sin ventana", +balance:"Balance", +baseurl:"URL Base", +captioningid:"Captioning id", +currentmarker:"Marcador actual", +currentposition:"Posici\u00F3n actual", +defaultframe:"Frame predet.", +playcount:"Cuantas reproducciones", +rate:"Ratio", +uimode:"Modo UI", +flash_options:"Opciones Flash", +qt_options:"Opciones Quicktime", +wmp_options:"Opciones Windows media player", +rmp_options:"Opciones Real media player", +shockwave_options:"Opciones Shockwave", +autogotourl:"Ir a URL autom\u00E1t.", +center:"Centrado", +imagestatus:"Estado de imagen", +maintainaspect:"Mantener aspecto", +nojava:"No java", +prefetch:"Preb\u00FAsqueda", +shuffle:"Aleatorio", +console:"Consola", +numloop:"N\u00FAm. repeticiones", +controls:"Controles", +scriptcallbacks:"Script callbacks", +swstretchstyle:"Estilo estiramiento", +swstretchhalign:"Alin. H. Estiramiento", +swstretchvalign:"Alin. V. Estiramiento", +sound:"Sonido", +progress:"Progreso", +qtsrc:"QT Src", +qt_stream_warn:"Los recursos rtsp de Streaming deber\u00EDan a\u00F1adirse en el campo QT Src de la pesta\u00F1a avanzada.\nAdem\u00E1s deber\u00EDa a\u00F1adir una versi\u00F3n no Streaming en el campo Src.", +align_top:"Arriba", +align_right:"Derecha", +align_bottom:"Debajo", +align_left:"Izquierda", +align_center:"Centrado", +align_top_left:"Arriba Izda.", +align_top_right:"Arriba Dcha.", +align_bottom_left:"Debajo Izda.", +align_bottom_right:"Debajo Dcha.", +flv_options:"Opciones Video Flash", +flv_scalemode:"Modo escalado", +flv_buffer:"Buffer", +flv_startimage:"Imagen inicio", +flv_starttime:"Tiempo inicio", +flv_defaultvolume:"Volumen predet.", +flv_hiddengui:"Ocultar GUI", +flv_autostart:"Inicio auto.", +flv_loop:"Repetitivo", +flv_showscalemodes:"Mostrar modos escala", +flv_smoothvideo:"Video suave", +flv_jscallback:"JS Callback" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/fr_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/fr_dlg.js new file mode 100644 index 0000000..bcdf7be --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/fr_dlg.js @@ -0,0 +1,103 @@ +tinyMCE.addI18n('fr.media_dlg',{ +title:"Ins\u00E9rer/\u00C9diter un fichier m\u00E9dia", +general:"G\u00E9n\u00E9ral", +advanced:"Avanc\u00E9", +file:"Fichier / URL", +list:"Liste", +size:"Dimensions", +preview:"Pr\u00E9visualiser", +constrain_proportions:"Conserver les proportions", +type:"Type", +id:"Id", +name:"Nom", +class_name:"Classe", +vspace:"Espacement vertical", +hspace:"Espacement horizontal", +play:"Lecture automatique", +loop:"Lire en boucle", +menu:"Afficher le menu", +quality:"Qualit\u00E9", +scale:"\u00C9chelle", +align:"Alignement", +salign:"SAlign", +wmode:"WMode", +bgcolor:"Fond", +base:"Base", +flashvars:"Variables flash", +liveconnect:"SWLiveConnect", +autohref:"AutoHREF", +cache:"Cache", +hidden:"Cach\u00E9", +controller:"Contr\u00F4leur", +kioskmode:"Mode kiosque", +playeveryframe:"Jouer toutes les images", +targetcache:"Cache cible", +correction:"Pas de correction", +enablejavascript:"Activer le JavaScript", +starttime:"Temps de d\u00E9but", +endtime:"Temps de fin", +href:"Href", +qtsrcchokespeed:"Choke speed", +target:"Cible", +volume:"Volume", +autostart:"Lire automatiquement", +enabled:"Activ\u00E9", +fullscreen:"Plein \u00E9cran", +invokeurls:"Invoquer URLs", +mute:"Silence", +stretchtofit:"\u00C9tendre pour adapter la taille", +windowlessvideo:"Vid\u00E9o sans fen\u00EAtre", +balance:"Balance", +baseurl:"Adresse de base", +captioningid:"Captioning id", +currentmarker:"Marqueur actuel", +currentposition:"Position actuelle", +defaultframe:"Image par d\u00E9faut", +playcount:"Compteur", +rate:"Taux", +uimode:"Mode UI", +flash_options:"Options Flash", +qt_options:"Options Quicktime", +wmp_options:"Windows media player options", +rmp_options:"Options Real media player", +shockwave_options:"Options Shockwave", +autogotourl:"Aller automatiquement \u00E0 l'URL", +center:"Centrer", +imagestatus:"Statut de l'image", +maintainaspect:"Maintenir l'aspect", +nojava:"Pas java", +prefetch:"Prefetch", +shuffle:"Al\u00E9atoire", +console:"Console", +numloop:"Nombre de tours", +controls:"Contr\u00F4les", +scriptcallbacks:"Callback de script", +swstretchstyle:"Stretch style", +swstretchhalign:"Stretch horizontal", +swstretchvalign:"Stretch vertical", +sound:"Son", +progress:"Progr\u00E8s", +qtsrc:"QT Src", +qt_stream_warn:"Les ressources stream\u00E9es rtsp doivent \u00EAtre ajout\u00E9es aux champs QT Src dans l'onglet avanc\u00E9.\nVous devriez aussi ajouter une version non stream\u00E9e au QT src.", +align_top:"Haut", +align_right:"Droit", +align_bottom:"Bas", +align_left:"Gauche", +align_center:"Centr\u00E9", +align_top_left:"Haut gauche", +align_top_right:"haut droit", +align_bottom_left:"Bas gauche", +align_bottom_right:"Bas droite", +flv_options:"Options de la vid\u00E9o Flash", +flv_scalemode:"Mode \u00E0 l'\u00E9chelle", +flv_buffer:"Tampon", +flv_startimage:"Image de d\u00E9but", +flv_starttime:"Temps au d\u00E9but", +flv_defaultvolume:"Volume par d\u00E9faut", +flv_hiddengui:"Interface utilisateur cach\u00E9e", +flv_autostart:"D\u00E9marrage automatique", +flv_loop:"En boucle", +flv_showscalemodes:"Montrer les diff\u00E9rentes \u00E9chelles", +flv_smoothvideo:"Vid\u00E9o adoucie", +flv_jscallback:"Callback JavaScript" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ja_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ja_dlg.js new file mode 100644 index 0000000..7fd6262 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ja_dlg.js @@ -0,0 +1,103 @@ +tinyMCE.addI18n('ja.media_dlg',{ +title:"\u57CB\u3081\u8FBC\u307F\u30E1\u30C7\u30A3\u30A2\u306E\u633F\u5165/\u7DE8\u96C6", +general:"\u4E00\u822C", +advanced:"\u4E0A\u7D1A\u8005\u5411\u3051", +file:"\u30D5\u30A1\u30A4\u30EB/URL", +list:"\u4E00\u89A7\u304B\u3089\u9078\u3076", +size:"\u30B5\u30A4\u30BA", +preview:"\u30D7\u30EC\u30D3\u30E5\u30FC", +constrain_proportions:"\u7E26\u6A2A\u6BD4\u3092\u4FDD\u5B58", +type:"\u30BF\u30A4\u30D7", +id:"ID", +name:"\u540D\u524D", +class_name:"\u30AF\u30E9\u30B9", +vspace:"\u4E0A\u4E0B\u4F59\u767D", +hspace:"\u5DE6\u53F3\u4F59\u767D", +play:"\u81EA\u52D5\u518D\u751F", +loop:"\u7E70\u308A\u8FD4\u3057\u518D\u751F", +menu:"\u30E1\u30CB\u30E5\u30FC\u3092\u8868\u793A", +quality:"\u54C1\u8CEA", +scale:"\u4F38\u7E2E", +align:"\u914D\u7F6E", +salign:"SAlign", +wmode:"WMode", +bgcolor:"\u80CC\u666F\u8272", +base:"Base", +flashvars:"Flashvars", +liveconnect:"SWLiveConnect", +autohref:"\u81EA\u52D5\u8AAD\u8FBC", +cache:"\u30AD\u30E3\u30C3\u30B7\u30E5", +hidden:"\u975E\u8868\u793A", +controller:"\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u8868\u793A", +kioskmode:"Kiosk\u30E2\u30FC\u30C9", +playeveryframe:"\u5168\u30D5\u30EC\u30FC\u30E0\u518D\u751F", +targetcache:"\u30BF\u30FC\u30B2\u30C3\u30C8\u30AD\u30E3\u30C3\u30B7\u30E5", +correction:"No correction", +enablejavascript:"JavaScript\u3092\u6709\u52B9\u306B\u3059\u308B", +starttime:"\u958B\u59CB\u30D5\u30EC\u30FC\u30E0", +endtime:"\u7D42\u4E86\u30D5\u30EC\u30FC\u30E0", +href:"\u30EA\u30F3\u30AF\u5148URL", +qtsrcchokespeed:"\u518D\u751F\u30C7\u30FC\u30BF\u30EC\u30FC\u30C8", +target:"\u30BF\u30FC\u30B2\u30C3\u30C8", +volume:"\u97F3\u91CF", +autostart:"\u81EA\u52D5\u518D\u751F", +enabled:"\u6709\u52B9\u306B\u3059\u308B", +fullscreen:"\u30D5\u30EB\u30B9\u30AF\u30EA\u30FC\u30F3", +invokeurls:"URL\u3092\u958B\u304F", +mute:"\u30DF\u30E5\u30FC\u30C8", +stretchtofit:"\u81EA\u52D5\u30B5\u30A4\u30BA\u5909\u66F4", +windowlessvideo:"windowless\u30E2\u30FC\u30C9", +balance:"\u30B9\u30C6\u30EC\u30AA\u306E\u30D0\u30E9\u30F3\u30B9", +baseurl:"Base URL", +captioningid:"\u30AD\u30E3\u30D7\u30B7\u30E7\u30F3\u8868\u793A\u8981\u7D20ID", +currentmarker:"\u30DE\u30FC\u30AB\u30FC\u756A\u53F7", +currentposition:"\u518D\u751F\u4F4D\u7F6E\uFF08\u79D2\u5358\u4F4D\uFF09", +defaultframe:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30EC\u30FC\u30E0", +playcount:"\u518D\u751F\u56DE\u6570", +rate:"\u518D\u751F\u30EC\u30FC\u30C8", +uimode:"UI\u8868\u793A\u30E2\u30FC\u30C9", +flash_options:"Flash\u30AA\u30D7\u30B7\u30E7\u30F3", +qt_options:"Quicktime\u30AA\u30D7\u30B7\u30E7\u30F3", +wmp_options:"Windows media player\u30AA\u30D7\u30B7\u30E7\u30F3", +rmp_options:"Real media player\u30AA\u30D7\u30B7\u30E7\u30F3", +shockwave_options:"Shockwave\u30AA\u30D7\u30B7\u30E7\u30F3", +autogotourl:"autogotourl", +center:"\u30BB\u30F3\u30BF\u30EA\u30F3\u30B0", +imagestatus:"\u30B9\u30C6\u30FC\u30BF\u30B9\u8868\u793A", +maintainaspect:"\u7E26\u6A2A\u6BD4\u4FDD\u5B58", +nojava:"Java\u3092\u7981\u6B62", +prefetch:"\u30D7\u30EA\u30D5\u30A7\u30C3\u30C1", +shuffle:"\u30B7\u30E3\u30C3\u30D5\u30EB", +console:"\u30B3\u30F3\u30BD\u30FC\u30EB", +numloop:"\u7E70\u308A\u8FD4\u3057\u56DE\u6570", +controls:"\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u8868\u793A", +scriptcallbacks:"\u30B3\u30FC\u30EB\u30D0\u30C3\u30AF\u30A4\u30D9\u30F3\u30C8", +swstretchstyle:"\u4F38\u7E2E", +swstretchhalign:"\u6C34\u5E73\u4F4D\u7F6E", +swstretchvalign:"\u5782\u76F4\u4F4D\u7F6E", +sound:"\u30B5\u30A6\u30F3\u30C9", +progress:"Progress", +qtsrc:"QT Src", +qt_stream_warn:"rtsp\u30B9\u30C8\u30EA\u30FC\u30DF\u30F3\u30B0\u30EA\u30BD\u30FC\u30B9\u3092\u300C\u4E0A\u7D1A\u8005\u5411\u3051\u300D\u30BF\u30D6\u306E\u300CQT Src\u300D\u6B04\u306B\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u307E\u305F\u3001\u300CSrc\u300D\u6B04\u306B\u306F\u30B9\u30C8\u30EA\u30FC\u30DF\u30F3\u30B0\u3067\u306F\u306A\u3044\u30D0\u30FC\u30B8\u30E7\u30FC\u30F3\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002", +align_top:"\u4E0A", +align_right:"\u53F3", +align_bottom:"\u4E0B", +align_left:"\u5DE6", +align_center:"\u4E2D\u592E", +align_top_left:"\u5DE6\u4E0A", +align_top_right:"\u53F3\u4E0A", +align_bottom_left:"\u5DE6\u4E0B", +align_bottom_right:"\u53F3\u4E0B", +flv_options:"Flash video\u30AA\u30D7\u30B7\u30E7\u30F3", +flv_scalemode:"\u4F38\u7E2E\u30E2\u30FC\u30C9", +flv_buffer:"\u30D0\u30C3\u30D5\u30A1\u79D2\u6570", +flv_startimage:"\u521D\u671F\u753B\u50CFURL", +flv_starttime:"\u958B\u59CB\u30D5\u30EC\u30FC\u30E0", +flv_defaultvolume:"\u97F3\u91CF", +flv_hiddengui:"\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u975E\u8868\u793A", +flv_autostart:"\u81EA\u52D5\u518D\u751F", +flv_loop:"\u7E70\u308A\u8FD4\u3057\u518D\u751F", +flv_showscalemodes:"\u4F38\u7E2E\u5207\u66FF\u30DC\u30BF\u30F3\u8868\u793A", +flv_smoothvideo:"\u30B9\u30E0\u30FC\u30B8\u30F3\u30B0", +flv_jscallback:"JS\u30B3\u30FC\u30EB\u30D0\u30C3\u30AF" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/nl_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/nl_dlg.js new file mode 100644 index 0000000..b6c7939 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/nl_dlg.js @@ -0,0 +1,103 @@ +tinyMCE.addI18n('nl.media_dlg',{ +title:"Media invoegen/bewerken", +general:"Algemeen", +advanced:"Geavanceerd", +file:"Bestand/URL", +list:"Lijst", +size:"Afmetingen", +preview:"Voorbeeld", +constrain_proportions:"Verhouding bewaren", +type:"Type", +id:"Id", +name:"Naam", +class_name:"Klasse", +vspace:"V-Ruimte", +hspace:"H-Ruimte", +play:"Automatisch afspelen", +loop:"Herhalen", +menu:"Menu Weergeven", +quality:"Kwaliteit", +scale:"Schaal", +align:"Uitlijning", +salign:"Schaaluitlijning", +wmode:"WMode", +bgcolor:"Achtergrond", +base:"Basis", +flashvars:"Variabelen", +liveconnect:"SWLiveConnect", +autohref:"AutoHREF", +cache:"Cache", +hidden:"Verborgen", +controller:"Controller", +kioskmode:"Kioskmodus", +playeveryframe:"Elk frame afspelen", +targetcache:"Doelcache", +correction:"Geen correctie", +enablejavascript:"JavaScript Inschakelen", +starttime:"Starttijd", +endtime:"Eindtijd", +href:"HREF", +qtsrcchokespeed:"Chokesnelheid", +target:"Doel", +volume:"Volume", +autostart:"Automatisch afspelen", +enabled:"Ingeschakeld", +fullscreen:"Volledig scherm", +invokeurls:"URLs laden", +mute:"Geluid dempen", +stretchtofit:"Passend maken", +windowlessvideo:"Video zonder venster", +balance:"Balans", +baseurl:"BasisURL", +captioningid:"Ondertiteling id", +currentmarker:"Huidige markering", +currentposition:"Huidige positie", +defaultframe:"Standaard frame", +playcount:"Afspeelteller", +rate:"Snelheid", +uimode:"UI Modus", +flash_options:"Flash opties", +qt_options:"Quicktime opties", +wmp_options:"Windows mediaspeler opties", +rmp_options:"Real mediaspeler opties", +shockwave_options:"Shockwave opties", +autogotourl:"Automatisch naar URL", +center:"Centreren", +imagestatus:"Afbeeldingstatus", +maintainaspect:"Verhouding bewaren", +nojava:"Geen java", +prefetch:"Voorladen", +shuffle:"Willekeurige volgorde", +console:"Console", +numloop:"Aantal herhalingen", +controls:"Bediening", +scriptcallbacks:"Script callbacks", +swstretchstyle:"Schaal", +swstretchhalign:"H-Schaal", +swstretchvalign:"V-Schaal", +sound:"Geluid", +progress:"Voortgang", +qtsrc:"Quicktime bron", +qt_stream_warn:"Gestreamde RTSP bronnen dienen op het tabblad geavanceerd bij Quicktime bron te worden opgegeven.\nDe niet-gestreamde versie kan dan bij het tabblad algemeen worden opgegeven.", +align_top:"Boven", +align_right:"Rechts", +align_bottom:"Onder", +align_left:"Links", +align_center:"Centreren", +align_top_left:"Linksboven", +align_top_right:"Rechtsboven", +align_bottom_left:"Linksonder", +align_bottom_right:"Rechtsonder", +flv_options:"Flash video-opties", +flv_scalemode:"Schaalmodus", +flv_buffer:"Buffer", +flv_startimage:"Startafbeelding", +flv_starttime:"Starttijd", +flv_defaultvolume:"Standaard volume", +flv_hiddengui:"GUI verbergen", +flv_autostart:"Automatisch afspelen", +flv_loop:"Herhalen", +flv_showscalemodes:"Schaalmodus weergeven", +flv_smoothvideo:"Soepele video", +flv_jscallback:"JS Callback" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/pt_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/pt_dlg.js new file mode 100644 index 0000000..4bc057e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/pt_dlg.js @@ -0,0 +1,103 @@ +tinyMCE.addI18n('pt.media_dlg',{ +title:"Inserir/Editar m\u00EDdia incorporada", +general:"Geral", +advanced:"Avan\u00E7ado", +file:"Arquivo/URL", +list:"Lista", +size:"Dimens\u00F5es", +preview:"Previs\u00E3o", +constrain_proportions:"Manter propor\u00E7\u00F5es", +type:"Tipo", +id:"Id", +name:"Nome", +class_name:"Classe", +vspace:"Espa\u00E7o vertical", +hspace:"Espa\u00E7o horizontal", +play:"Execu\u00E7\u00E3o autom\u00E1tica", +loop:"Repeti\u00E7\u00E3o autom\u00E1tica", +menu:"Mostrar menu", +quality:"Qualidade", +scale:"Escala", +align:"Alinhamento", +salign:"SAlign", +wmode:"WMode", +bgcolor:"Fundo", +base:"Base", +flashvars:"Flashvars", +liveconnect:"SWLiveConnect", +autohref:"AutoHREF", +cache:"Cache", +hidden:"Oculto", +controller:"Controlador", +kioskmode:"Modo Quiosque", +playeveryframe:"Executar todas as frames", +targetcache:"Cache alvo", +correction:"Sem correc\u00E7\u00F5es", +enablejavascript:"Disponibilizar javaScript", +starttime:"Hora de in\u00EDcio", +endtime:"Hora do fim", +href:"Href", +qtsrcchokespeed:"Choke speed", +target:"Alvo", +volume:"Volume", +autostart:"Execu\u00E7\u00E3o autom\u00E1tica", +enabled:"Ativado", +fullscreen:"Tela inteira", +invokeurls:"Invocar URLs", +mute:"Mudo", +stretchtofit:"Estender", +windowlessvideo:"V\u00EDdeo sem janela", +balance:"Stereo", +baseurl:"Base URL", +captioningid:"Id de legenda", +currentmarker:"Marcador atual", +currentposition:"Posi\u00E7\u00E3o atual", +defaultframe:"Frame padr\u00E3o", +playcount:"Play count", +rate:"Rate", +uimode:"UI Mode", +flash_options:"Op\u00E7\u00F5es Flash", +qt_options:"Op\u00E7\u00F5es Quicktime", +wmp_options:"Op\u00E7\u00F5es Windows Media Player", +rmp_options:"Op\u00E7\u00F5es Real Media Player", +shockwave_options:"Op\u00E7\u00F5es Shockwave", +autogotourl:"Auto goto URL", +center:"Centro", +imagestatus:"Status da imagem", +maintainaspect:"Manter aspecto", +nojava:"no java", +prefetch:"Prefetch", +shuffle:"Shuffle", +console:"Console", +numloop:"Num loops", +controls:"Controles", +scriptcallbacks:"callbacks de script", +swstretchstyle:"Stretch style", +swstretchhalign:"Stretch H-Align", +swstretchvalign:"Stretch V-Align", +sound:"Som", +progress:"Progresso", +qtsrc:"QT Src", +qt_stream_warn:"Fluxos de recursos rtsp devem ser acrescentados ao campo QT Src no Modo Avan\u00E7ado.\Numa vers\u00E3o sem fluxo tamb\u00E9m deve ser acrescentada ao campo Src.", +align_top:"Topo", +align_right:"Direita", +align_bottom:"Abaixo", +align_left:"Esquerda", +align_center:"Centro", +align_top_left:"Topo esquerda", +align_top_right:"Topo direita", +align_bottom_left:"Abaixo esquerda", +align_bottom_right:"Abaixo direita", +flv_options:"Op\u00E7\u00F5es de Flash video", +flv_scalemode:"Modo escala", +flv_buffer:"Buffer", +flv_startimage:"Imagem inicial", +flv_starttime:"Hora inicial", +flv_defaultvolume:"Volume padr\u00E3o", +flv_hiddengui:"GUI oculta", +flv_autostart:"Execu\u00E7\u00E3o Autom\u00E1tica", +flv_loop:"Loop", +flv_showscalemodes:"Mostrar modos escala", +flv_smoothvideo:"Smooth video", +flv_jscallback:"JS callback" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ru_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ru_dlg.js new file mode 100644 index 0000000..407a40d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/langs/ru_dlg.js @@ -0,0 +1,103 @@ +tinyMCE.addI18n('ru.media_dlg',{ +title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C / \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C embedded media", +general:"\u041E\u0431\u0449\u0435\u0435", +advanced:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E", +file:"\u0424\u0430\u0439\u043B / URL", +list:"\u0421\u043F\u0438\u0441\u043E\u043A", +size:"\u0420\u0430\u0437\u043C\u0435\u0440\u044B", +preview:"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440", +constrain_proportions:"\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043F\u0440\u043E\u043F\u043E\u0440\u0446\u0438\u0438", +type:"\u0422\u0438\u043F", +id:"Id", +name:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435", +class_name:"\u041A\u043B\u0430\u0441\u0441", +vspace:"\u0432\u0435\u0440\u0442.\u0432\u0438\u0434\u0441\u0442\u0443\u043F", +hspace:"\u0433\u043E\u0440.\u0432\u0438\u0434\u0441\u0442\u0443\u043F", +play:"\u0410\u0432\u0442\u043E\u043F\u043B\u0435\u0439", +loop:"\u041B\u0443\u043F", +menu:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0435\u043D\u044E", +quality:"\u041A\u0430\u0447\u0435\u0441\u0442\u0432\u043E", +scale:"Scale", +align:"Align", +salign:"SAlign", +wmode:"WMode", +bgcolor:"\u0424\u043E\u043D", +base:"Base", +flashvars:"Flashvars", +liveconnect:"SWLiveConnect", +autohref:"AutoHREF", +cache:"\u041A\u044D\u0448", +hidden:"Hidden", +controller:"Controller", +kioskmode:"Kiosk mode", +playeveryframe:"Play every frame", +targetcache:"Target cache", +correction:"No correction", +enablejavascript:"Enable JavaScript", +starttime:"Start time", +endtime:"End time", +href:"Href", +qtsrcchokespeed:"Choke speed", +target:"Target", +volume:"\u0413\u0440\u043E\u043C\u043A\u043E\u0441\u0442\u044C", +autostart:"\u0410\u0432\u0442\u043E\u0441\u0442\u0430\u0440\u0442", +enabled:"Enabled", +fullscreen:"Fullscreen", +invokeurls:"Invoke URLs", +mute:"Mute", +stretchtofit:"Stretch to fit", +windowlessvideo:"Windowless video", +balance:"\u0411\u0430\u043B\u0430\u043D\u0441", +baseurl:"Base URL", +captioningid:"Captioning id", +currentmarker:"Current marker", +currentposition:"Current position", +defaultframe:"Default frame", +playcount:"Play count", +rate:"Rate", +uimode:"UI Mode", +flash_options:"Flash options", +qt_options:"Quicktime options", +wmp_options:"Windows media player options", +rmp_options:"Real media player options", +shockwave_options:"Shockwave options", +autogotourl:"Auto goto URL", +center:"Center", +imagestatus:"Image status", +maintainaspect:"Maintain aspect", +nojava:"No java", +prefetch:"Prefetch", +shuffle:"Shuffle", +console:"Console", +numloop:"Num loops", +controls:"Controls", +scriptcallbacks:"Script callbacks", +swstretchstyle:"Stretch style", +swstretchhalign:"Stretch H-Align", +swstretchvalign:"Stretch V-Align", +sound:"Sound", +progress:"Progress", +qtsrc:"QT Src", +qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab \ nYou should also add a non streamed version to the Src field ..", +align_top:"Top", +align_right:"Right", +align_bottom:"Bottom", +align_left:"Left", +align_center:"Center", +align_top_left:"Top left", +align_top_right:"Top right", +align_bottom_left:"Bottom left", +align_bottom_right:"Bottom right", +flv_options:"Flash video options", +flv_scalemode:"Scale mode", +flv_buffer:"Buffer", +flv_startimage:"Start image", +flv_starttime:"Start time", +flv_defaultvolume:"Default volumne", +flv_hiddengui:"Hidden GUI", +flv_autostart:"Auto start", +flv_loop:"Loop", +flv_showscalemodes:"Show scale modes", +flv_smoothvideo:"Smooth video", +flv_jscallback:"JS Callback" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/media.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/media.htm new file mode 100644 index 0000000..807a537 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/media.htm @@ -0,0 +1,812 @@ + + + + {#media_dlg.title} + + + + + + + + + +
                    + + +
                    +
                    +
                    + {#media_dlg.general} + + + + + + + + + + + + + + + + + + +
                    + +
                    + + + + + +
                     
                    +
                    + + + + + + +
                    x   
                    +
                    +
                    + +
                    + {#media_dlg.preview} + +
                    +
                    + +
                    +
                    + {#media_dlg.advanced} + + + + + + + + + + + + + + + + + + + + + + + +
                    + + + + + + + +
                     
                    +
                    +
                    + +
                    + {#media_dlg.html5_video_options} + + + + + + + + + + + + + + + + +
                    + + + + + +
                     
                    +
                    + + + + + +
                     
                    +
                    + + + + + +
                     
                    +
                    + + + + + + + + + + + +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    +
                    + +
                    + {#media_dlg.flash_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + + + +
                    + + + +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + + + + + + + +
                    +
                    + +
                    + {#media_dlg.qt_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    +  
                    + + + + + +
                     
                    +
                    +
                    + +
                    + {#media_dlg.wmp_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    +
                    + +
                    + {#media_dlg.rmp_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    +   +
                    +
                    + +
                    + {#media_dlg.shockwave_options} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + +
                    + + + +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    + + + + + +
                    +
                    +
                    +
                    + +
                    +
                    + {#media_dlg.source} + +
                    +
                    +
                    + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf new file mode 100644 index 0000000..2a04035 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js new file mode 100644 index 0000000..7394735 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.Nonbreaking",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceNonBreaking",function(){a.execCommand("mceInsertContent",false,(a.plugins.visualchars&&a.plugins.visualchars.state)?' ':" ")});a.addButton("nonbreaking",{title:"nonbreaking.nonbreaking_desc",cmd:"mceNonBreaking"});if(a.getParam("nonbreaking_force_tab")){a.onKeyDown.add(function(d,f){if(tinymce.isIE&&f.keyCode==9){d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking");tinymce.dom.Event.cancel(f)}})}},getInfo:function(){return{longname:"Nonbreaking space",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("nonbreaking",tinymce.plugins.Nonbreaking)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js new file mode 100644 index 0000000..b3ea82e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js @@ -0,0 +1,53 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.Nonbreaking', { + init : function(ed, url) { + var t = this; + + t.editor = ed; + + // Register commands + ed.addCommand('mceNonBreaking', function() { + ed.execCommand('mceInsertContent', false, (ed.plugins.visualchars && ed.plugins.visualchars.state) ? ' ' : ' '); + }); + + // Register buttons + ed.addButton('nonbreaking', {title : 'nonbreaking.nonbreaking_desc', cmd : 'mceNonBreaking'}); + + if (ed.getParam('nonbreaking_force_tab')) { + ed.onKeyDown.add(function(ed, e) { + if (tinymce.isIE && e.keyCode == 9) { + ed.execCommand('mceNonBreaking'); + ed.execCommand('mceNonBreaking'); + ed.execCommand('mceNonBreaking'); + tinymce.dom.Event.cancel(e); + } + }); + } + }, + + getInfo : function() { + return { + longname : 'Nonbreaking space', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + + // Private methods + }); + + // Register plugin + tinymce.PluginManager.add('nonbreaking', tinymce.plugins.Nonbreaking); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js new file mode 100644 index 0000000..cc7de78 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js @@ -0,0 +1 @@ +(function(){var a=tinymce.dom.Event;tinymce.create("tinymce.plugins.NonEditablePlugin",{init:function(d,e){var f=this,c,b;f.editor=d;c=d.getParam("noneditable_editable_class","mceEditable");b=d.getParam("noneditable_noneditable_class","mceNonEditable");d.onNodeChange.addToTop(function(h,g,k){var j,i;j=h.dom.getParent(h.selection.getStart(),function(l){return h.dom.hasClass(l,b)});i=h.dom.getParent(h.selection.getEnd(),function(l){return h.dom.hasClass(l,b)});if(j||i){f._setDisabled(1);return false}else{f._setDisabled(0)}})},getInfo:function(){return{longname:"Non editable elements",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_block:function(c,d){var b=d.keyCode;if((b>32&&b<41)||(b>111&&b<124)){return}return a.cancel(d)},_setDisabled:function(d){var c=this,b=c.editor;tinymce.each(b.controlManager.controls,function(e){e.setDisabled(d)});if(d!==c.disabled){if(d){b.onKeyDown.addToTop(c._block);b.onKeyPress.addToTop(c._block);b.onKeyUp.addToTop(c._block);b.onPaste.addToTop(c._block);b.onContextMenu.addToTop(c._block)}else{b.onKeyDown.remove(c._block);b.onKeyPress.remove(c._block);b.onKeyUp.remove(c._block);b.onPaste.remove(c._block);b.onContextMenu.remove(c._block)}c.disabled=d}}});tinymce.PluginManager.add("noneditable",tinymce.plugins.NonEditablePlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js new file mode 100644 index 0000000..b6cf154 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js @@ -0,0 +1,92 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var Event = tinymce.dom.Event; + + tinymce.create('tinymce.plugins.NonEditablePlugin', { + init : function(ed, url) { + var t = this, editClass, nonEditClass; + + t.editor = ed; + editClass = ed.getParam("noneditable_editable_class", "mceEditable"); + nonEditClass = ed.getParam("noneditable_noneditable_class", "mceNonEditable"); + + ed.onNodeChange.addToTop(function(ed, cm, n) { + var sc, ec; + + // Block if start or end is inside a non editable element + sc = ed.dom.getParent(ed.selection.getStart(), function(n) { + return ed.dom.hasClass(n, nonEditClass); + }); + + ec = ed.dom.getParent(ed.selection.getEnd(), function(n) { + return ed.dom.hasClass(n, nonEditClass); + }); + + // Block or unblock + if (sc || ec) { + t._setDisabled(1); + return false; + } else + t._setDisabled(0); + }); + }, + + getInfo : function() { + return { + longname : 'Non editable elements', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + _block : function(ed, e) { + var k = e.keyCode; + + // Don't block arrow keys, pg up/down, and F1-F12 + if ((k > 32 && k < 41) || (k > 111 && k < 124)) + return; + + return Event.cancel(e); + }, + + _setDisabled : function(s) { + var t = this, ed = t.editor; + + tinymce.each(ed.controlManager.controls, function(c) { + c.setDisabled(s); + }); + + if (s !== t.disabled) { + if (s) { + ed.onKeyDown.addToTop(t._block); + ed.onKeyPress.addToTop(t._block); + ed.onKeyUp.addToTop(t._block); + ed.onPaste.addToTop(t._block); + ed.onContextMenu.addToTop(t._block); + } else { + ed.onKeyDown.remove(t._block); + ed.onKeyPress.remove(t._block); + ed.onKeyUp.remove(t._block); + ed.onPaste.remove(t._block); + ed.onContextMenu.remove(t._block); + } + + t.disabled = s; + } + } + }); + + // Register plugin + tinymce.PluginManager.add('noneditable', tinymce.plugins.NonEditablePlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css new file mode 100644 index 0000000..c949d58 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/css/content.css @@ -0,0 +1 @@ +.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../img/pagebreak.gif) no-repeat center top;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js new file mode 100644 index 0000000..35085e8 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.PageBreakPlugin",{init:function(b,d){var f='',a="mcePageBreak",c=b.getParam("pagebreak_separator",""),e;e=new RegExp(c.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(g){return"\\"+g}),"g");b.addCommand("mcePageBreak",function(){b.execCommand("mceInsertContent",0,f)});b.addButton("pagebreak",{title:"pagebreak.desc",cmd:a});b.onInit.add(function(){if(b.theme.onResolveName){b.theme.onResolveName.add(function(g,h){if(h.node.nodeName=="IMG"&&b.dom.hasClass(h.node,a)){h.name="pagebreak"}})}});b.onClick.add(function(g,h){h=h.target;if(h.nodeName==="IMG"&&g.dom.hasClass(h,a)){g.selection.select(h)}});b.onNodeChange.add(function(h,g,i){g.setActive("pagebreak",i.nodeName==="IMG"&&h.dom.hasClass(i,a))});b.onBeforeSetContent.add(function(g,h){h.content=h.content.replace(e,f)});b.onPostProcess.add(function(g,h){if(h.get){h.content=h.content.replace(/]+>/g,function(i){if(i.indexOf('class="mcePageBreak')!==-1){i=c}return i})}})},getInfo:function(){return{longname:"PageBreak",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("pagebreak",tinymce.plugins.PageBreakPlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js new file mode 100644 index 0000000..a094c19 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js @@ -0,0 +1,74 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.PageBreakPlugin', { + init : function(ed, url) { + var pb = '', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', ''), pbRE; + + pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g'); + + // Register commands + ed.addCommand('mcePageBreak', function() { + ed.execCommand('mceInsertContent', 0, pb); + }); + + // Register buttons + ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls}); + + ed.onInit.add(function() { + if (ed.theme.onResolveName) { + ed.theme.onResolveName.add(function(th, o) { + if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls)) + o.name = 'pagebreak'; + }); + } + }); + + ed.onClick.add(function(ed, e) { + e = e.target; + + if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls)) + ed.selection.select(e); + }); + + ed.onNodeChange.add(function(ed, cm, n) { + cm.setActive('pagebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls)); + }); + + ed.onBeforeSetContent.add(function(ed, o) { + o.content = o.content.replace(pbRE, pb); + }); + + ed.onPostProcess.add(function(ed, o) { + if (o.get) + o.content = o.content.replace(/]+>/g, function(im) { + if (im.indexOf('class="mcePageBreak') !== -1) + im = sep; + + return im; + }); + }); + }, + + getInfo : function() { + return { + longname : 'PageBreak', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif new file mode 100644 index 0000000..acdf408 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif new file mode 100644 index 0000000..3884865 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/pagebreak/img/trans.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js new file mode 100644 index 0000000..6c65069 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js @@ -0,0 +1 @@ +(function(){var c=tinymce.each,a={paste_auto_cleanup_on_paste:true,paste_enable_default_filters:true,paste_block_drop:false,paste_retain_style_properties:"none",paste_strip_class_attributes:"mso",paste_remove_spans:false,paste_remove_styles:false,paste_remove_styles_if_webkit:true,paste_convert_middot_lists:true,paste_convert_headers_to_strong:false,paste_dialog_width:"450",paste_dialog_height:"400",paste_text_use_dialog:false,paste_text_sticky:false,paste_text_sticky_default:false,paste_text_notifyalways:false,paste_text_linebreaktype:"p",paste_text_replacements:[[/\u2026/g,"..."],[/[\x93\x94\u201c\u201d]/g,'"'],[/[\x60\x91\x92\u2018\u2019]/g,"'"]]};function b(d,e){return d.getParam(e,a[e])}tinymce.create("tinymce.plugins.PastePlugin",{init:function(d,e){var f=this;f.editor=d;f.url=e;f.onPreProcess=new tinymce.util.Dispatcher(f);f.onPostProcess=new tinymce.util.Dispatcher(f);f.onPreProcess.add(f._preProcess);f.onPostProcess.add(f._postProcess);f.onPreProcess.add(function(i,j){d.execCallback("paste_preprocess",i,j)});f.onPostProcess.add(function(i,j){d.execCallback("paste_postprocess",i,j)});d.onKeyDown.addToTop(function(i,j){if(((tinymce.isMac?j.metaKey:j.ctrlKey)&&j.keyCode==86)||(j.shiftKey&&j.keyCode==45)){return false}});d.pasteAsPlainText=b(d,"paste_text_sticky_default");function h(m,k){var l=d.dom,i,j;f.onPreProcess.dispatch(f,m);m.node=l.create("div",0,m.content);if(tinymce.isGecko){i=d.selection.getRng(true);if(i.startContainer==i.endContainer&&i.startContainer.nodeType==3){j=l.select("p,h1,h2,h3,h4,h5,h6,pre",m.node);if(j.length==1&&m.content.indexOf("__MCE_ITEM__")===-1){l.remove(j.reverse(),true)}}}f.onPostProcess.dispatch(f,m);m.content=d.serializer.serialize(m.node,{getInner:1});if((!k)&&(d.pasteAsPlainText)){f._insertPlainText(d,l,m.content);if(!b(d,"paste_text_sticky")){d.pasteAsPlainText=false;d.controlManager.setActive("pastetext",false)}}else{f._insert(m.content)}}d.addCommand("mceInsertClipboardContent",function(i,j){h(j,true)});if(!b(d,"paste_text_use_dialog")){d.addCommand("mcePasteText",function(j,i){var k=tinymce.util.Cookie;d.pasteAsPlainText=!d.pasteAsPlainText;d.controlManager.setActive("pastetext",d.pasteAsPlainText);if((d.pasteAsPlainText)&&(!k.get("tinymcePasteText"))){if(b(d,"paste_text_sticky")){d.windowManager.alert(d.translate("paste.plaintext_mode_sticky"))}else{d.windowManager.alert(d.translate("paste.plaintext_mode_sticky"))}if(!b(d,"paste_text_notifyalways")){k.set("tinymcePasteText","1",new Date(new Date().getFullYear()+1,12,31))}}})}d.addButton("pastetext",{title:"paste.paste_text_desc",cmd:"mcePasteText"});d.addButton("selectall",{title:"paste.selectall_desc",cmd:"selectall"});function g(s){var l,p,j,t,k=d.selection,o=d.dom,q=d.getBody(),i,r;if(s.clipboardData||o.doc.dataTransfer){r=(s.clipboardData||o.doc.dataTransfer).getData("Text");if(d.pasteAsPlainText){s.preventDefault();h({content:r.replace(/\r?\n/g,"
                    ")});return}}if(o.get("_mcePaste")){return}l=o.add(q,"div",{id:"_mcePaste","class":"mcePaste","data-mce-bogus":"1"},"\uFEFF\uFEFF");if(q!=d.getDoc().body){i=o.getPos(d.selection.getStart(),q).y}else{i=q.scrollTop+o.getViewPort().y}o.setStyles(l,{position:"absolute",left:-10000,top:i,width:1,height:1,overflow:"hidden"});if(tinymce.isIE){t=k.getRng();j=o.doc.body.createTextRange();j.moveToElementText(l);j.execCommand("Paste");o.remove(l);if(l.innerHTML==="\uFEFF\uFEFF"){d.execCommand("mcePasteWord");s.preventDefault();return}k.setRng(t);k.setContent("");setTimeout(function(){h({content:l.innerHTML})},0);return tinymce.dom.Event.cancel(s)}else{function m(n){n.preventDefault()}o.bind(d.getDoc(),"mousedown",m);o.bind(d.getDoc(),"keydown",m);p=d.selection.getRng();l=l.firstChild;j=d.getDoc().createRange();j.setStart(l,0);j.setEnd(l,2);k.setRng(j);window.setTimeout(function(){var u="",n;if(!o.select("div.mcePaste > div.mcePaste").length){n=o.select("div.mcePaste");c(n,function(w){var v=w.firstChild;if(v&&v.nodeName=="DIV"&&v.style.marginTop&&v.style.backgroundColor){o.remove(v,1)}c(o.select("span.Apple-style-span",w),function(x){o.remove(x,1)});c(o.select("br[data-mce-bogus]",w),function(x){o.remove(x)});if(w.parentNode.className!="mcePaste"){u+=w.innerHTML}})}else{u="
                    "+o.encode(r).replace(/\r?\n/g,"
                    ")+"
                    "}c(o.select("div.mcePaste"),function(v){o.remove(v)});if(p){k.setRng(p)}h({content:u});o.unbind(d.getDoc(),"mousedown",m);o.unbind(d.getDoc(),"keydown",m)},0)}}if(b(d,"paste_auto_cleanup_on_paste")){if(tinymce.isOpera||/Firefox\/2/.test(navigator.userAgent)){d.onKeyDown.addToTop(function(i,j){if(((tinymce.isMac?j.metaKey:j.ctrlKey)&&j.keyCode==86)||(j.shiftKey&&j.keyCode==45)){g(j)}})}else{d.onPaste.addToTop(function(i,j){return g(j)})}}d.onInit.add(function(){d.controlManager.setActive("pastetext",d.pasteAsPlainText);if(b(d,"paste_block_drop")){d.dom.bind(d.getBody(),["dragend","dragover","draggesture","dragdrop","drop","drag"],function(i){i.preventDefault();i.stopPropagation();return false})}});f._legacySupport()},getInfo:function(){return{longname:"Paste text/word",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_preProcess:function(g,e){var k=this.editor,j=e.content,p=tinymce.grep,n=tinymce.explode,f=tinymce.trim,l,i;function d(h){c(h,function(o){if(o.constructor==RegExp){j=j.replace(o,"")}else{j=j.replace(o[0],o[1])}})}if(k.settings.paste_enable_default_filters==false){return}if(tinymce.isIE&&document.documentMode>=9){d([[/(?:
                     [\s\r\n]+|
                    )*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:
                     [\s\r\n]+|
                    )*/g,"$1"]])}if(/class="?Mso|style="[^"]*\bmso-|w:WordDocument/i.test(j)||e.wordContent){e.wordContent=true;d([/^\s*( )+/gi,/( |]*>)+\s*$/gi]);if(b(k,"paste_convert_headers_to_strong")){j=j.replace(/

                    ]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi,"

                    $1

                    ")}if(b(k,"paste_convert_middot_lists")){d([[//gi,"$&__MCE_ITEM__"],[/(]+(?:mso-list:|:\s*symbol)[^>]+>)/gi,"$1__MCE_ITEM__"],[/(]+(?:MsoListParagraph)[^>]+>)/gi,"$1__MCE_ITEM__"]])}d([//gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\u00a0"]]);do{l=j.length;j=j.replace(/(<[a-z][^>]*\s)(?:id|name|language|type|on\w+|\w+:\w+)=(?:"[^"]*"|\w+)\s?/gi,"$1")}while(l!=j.length);if(b(k,"paste_retain_style_properties").replace(/^none$/i,"").length==0){j=j.replace(/<\/?span[^>]*>/gi,"")}else{d([[/([\s\u00a0]*)<\/span>/gi,function(o,h){return(h.length>0)?h.replace(/./," ").slice(Math.floor(h.length/2)).split("").join("\u00a0"):""}],[/(<[a-z][^>]*)\sstyle="([^"]*)"/gi,function(t,h,r){var u=[],o=0,q=n(f(r).replace(/"/gi,"'"),";");c(q,function(s){var w,y,z=n(s,":");function x(A){return A+((A!=="0")&&(/\d$/.test(A)))?"px":""}if(z.length==2){w=z[0].toLowerCase();y=z[1].toLowerCase();switch(w){case"mso-padding-alt":case"mso-padding-top-alt":case"mso-padding-right-alt":case"mso-padding-bottom-alt":case"mso-padding-left-alt":case"mso-margin-alt":case"mso-margin-top-alt":case"mso-margin-right-alt":case"mso-margin-bottom-alt":case"mso-margin-left-alt":case"mso-table-layout-alt":case"mso-height":case"mso-width":case"mso-vertical-align-alt":u[o++]=w.replace(/^mso-|-alt$/g,"")+":"+x(y);return;case"horiz-align":u[o++]="text-align:"+y;return;case"vert-align":u[o++]="vertical-align:"+y;return;case"font-color":case"mso-foreground":u[o++]="color:"+y;return;case"mso-background":case"mso-highlight":u[o++]="background:"+y;return;case"mso-default-height":u[o++]="min-height:"+x(y);return;case"mso-default-width":u[o++]="min-width:"+x(y);return;case"mso-padding-between-alt":u[o++]="border-collapse:separate;border-spacing:"+x(y);return;case"text-line-through":if((y=="single")||(y=="double")){u[o++]="text-decoration:line-through"}return;case"mso-zero-height":if(y=="yes"){u[o++]="display:none"}return}if(/^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?!align|decor|indent|trans)|top-bar|version|vnd|word-break)/.test(w)){return}u[o++]=w+":"+z[1]}});if(o>0){return h+' style="'+u.join(";")+'"'}else{return h}}]])}}if(b(k,"paste_convert_headers_to_strong")){d([[/]*>/gi,"

                    "],[/<\/h[1-6][^>]*>/gi,"

                    "]])}d([[/Version:[\d.]+\nStartHTML:\d+\nEndHTML:\d+\nStartFragment:\d+\nEndFragment:\d+/gi,""]]);i=b(k,"paste_strip_class_attributes");if(i!=="none"){function m(q,o){if(i==="all"){return""}var h=p(n(o.replace(/^(["'])(.*)\1$/,"$2")," "),function(r){return(/^(?!mso)/i.test(r))});return h.length?' class="'+h.join(" ")+'"':""}j=j.replace(/ class="([^"]+)"/gi,m);j=j.replace(/ class=([\-\w]+)/gi,m)}if(b(k,"paste_remove_spans")){j=j.replace(/<\/?span[^>]*>/gi,"")}e.content=j},_postProcess:function(g,i){var f=this,e=f.editor,h=e.dom,d;if(e.settings.paste_enable_default_filters==false){return}if(i.wordContent){c(h.select("a",i.node),function(j){if(!j.href||j.href.indexOf("#_Toc")!=-1){h.remove(j,1)}});if(b(e,"paste_convert_middot_lists")){f._convertLists(g,i)}d=b(e,"paste_retain_style_properties");if((tinymce.is(d,"string"))&&(d!=="all")&&(d!=="*")){d=tinymce.explode(d.replace(/^none$/i,""));c(h.select("*",i.node),function(m){var n={},k=0,l,o,j;if(d){for(l=0;l0){h.setStyles(m,n)}else{if(m.nodeName=="SPAN"&&!m.className){h.remove(m,true)}}})}}if(b(e,"paste_remove_styles")||(b(e,"paste_remove_styles_if_webkit")&&tinymce.isWebKit)){c(h.select("*[style]",i.node),function(j){j.removeAttribute("style");j.removeAttribute("data-mce-style")})}else{if(tinymce.isWebKit){c(h.select("*",i.node),function(j){j.removeAttribute("data-mce-style")})}}},_convertLists:function(g,e){var i=g.editor.dom,h,l,d=-1,f,m=[],k,j;c(i.select("p",e.node),function(t){var q,u="",s,r,n,o;for(q=t.firstChild;q&&q.nodeType==3;q=q.nextSibling){u+=q.nodeValue}u=t.innerHTML.replace(/<\/?\w+[^>]*>/gi,"").replace(/ /g,"\u00a0");if(/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*\u00a0*/.test(u)){s="ul"}if(/^__MCE_ITEM__\s*\w+\.\s*\u00a0+/.test(u)){s="ol"}if(s){f=parseFloat(t.style.marginLeft||0);if(f>d){m.push(f)}if(!h||s!=k){h=i.create(s);i.insertAfter(h,t)}else{if(f>d){h=l.appendChild(i.create(s))}else{if(f]*>/gi,"");if(s=="ul"&&/^__MCE_ITEM__[\u2022\u00b7\u00a7\u00d8o\u25CF]/.test(p)){i.remove(v)}else{if(/^__MCE_ITEM__[\s\S]*\w+\.( |\u00a0)*\s*/.test(p)){i.remove(v)}}});r=t.innerHTML;if(s=="ul"){r=t.innerHTML.replace(/__MCE_ITEM__/g,"").replace(/^[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*( |\u00a0)+\s*/,"")}else{r=t.innerHTML.replace(/__MCE_ITEM__/g,"").replace(/^\s*\w+\.( |\u00a0)+\s*/,"")}l=h.appendChild(i.create("li",0,r));i.remove(t);d=f;k=s}else{h=d=0}});j=e.node.innerHTML;if(j.indexOf("__MCE_ITEM__")!=-1){e.node.innerHTML=j.replace(/__MCE_ITEM__/g,"")}},_insert:function(f,d){var e=this.editor,g=e.selection.getRng();if(!e.selection.isCollapsed()&&g.startContainer!=g.endContainer){e.getDoc().execCommand("Delete",false,null)}e.execCommand("mceInsertContent",false,f,{skip_undo:d})},_insertPlainText:function(j,x,v){var t,u,l,k,r,e,p,f,n=j.getWin(),z=j.getDoc(),s=j.selection,m=tinymce.is,y=tinymce.inArray,g=b(j,"paste_text_linebreaktype"),o=b(j,"paste_text_replacements");function q(d){c(d,function(h){if(h.constructor==RegExp){v=v.replace(h,"")}else{v=v.replace(h[0],h[1])}})}if((typeof(v)==="string")&&(v.length>0)){if(/<(?:p|br|h[1-6]|ul|ol|dl|table|t[rdh]|div|blockquote|fieldset|pre|address|center)[^>]*>/i.test(v)){q([/[\n\r]+/g])}else{q([/\r+/g])}q([[/<\/(?:p|h[1-6]|ul|ol|dl|table|div|blockquote|fieldset|pre|address|center)>/gi,"\n\n"],[/]*>|<\/tr>/gi,"\n"],[/<\/t[dh]>\s*]*>/gi,"\t"],/<[a-z!\/?][^>]*>/gi,[/ /gi," "],[/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi,"$1"],[/\n{3,}/g,"\n\n"],/^\s+|\s+$/g]);v=x.decode(tinymce.html.Entities.encodeRaw(v));if(!s.isCollapsed()){z.execCommand("Delete",false,null)}if(m(o,"array")||(m(o,"array"))){q(o)}else{if(m(o,"string")){q(new RegExp(o,"gi"))}}if(g=="none"){q([[/\n+/g," "]])}else{if(g=="br"){q([[/\n/g,"
                    "]])}else{q([/^\s+|\s+$/g,[/\n\n/g,"

                    "],[/\n/g,"
                    "]])}}if((l=v.indexOf("

                    "))!=-1){k=v.lastIndexOf("

                    ");r=s.getNode();e=[];do{if(r.nodeType==1){if(r.nodeName=="TD"||r.nodeName=="BODY"){break}e[e.length]=r}}while(r=r.parentNode);if(e.length>0){p=v.substring(0,l);f="";for(t=0,u=e.length;t";f+="<"+e[e.length-t-1].nodeName.toLowerCase()+">"}if(l==k){v=p+f+v.substring(l+7)}else{v=p+v.substring(l+4,k+4)+f+v.substring(k+7)}}}j.execCommand("mceInsertRawHTML",false,v+' ');window.setTimeout(function(){var d=x.get("_plain_text_marker"),A,h,w,i;s.select(d,false);z.execCommand("Delete",false,null);d=null;A=s.getStart();h=x.getViewPort(n);w=x.getPos(A).y;i=A.clientHeight;if((wh.y+h.h)){z.body.scrollTop=w

                    ' + dom.encode(textContent).replace(/\r?\n/g, '
                    ') + '
                    '; + } + + // Remove the nodes + each(dom.select('div.mcePaste'), function(n) { + dom.remove(n); + }); + + // Restore the old selection + if (or) + sel.setRng(or); + + process({content : h}); + + // Unblock events ones we got the contents + dom.unbind(ed.getDoc(), 'mousedown', block); + dom.unbind(ed.getDoc(), 'keydown', block); + }, 0); + } + } + + // Check if we should use the new auto process method + if (getParam(ed, "paste_auto_cleanup_on_paste")) { + // Is it's Opera or older FF use key handler + if (tinymce.isOpera || /Firefox\/2/.test(navigator.userAgent)) { + ed.onKeyDown.addToTop(function(ed, e) { + if (((tinymce.isMac ? e.metaKey : e.ctrlKey) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45)) + grabContent(e); + }); + } else { + // Grab contents on paste event on Gecko and WebKit + ed.onPaste.addToTop(function(ed, e) { + return grabContent(e); + }); + } + } + + ed.onInit.add(function() { + ed.controlManager.setActive("pastetext", ed.pasteAsPlainText); + + // Block all drag/drop events + if (getParam(ed, "paste_block_drop")) { + ed.dom.bind(ed.getBody(), ['dragend', 'dragover', 'draggesture', 'dragdrop', 'drop', 'drag'], function(e) { + e.preventDefault(); + e.stopPropagation(); + + return false; + }); + } + }); + + // Add legacy support + t._legacySupport(); + }, + + getInfo : function() { + return { + longname : 'Paste text/word', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + _preProcess : function(pl, o) { + var ed = this.editor, + h = o.content, + grep = tinymce.grep, + explode = tinymce.explode, + trim = tinymce.trim, + len, stripClass; + + //console.log('Before preprocess:' + o.content); + + function process(items) { + each(items, function(v) { + // Remove or replace + if (v.constructor == RegExp) + h = h.replace(v, ''); + else + h = h.replace(v[0], v[1]); + }); + } + + if (ed.settings.paste_enable_default_filters == false) { + return; + } + + // IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser + if (tinymce.isIE && document.documentMode >= 9) + process([[/(?:
                     [\s\r\n]+|
                    )*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:
                     [\s\r\n]+|
                    )*/g, '$1']]); + + // Detect Word content and process it more aggressive + if (/class="?Mso|style="[^"]*\bmso-|w:WordDocument/i.test(h) || o.wordContent) { + o.wordContent = true; // Mark the pasted contents as word specific content + //console.log('Word contents detected.'); + + // Process away some basic content + process([ + /^\s*( )+/gi, //   entities at the start of contents + /( |]*>)+\s*$/gi //   entities at the end of contents + ]); + + if (getParam(ed, "paste_convert_headers_to_strong")) { + h = h.replace(/

                    ]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi, "

                    $1

                    "); + } + + if (getParam(ed, "paste_convert_middot_lists")) { + process([ + [//gi, '$&__MCE_ITEM__'], // Convert supportLists to a list item marker + [/(]+(?:mso-list:|:\s*symbol)[^>]+>)/gi, '$1__MCE_ITEM__'], // Convert mso-list and symbol spans to item markers + [/(]+(?:MsoListParagraph)[^>]+>)/gi, '$1__MCE_ITEM__'] // Convert mso-list and symbol paragraphs to item markers (FF) + ]); + } + + process([ + // Word comments like conditional comments etc + //gi, + + // Remove comments, scripts (e.g., msoShowComment), XML tag, VML content, MS Office namespaced tags, and a few other tags + /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi, + + // Convert into for line-though + [/<(\/?)s>/gi, "<$1strike>"], + + // Replace nsbp entites to char since it's easier to handle + [/ /gi, "\u00a0"] + ]); + + // Remove bad attributes, with or without quotes, ensuring that attribute text is really inside a tag. + // If JavaScript had a RegExp look-behind, we could have integrated this with the last process() array and got rid of the loop. But alas, it does not, so we cannot. + do { + len = h.length; + h = h.replace(/(<[a-z][^>]*\s)(?:id|name|language|type|on\w+|\w+:\w+)=(?:"[^"]*"|\w+)\s?/gi, "$1"); + } while (len != h.length); + + // Remove all spans if no styles is to be retained + if (getParam(ed, "paste_retain_style_properties").replace(/^none$/i, "").length == 0) { + h = h.replace(/<\/?span[^>]*>/gi, ""); + } else { + // We're keeping styles, so at least clean them up. + // CSS Reference: http://msdn.microsoft.com/en-us/library/aa155477.aspx + + process([ + // Convert ___ to string of alternating breaking/non-breaking spaces of same length + [/([\s\u00a0]*)<\/span>/gi, + function(str, spaces) { + return (spaces.length > 0)? spaces.replace(/./, " ").slice(Math.floor(spaces.length/2)).split("").join("\u00a0") : ""; + } + ], + + // Examine all styles: delete junk, transform some, and keep the rest + [/(<[a-z][^>]*)\sstyle="([^"]*)"/gi, + function(str, tag, style) { + var n = [], + i = 0, + s = explode(trim(style).replace(/"/gi, "'"), ";"); + + // Examine each style definition within the tag's style attribute + each(s, function(v) { + var name, value, + parts = explode(v, ":"); + + function ensureUnits(v) { + return v + ((v !== "0") && (/\d$/.test(v)))? "px" : ""; + } + + if (parts.length == 2) { + name = parts[0].toLowerCase(); + value = parts[1].toLowerCase(); + + // Translate certain MS Office styles into their CSS equivalents + switch (name) { + case "mso-padding-alt": + case "mso-padding-top-alt": + case "mso-padding-right-alt": + case "mso-padding-bottom-alt": + case "mso-padding-left-alt": + case "mso-margin-alt": + case "mso-margin-top-alt": + case "mso-margin-right-alt": + case "mso-margin-bottom-alt": + case "mso-margin-left-alt": + case "mso-table-layout-alt": + case "mso-height": + case "mso-width": + case "mso-vertical-align-alt": + n[i++] = name.replace(/^mso-|-alt$/g, "") + ":" + ensureUnits(value); + return; + + case "horiz-align": + n[i++] = "text-align:" + value; + return; + + case "vert-align": + n[i++] = "vertical-align:" + value; + return; + + case "font-color": + case "mso-foreground": + n[i++] = "color:" + value; + return; + + case "mso-background": + case "mso-highlight": + n[i++] = "background:" + value; + return; + + case "mso-default-height": + n[i++] = "min-height:" + ensureUnits(value); + return; + + case "mso-default-width": + n[i++] = "min-width:" + ensureUnits(value); + return; + + case "mso-padding-between-alt": + n[i++] = "border-collapse:separate;border-spacing:" + ensureUnits(value); + return; + + case "text-line-through": + if ((value == "single") || (value == "double")) { + n[i++] = "text-decoration:line-through"; + } + return; + + case "mso-zero-height": + if (value == "yes") { + n[i++] = "display:none"; + } + return; + } + + // Eliminate all MS Office style definitions that have no CSS equivalent by examining the first characters in the name + if (/^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?!align|decor|indent|trans)|top-bar|version|vnd|word-break)/.test(name)) { + return; + } + + // If it reached this point, it must be a valid CSS style + n[i++] = name + ":" + parts[1]; // Lower-case name, but keep value case + } + }); + + // If style attribute contained any valid styles the re-write it; otherwise delete style attribute. + if (i > 0) { + return tag + ' style="' + n.join(';') + '"'; + } else { + return tag; + } + } + ] + ]); + } + } + + // Replace headers with + if (getParam(ed, "paste_convert_headers_to_strong")) { + process([ + [/]*>/gi, "

                    "], + [/<\/h[1-6][^>]*>/gi, "

                    "] + ]); + } + + process([ + // Copy paste from Java like Open Office will produce this junk on FF + [/Version:[\d.]+\nStartHTML:\d+\nEndHTML:\d+\nStartFragment:\d+\nEndFragment:\d+/gi, ''] + ]); + + // Class attribute options are: leave all as-is ("none"), remove all ("all"), or remove only those starting with mso ("mso"). + // Note:- paste_strip_class_attributes: "none", verify_css_classes: true is also a good variation. + stripClass = getParam(ed, "paste_strip_class_attributes"); + + if (stripClass !== "none") { + function removeClasses(match, g1) { + if (stripClass === "all") + return ''; + + var cls = grep(explode(g1.replace(/^(["'])(.*)\1$/, "$2"), " "), + function(v) { + return (/^(?!mso)/i.test(v)); + } + ); + + return cls.length ? ' class="' + cls.join(" ") + '"' : ''; + }; + + h = h.replace(/ class="([^"]+)"/gi, removeClasses); + h = h.replace(/ class=([\-\w]+)/gi, removeClasses); + } + + // Remove spans option + if (getParam(ed, "paste_remove_spans")) { + h = h.replace(/<\/?span[^>]*>/gi, ""); + } + + //console.log('After preprocess:' + h); + + o.content = h; + }, + + /** + * Various post process items. + */ + _postProcess : function(pl, o) { + var t = this, ed = t.editor, dom = ed.dom, styleProps; + + if (ed.settings.paste_enable_default_filters == false) { + return; + } + + if (o.wordContent) { + // Remove named anchors or TOC links + each(dom.select('a', o.node), function(a) { + if (!a.href || a.href.indexOf('#_Toc') != -1) + dom.remove(a, 1); + }); + + if (getParam(ed, "paste_convert_middot_lists")) { + t._convertLists(pl, o); + } + + // Process styles + styleProps = getParam(ed, "paste_retain_style_properties"); // retained properties + + // Process only if a string was specified and not equal to "all" or "*" + if ((tinymce.is(styleProps, "string")) && (styleProps !== "all") && (styleProps !== "*")) { + styleProps = tinymce.explode(styleProps.replace(/^none$/i, "")); + + // Retains some style properties + each(dom.select('*', o.node), function(el) { + var newStyle = {}, npc = 0, i, sp, sv; + + // Store a subset of the existing styles + if (styleProps) { + for (i = 0; i < styleProps.length; i++) { + sp = styleProps[i]; + sv = dom.getStyle(el, sp); + + if (sv) { + newStyle[sp] = sv; + npc++; + } + } + } + + // Remove all of the existing styles + dom.setAttrib(el, 'style', ''); + + if (styleProps && npc > 0) + dom.setStyles(el, newStyle); // Add back the stored subset of styles + else // Remove empty span tags that do not have class attributes + if (el.nodeName == 'SPAN' && !el.className) + dom.remove(el, true); + }); + } + } + + // Remove all style information or only specifically on WebKit to avoid the style bug on that browser + if (getParam(ed, "paste_remove_styles") || (getParam(ed, "paste_remove_styles_if_webkit") && tinymce.isWebKit)) { + each(dom.select('*[style]', o.node), function(el) { + el.removeAttribute('style'); + el.removeAttribute('data-mce-style'); + }); + } else { + if (tinymce.isWebKit) { + // We need to compress the styles on WebKit since if you paste it will become + // Removing the mce_style that contains the real value will force the Serializer engine to compress the styles + each(dom.select('*', o.node), function(el) { + el.removeAttribute('data-mce-style'); + }); + } + } + }, + + /** + * Converts the most common bullet and number formats in Office into a real semantic UL/LI list. + */ + _convertLists : function(pl, o) { + var dom = pl.editor.dom, listElm, li, lastMargin = -1, margin, levels = [], lastType, html; + + // Convert middot lists into real semantic lists + each(dom.select('p', o.node), function(p) { + var sib, val = '', type, html, idx, parents; + + // Get text node value at beginning of paragraph + for (sib = p.firstChild; sib && sib.nodeType == 3; sib = sib.nextSibling) + val += sib.nodeValue; + + val = p.innerHTML.replace(/<\/?\w+[^>]*>/gi, '').replace(/ /g, '\u00a0'); + + // Detect unordered lists look for bullets + if (/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*\u00a0*/.test(val)) + type = 'ul'; + + // Detect ordered lists 1., a. or ixv. + if (/^__MCE_ITEM__\s*\w+\.\s*\u00a0+/.test(val)) + type = 'ol'; + + // Check if node value matches the list pattern: o   + if (type) { + margin = parseFloat(p.style.marginLeft || 0); + + if (margin > lastMargin) + levels.push(margin); + + if (!listElm || type != lastType) { + listElm = dom.create(type); + dom.insertAfter(listElm, p); + } else { + // Nested list element + if (margin > lastMargin) { + listElm = li.appendChild(dom.create(type)); + } else if (margin < lastMargin) { + // Find parent level based on margin value + idx = tinymce.inArray(levels, margin); + parents = dom.getParents(listElm.parentNode, type); + listElm = parents[parents.length - 1 - idx] || listElm; + } + } + + // Remove middot or number spans if they exists + each(dom.select('span', p), function(span) { + var html = span.innerHTML.replace(/<\/?\w+[^>]*>/gi, ''); + + // Remove span with the middot or the number + if (type == 'ul' && /^__MCE_ITEM__[\u2022\u00b7\u00a7\u00d8o\u25CF]/.test(html)) + dom.remove(span); + else if (/^__MCE_ITEM__[\s\S]*\w+\.( |\u00a0)*\s*/.test(html)) + dom.remove(span); + }); + + html = p.innerHTML; + + // Remove middot/list items + if (type == 'ul') + html = p.innerHTML.replace(/__MCE_ITEM__/g, '').replace(/^[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*( |\u00a0)+\s*/, ''); + else + html = p.innerHTML.replace(/__MCE_ITEM__/g, '').replace(/^\s*\w+\.( |\u00a0)+\s*/, ''); + + // Create li and add paragraph data into the new li + li = listElm.appendChild(dom.create('li', 0, html)); + dom.remove(p); + + lastMargin = margin; + lastType = type; + } else + listElm = lastMargin = 0; // End list element + }); + + // Remove any left over makers + html = o.node.innerHTML; + if (html.indexOf('__MCE_ITEM__') != -1) + o.node.innerHTML = html.replace(/__MCE_ITEM__/g, ''); + }, + + /** + * Inserts the specified contents at the caret position. + */ + _insert : function(h, skip_undo) { + var ed = this.editor, r = ed.selection.getRng(); + + // First delete the contents seems to work better on WebKit when the selection spans multiple list items or multiple table cells. + if (!ed.selection.isCollapsed() && r.startContainer != r.endContainer) + ed.getDoc().execCommand('Delete', false, null); + + ed.execCommand('mceInsertContent', false, h, {skip_undo : skip_undo}); + }, + + /** + * Instead of the old plain text method which tried to re-create a paste operation, the + * new approach adds a plain text mode toggle switch that changes the behavior of paste. + * This function is passed the same input that the regular paste plugin produces. + * It performs additional scrubbing and produces (and inserts) the plain text. + * This approach leverages all of the great existing functionality in the paste + * plugin, and requires minimal changes to add the new functionality. + * Speednet - June 2009 + */ + _insertPlainText : function(ed, dom, h) { + var i, len, pos, rpos, node, breakElms, before, after, + w = ed.getWin(), + d = ed.getDoc(), + sel = ed.selection, + is = tinymce.is, + inArray = tinymce.inArray, + linebr = getParam(ed, "paste_text_linebreaktype"), + rl = getParam(ed, "paste_text_replacements"); + + function process(items) { + each(items, function(v) { + if (v.constructor == RegExp) + h = h.replace(v, ""); + else + h = h.replace(v[0], v[1]); + }); + }; + + if ((typeof(h) === "string") && (h.length > 0)) { + // If HTML content with line-breaking tags, then remove all cr/lf chars because only tags will break a line + if (/<(?:p|br|h[1-6]|ul|ol|dl|table|t[rdh]|div|blockquote|fieldset|pre|address|center)[^>]*>/i.test(h)) { + process([ + /[\n\r]+/g + ]); + } else { + // Otherwise just get rid of carriage returns (only need linefeeds) + process([ + /\r+/g + ]); + } + + process([ + [/<\/(?:p|h[1-6]|ul|ol|dl|table|div|blockquote|fieldset|pre|address|center)>/gi, "\n\n"], // Block tags get a blank line after them + [/]*>|<\/tr>/gi, "\n"], // Single linebreak for
                    tags and table rows + [/<\/t[dh]>\s*]*>/gi, "\t"], // Table cells get tabs betweem them + /<[a-z!\/?][^>]*>/gi, // Delete all remaining tags + [/ /gi, " "], // Convert non-break spaces to regular spaces (remember, *plain text*) + [/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi, "$1"], // Cool little RegExp deletes whitespace around linebreak chars. + [/\n{3,}/g, "\n\n"], // Max. 2 consecutive linebreaks + /^\s+|\s+$/g // Trim the front & back + ]); + + h = dom.decode(tinymce.html.Entities.encodeRaw(h)); + + // Delete any highlighted text before pasting + if (!sel.isCollapsed()) { + d.execCommand("Delete", false, null); + } + + // Perform default or custom replacements + if (is(rl, "array") || (is(rl, "array"))) { + process(rl); + } + else if (is(rl, "string")) { + process(new RegExp(rl, "gi")); + } + + // Treat paragraphs as specified in the config + if (linebr == "none") { + process([ + [/\n+/g, " "] + ]); + } + else if (linebr == "br") { + process([ + [/\n/g, "
                    "] + ]); + } + else { + process([ + /^\s+|\s+$/g, + [/\n\n/g, "

                    "], + [/\n/g, "
                    "] + ]); + } + + // This next piece of code handles the situation where we're pasting more than one paragraph of plain + // text, and we are pasting the content into the middle of a block node in the editor. The block + // node gets split at the selection point into "Para A" and "Para B" (for the purposes of explaining). + // The first paragraph of the pasted text is appended to "Para A", and the last paragraph of the + // pasted text is prepended to "Para B". Any other paragraphs of pasted text are placed between + // "Para A" and "Para B". This code solves a host of problems with the original plain text plugin and + // now handles styles correctly. (Pasting plain text into a styled paragraph is supposed to make the + // plain text take the same style as the existing paragraph.) + if ((pos = h.indexOf("

                    ")) != -1) { + rpos = h.lastIndexOf("

                    "); + node = sel.getNode(); + breakElms = []; // Get list of elements to break + + do { + if (node.nodeType == 1) { + // Don't break tables and break at body + if (node.nodeName == "TD" || node.nodeName == "BODY") { + break; + } + + breakElms[breakElms.length] = node; + } + } while (node = node.parentNode); + + // Are we in the middle of a block node? + if (breakElms.length > 0) { + before = h.substring(0, pos); + after = ""; + + for (i=0, len=breakElms.length; i"; + after += "<" + breakElms[breakElms.length-i-1].nodeName.toLowerCase() + ">"; + } + + if (pos == rpos) { + h = before + after + h.substring(pos+7); + } + else { + h = before + h.substring(pos+4, rpos+4) + after + h.substring(rpos+7); + } + } + } + + // Insert content at the caret, plus add a marker for repositioning the caret + ed.execCommand("mceInsertRawHTML", false, h + ' '); + + // Reposition the caret to the marker, which was placed immediately after the inserted content. + // Needs to be done asynchronously (in window.setTimeout) or else it doesn't work in all browsers. + // The second part of the code scrolls the content up if the caret is positioned off-screen. + // This is only necessary for WebKit browsers, but it doesn't hurt to use for all. + window.setTimeout(function() { + var marker = dom.get('_plain_text_marker'), + elm, vp, y, elmHeight; + + sel.select(marker, false); + d.execCommand("Delete", false, null); + marker = null; + + // Get element, position and height + elm = sel.getStart(); + vp = dom.getViewPort(w); + y = dom.getPos(elm).y; + elmHeight = elm.clientHeight; + + // Is element within viewport if not then scroll it into view + if ((y < vp.y) || (y + elmHeight > vp.y + vp.h)) { + d.body.scrollTop = y < vp.y ? y : y - vp.h + 25; + } + }, 0); + } + }, + + /** + * This method will open the old style paste dialogs. Some users might want the old behavior but still use the new cleanup engine. + */ + _legacySupport : function() { + var t = this, ed = t.editor; + + // Register command(s) for backwards compatibility + ed.addCommand("mcePasteWord", function() { + ed.windowManager.open({ + file: t.url + "/pasteword.htm", + width: parseInt(getParam(ed, "paste_dialog_width")), + height: parseInt(getParam(ed, "paste_dialog_height")), + inline: 1 + }); + }); + + if (getParam(ed, "paste_text_use_dialog")) { + ed.addCommand("mcePasteText", function() { + ed.windowManager.open({ + file : t.url + "/pastetext.htm", + width: parseInt(getParam(ed, "paste_dialog_width")), + height: parseInt(getParam(ed, "paste_dialog_height")), + inline : 1 + }); + }); + } + + // Register button for backwards compatibility + ed.addButton("pasteword", {title : "paste.paste_word_desc", cmd : "mcePasteWord"}); + } + }); + + // Register plugin + tinymce.PluginManager.add("paste", tinymce.plugins.PastePlugin); +})(); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js new file mode 100644 index 0000000..c524f9e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js @@ -0,0 +1,36 @@ +tinyMCEPopup.requireLangPack(); + +var PasteTextDialog = { + init : function() { + this.resize(); + }, + + insert : function() { + var h = tinyMCEPopup.dom.encode(document.getElementById('content').value), lines; + + // Convert linebreaks into paragraphs + if (document.getElementById('linebreaks').checked) { + lines = h.split(/\r?\n/); + if (lines.length > 1) { + h = ''; + tinymce.each(lines, function(row) { + h += '

                    ' + row + '

                    '; + }); + } + } + + tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h}); + tinyMCEPopup.close(); + }, + + resize : function() { + var vp = tinyMCEPopup.dom.getViewPort(window), el; + + el = document.getElementById('content'); + + el.style.width = (vp.w - 20) + 'px'; + el.style.height = (vp.h - 90) + 'px'; + } +}; + +tinyMCEPopup.onInit.add(PasteTextDialog.init, PasteTextDialog); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js new file mode 100644 index 0000000..a52731c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js @@ -0,0 +1,51 @@ +tinyMCEPopup.requireLangPack(); + +var PasteWordDialog = { + init : function() { + var ed = tinyMCEPopup.editor, el = document.getElementById('iframecontainer'), ifr, doc, css, cssHTML = ''; + + // Create iframe + el.innerHTML = ''; + ifr = document.getElementById('iframe'); + doc = ifr.contentWindow.document; + + // Force absolute CSS urls + css = [ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css")]; + css = css.concat(tinymce.explode(ed.settings.content_css) || []); + tinymce.each(css, function(u) { + cssHTML += ''; + }); + + // Write content into iframe + doc.open(); + doc.write('' + cssHTML + ''); + doc.close(); + + doc.designMode = 'on'; + this.resize(); + + window.setTimeout(function() { + ifr.contentWindow.focus(); + }, 10); + }, + + insert : function() { + var h = document.getElementById('iframe').contentWindow.document.body.innerHTML; + + tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true}); + tinyMCEPopup.close(); + }, + + resize : function() { + var vp = tinyMCEPopup.dom.getViewPort(window), el; + + el = document.getElementById('iframe'); + + if (el) { + el.style.width = (vp.w - 20) + 'px'; + el.style.height = (vp.h - 90) + 'px'; + } + } +}; + +tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/de_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/de_dlg.js new file mode 100644 index 0000000..5a3f5e8 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/de_dlg.js @@ -0,0 +1,5 @@ +tinyMCE.addI18n('de.paste_dlg',{ +text_title:"Dr\u00FCcken Sie auf Ihrer Tastatur Strg+V, um den Text einzuf\u00FCgen.", +text_linebreaks:"Zeilenumbr\u00FCche beibehalten", +word_title:"Dr\u00FCcken Sie auf Ihrer Tastatur Strg+V, um den Text einzuf\u00FCgen." +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js new file mode 100644 index 0000000..eeac778 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js @@ -0,0 +1,5 @@ +tinyMCE.addI18n('en.paste_dlg',{ +text_title:"Use CTRL+V on your keyboard to paste the text into the window.", +text_linebreaks:"Keep linebreaks", +word_title:"Use CTRL+V on your keyboard to paste the text into the window." +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/eo_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/eo_dlg.js new file mode 100644 index 0000000..e6613b7 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/eo_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.paste_dlg',{"word_title":"Uzu CTRL V por alglui tekston en la fenestron.","text_linebreaks":"Konservi linisaltojn","text_title":"Uzu CTRL V por alglui tekston en la fenestron."}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/es_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/es_dlg.js new file mode 100644 index 0000000..d5edb69 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/es_dlg.js @@ -0,0 +1,5 @@ +tinyMCE.addI18n('es.paste_dlg',{ +text_title:"Use CTRL+V en su teclado para pegar el texto en la ventana.", +text_linebreaks:"Keep linebreaks", +word_title:"Use CTRL+V en su teclado para pegar el texto en la ventana." +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/fr_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/fr_dlg.js new file mode 100644 index 0000000..ae8dd5a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/fr_dlg.js @@ -0,0 +1,5 @@ +tinyMCE.addI18n('fr.paste_dlg',{ +text_title:"Utilisez CTRL+V sur votre clavier pour coller le texte dans la fen\u00EAtre.", +text_linebreaks:"Conserver les sauts de ligne", +word_title:"Utilisez CTRL+V sur votre clavier pour coller le texte dans la fen\u00EAtre." +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ja_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ja_dlg.js new file mode 100644 index 0000000..c8471ed --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ja_dlg.js @@ -0,0 +1,5 @@ +tinyMCE.addI18n('ja.paste_dlg',{ +text_title:"\u30AD\u30FC\u30DC\u30FC\u30C9\u3067CTRL+V\u3068\u5165\u529B\u3057\u30C6\u30AD\u30B9\u30C8\u3092\u8CBC\u308A\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002", +text_linebreaks:"\u6539\u884C\u3092\u4FDD\u6301\u3059\u308B", +word_title:"\u30AD\u30FC\u30DC\u30FC\u30C9\u3067CTRL+V\u3068\u5165\u529B\u3057\u30C6\u30AD\u30B9\u30C8\u3092\u8CBC\u308A\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/nl_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/nl_dlg.js new file mode 100644 index 0000000..99e604f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/nl_dlg.js @@ -0,0 +1,5 @@ +tinyMCE.addI18n('nl.paste_dlg',{ +text_title:"Gebruik Ctrl+V om tekst in het venster te plakken.", +text_linebreaks:"Regelafbreking bewaren", +word_title:"Gebruik Ctrl+V om tekst in het venster te plakken." +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/pt_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/pt_dlg.js new file mode 100644 index 0000000..db361f3 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/pt_dlg.js @@ -0,0 +1,5 @@ +tinyMCE.addI18n('pt.paste_dlg',{ +text_title:"Use CTRL+V para colar o texto na janela.", +text_linebreaks:"Manter quebras de linha", +word_title:"Use CTRL+V para colar o texto na janela." +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ru_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ru_dlg.js new file mode 100644 index 0000000..0014b07 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/langs/ru_dlg.js @@ -0,0 +1,5 @@ +tinyMCE.addI18n('ru.paste_dlg',{ +text_title:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 CTRL + V \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u043E\u043A\u043D\u043E", +text_linebreaks:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u044B \u0441\u0442\u0440\u043E\u043A", +word_title:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 CTRL + V \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u043E\u043A\u043D\u043E" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm new file mode 100644 index 0000000..b655945 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm @@ -0,0 +1,27 @@ + + + {#paste.paste_text_desc} + + + + +
                    +
                    {#paste.paste_text_desc}
                    + +
                    + +
                    + +
                    + +
                    {#paste_dlg.text_title}
                    + + + +
                    + + +
                    +
                    + + \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm new file mode 100644 index 0000000..0f6bb41 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm @@ -0,0 +1,21 @@ + + + {#paste.paste_word_desc} + + + + +
                    +
                    {#paste.paste_word_desc}
                    + +
                    {#paste_dlg.word_title}
                    + +
                    + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js new file mode 100644 index 0000000..507909c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.Preview",{init:function(a,b){var d=this,c=tinymce.explode(a.settings.content_css);d.editor=a;tinymce.each(c,function(f,e){c[e]=a.documentBaseURI.toAbsolute(f)});a.addCommand("mcePreview",function(){a.windowManager.open({file:a.getParam("plugin_preview_pageurl",b+"/preview.html"),width:parseInt(a.getParam("plugin_preview_width","550")),height:parseInt(a.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:c?c.join(","):a.baseURI.toAbsolute("themes/"+a.settings.theme+"/skins/"+a.settings.skin+"/content.css"),inline:a.getParam("plugin_preview_inline",1)},{base:a.documentBaseURI.getURI()})});a.addButton("preview",{title:"preview.preview_desc",cmd:"mcePreview"})},getInfo:function(){return{longname:"Preview",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("preview",tinymce.plugins.Preview)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js new file mode 100644 index 0000000..80f00f0 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js @@ -0,0 +1,53 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.Preview', { + init : function(ed, url) { + var t = this, css = tinymce.explode(ed.settings.content_css); + + t.editor = ed; + + // Force absolute CSS urls + tinymce.each(css, function(u, k) { + css[k] = ed.documentBaseURI.toAbsolute(u); + }); + + ed.addCommand('mcePreview', function() { + ed.windowManager.open({ + file : ed.getParam("plugin_preview_pageurl", url + "/preview.html"), + width : parseInt(ed.getParam("plugin_preview_width", "550")), + height : parseInt(ed.getParam("plugin_preview_height", "600")), + resizable : "yes", + scrollbars : "yes", + popup_css : css ? css.join(',') : ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css"), + inline : ed.getParam("plugin_preview_inline", 1) + }, { + base : ed.documentBaseURI.getURI() + }); + }); + + ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'}); + }, + + getInfo : function() { + return { + longname : 'Preview', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('preview', tinymce.plugins.Preview); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/example.html b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/example.html new file mode 100644 index 0000000..b2c3d90 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/example.html @@ -0,0 +1,28 @@ + + + + + +Example of a custom preview page + + + +Editor contents:
                    +
                    + +
                    + + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js new file mode 100644 index 0000000..f8dc810 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js @@ -0,0 +1,73 @@ +/** + * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose. + */ + +function writeFlash(p) { + writeEmbed( + 'D27CDB6E-AE6D-11cf-96B8-444553540000', + 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', + 'application/x-shockwave-flash', + p + ); +} + +function writeShockWave(p) { + writeEmbed( + '166B1BCA-3F9C-11CF-8075-444553540000', + 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0', + 'application/x-director', + p + ); +} + +function writeQuickTime(p) { + writeEmbed( + '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B', + 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0', + 'video/quicktime', + p + ); +} + +function writeRealMedia(p) { + writeEmbed( + 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA', + 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', + 'audio/x-pn-realaudio-plugin', + p + ); +} + +function writeWindowsMedia(p) { + p.url = p.src; + writeEmbed( + '6BF52A52-394A-11D3-B153-00C04F79FAA6', + 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701', + 'application/x-mplayer2', + p + ); +} + +function writeEmbed(cls, cb, mt, p) { + var h = '', n; + + h += ''; + + h += ' + + + + + +{#preview.preview_desc} + + + + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js new file mode 100644 index 0000000..b5b3a55 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.Print",{init:function(a,b){a.addCommand("mcePrint",function(){a.getWin().print()});a.addButton("print",{title:"print.print_desc",cmd:"mcePrint"})},getInfo:function(){return{longname:"Print",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("print",tinymce.plugins.Print)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js new file mode 100644 index 0000000..3933fe6 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js @@ -0,0 +1,34 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.Print', { + init : function(ed, url) { + ed.addCommand('mcePrint', function() { + ed.getWin().print(); + }); + + ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'}); + }, + + getInfo : function() { + return { + longname : 'Print', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('print', tinymce.plugins.Print); +})(); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm new file mode 100644 index 0000000..266808c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js new file mode 100644 index 0000000..794477c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js @@ -0,0 +1 @@ +(function(){var a=tinymce.dom.Event,c=tinymce.grep,d=tinymce.each,b=tinymce.inArray;function e(j,i,h){var g,k;g=j.createTreeWalker(i,NodeFilter.SHOW_ALL,null,false);while(k=g.nextNode()){if(h){if(!h(k)){return false}}if(k.nodeType==3&&k.nodeValue&&/[^\s\u00a0]+/.test(k.nodeValue)){return false}if(k.nodeType==1&&/^(HR|IMG|TABLE)$/.test(k.nodeName)){return false}}return true}tinymce.create("tinymce.plugins.Safari",{init:function(f){var g=this,h;if(!tinymce.isWebKit){return}g.editor=f;g.webKitFontSizes=["x-small","small","medium","large","x-large","xx-large","-webkit-xxx-large"];g.namedFontSizes=["xx-small","x-small","small","medium","large","x-large","xx-large"];f.addCommand("CreateLink",function(k,j){var m=f.selection.getNode(),l=f.dom,i;if(m&&(/^(left|right)$/i.test(l.getStyle(m,"float",1))||/^(left|right)$/i.test(l.getAttrib(m,"align")))){i=l.create("a",{href:j},m.cloneNode());m.parentNode.replaceChild(i,m);f.selection.select(i)}else{f.getDoc().execCommand("CreateLink",false,j)}});f.onKeyUp.add(function(j,o){var l,i,m,p,k;if(o.keyCode==46||o.keyCode==8){i=j.getBody();l=i.innerHTML;k=j.selection;if(i.childNodes.length==1&&!/<(img|hr)/.test(l)&&tinymce.trim(l.replace(/<[^>]+>/g,"")).length==0){j.setContent('


                    ',{format:"raw"});p=i.firstChild;m=k.getRng();m.setStart(p,0);m.setEnd(p,0);k.setRng(m)}}});f.addCommand("FormatBlock",function(j,i){var l=f.dom,k=l.getParent(f.selection.getNode(),l.isBlock);if(k){l.replace(l.create(i),k,1)}else{f.getDoc().execCommand("FormatBlock",false,i)}});f.addCommand("mceInsertContent",function(j,i){f.getDoc().execCommand("InsertText",false,"mce_marker");f.getBody().innerHTML=f.getBody().innerHTML.replace(/mce_marker/g,f.dom.processHTML(i)+'XX');f.selection.select(f.dom.get("_mce_tmp"));f.getDoc().execCommand("Delete",false," ")});f.onKeyPress.add(function(o,p){var q,v,r,l,j,k,i,u,m,t,s;if(p.keyCode==13){i=o.selection;q=i.getNode();if(p.shiftKey||o.settings.force_br_newlines&&q.nodeName!="LI"){g._insertBR(o);a.cancel(p)}if(v=h.getParent(q,"LI")){r=h.getParent(v,"OL,UL");u=o.getDoc();s=h.create("p");h.add(s,"br",{mce_bogus:"1"});if(e(u,v)){if(k=h.getParent(r.parentNode,"LI,OL,UL")){return}k=h.getParent(r,"p,h1,h2,h3,h4,h5,h6,div")||r;l=u.createRange();l.setStartBefore(k);l.setEndBefore(v);j=u.createRange();j.setStartAfter(v);j.setEndAfter(k);m=l.cloneContents();t=j.cloneContents();if(!e(u,t)){h.insertAfter(t,k)}h.insertAfter(s,k);if(!e(u,m)){h.insertAfter(m,k)}h.remove(k);k=s.firstChild;l=u.createRange();l.setStartBefore(k);l.setEndBefore(k);i.setRng(l);return a.cancel(p)}}}});f.onExecCommand.add(function(i,k){var j,m,n,l;if(k=="InsertUnorderedList"||k=="InsertOrderedList"){j=i.selection;m=i.dom;if(n=m.getParent(j.getNode(),function(o){return/^(H[1-6]|P|ADDRESS|PRE)$/.test(o.nodeName)})){l=j.getBookmark();m.remove(n,1);j.moveToBookmark(l)}}});f.onClick.add(function(i,j){j=j.target;if(j.nodeName=="IMG"){g.selElm=j;i.selection.select(j)}else{g.selElm=null}});f.onInit.add(function(){g._fixWebKitSpans()});f.onSetContent.add(function(){h=f.dom;d(["strong","b","em","u","strike","sub","sup","a"],function(i){d(c(h.select(i)).reverse(),function(l){var k=l.nodeName.toLowerCase(),j;if(k=="a"){if(l.name){h.replace(h.create("img",{mce_name:"a",name:l.name,"class":"mceItemAnchor"}),l)}return}switch(k){case"b":case"strong":if(k=="b"){k="strong"}j="font-weight: bold;";break;case"em":j="font-style: italic;";break;case"u":j="text-decoration: underline;";break;case"sub":j="vertical-align: sub;";break;case"sup":j="vertical-align: super;";break;case"strike":j="text-decoration: line-through;";break}h.replace(h.create("span",{mce_name:k,style:j,"class":"Apple-style-span"}),l,1)})})});f.onPreProcess.add(function(i,j){h=i.dom;d(c(j.node.getElementsByTagName("span")).reverse(),function(m){var k,l;if(j.get){if(h.hasClass(m,"Apple-style-span")){l=m.style.backgroundColor;switch(h.getAttrib(m,"mce_name")){case"font":if(!i.settings.convert_fonts_to_spans){h.setAttrib(m,"style","")}break;case"strong":case"em":case"sub":case"sup":h.setAttrib(m,"style","");break;case"strike":case"u":if(!i.settings.inline_styles){h.setAttrib(m,"style","")}else{h.setAttrib(m,"mce_name","")}break;default:if(!i.settings.inline_styles){h.setAttrib(m,"style","")}}if(l){m.style.backgroundColor=l}}}if(h.hasClass(m,"mceItemRemoved")){h.remove(m,1)}})});f.onPostProcess.add(function(i,j){j.content=j.content.replace(/
                    <\/(h[1-6]|div|p|address|pre)>/g,"");j.content=j.content.replace(/ id=\"undefined\"/g,"")})},getInfo:function(){return{longname:"Safari compatibility",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_fixWebKitSpans:function(){var g=this,f=g.editor;a.add(f.getDoc(),"DOMNodeInserted",function(h){h=h.target;if(h&&h.nodeType==1){g._fixAppleSpan(h)}})},_fixAppleSpan:function(l){var g=this.editor,m=g.dom,i=this.webKitFontSizes,f=this.namedFontSizes,j=g.settings,h,k;if(m.getAttrib(l,"mce_fixed")){return}if(l.nodeName=="SPAN"&&l.className=="Apple-style-span"){h=l.style;if(!j.convert_fonts_to_spans){if(h.fontSize){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"size",b(i,h.fontSize)+1)}if(h.fontFamily){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"face",h.fontFamily)}if(h.color){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"color",m.toHex(h.color))}if(h.backgroundColor){m.setAttrib(l,"mce_name","font");m.setStyle(l,"background-color",h.backgroundColor)}}else{if(h.fontSize){m.setStyle(l,"fontSize",f[b(i,h.fontSize)])}}if(h.fontWeight=="bold"){m.setAttrib(l,"mce_name","strong")}if(h.fontStyle=="italic"){m.setAttrib(l,"mce_name","em")}if(h.textDecoration=="underline"){m.setAttrib(l,"mce_name","u")}if(h.textDecoration=="line-through"){m.setAttrib(l,"mce_name","strike")}if(h.verticalAlign=="super"){m.setAttrib(l,"mce_name","sup")}if(h.verticalAlign=="sub"){m.setAttrib(l,"mce_name","sub")}m.setAttrib(l,"mce_fixed","1")}},_insertBR:function(f){var j=f.dom,h=f.selection,i=h.getRng(),g;i.insertNode(g=j.create("br"));i.setStartAfter(g);i.setEndAfter(g);h.setRng(i);if(h.getSel().focusNode==g.previousSibling){h.select(j.insertAfter(j.doc.createTextNode("\u00a0"),g));h.collapse(1)}f.getWin().scrollTo(0,j.getPos(h.getRng().startContainer).y)}});tinymce.PluginManager.add("safari",tinymce.plugins.Safari)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js new file mode 100644 index 0000000..6667b7c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js @@ -0,0 +1,438 @@ +/** + * $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $ + * + * @author Moxiecode + * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved. + */ + +(function() { + var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray; + + function isEmpty(d, e, f) { + var w, n; + + w = d.createTreeWalker(e, NodeFilter.SHOW_ALL, null, false); + while (n = w.nextNode()) { + // Filter func + if (f) { + if (!f(n)) + return false; + } + + // Non whitespace text node + if (n.nodeType == 3 && n.nodeValue && /[^\s\u00a0]+/.test(n.nodeValue)) + return false; + + // Is non text element byt still content + if (n.nodeType == 1 && /^(HR|IMG|TABLE)$/.test(n.nodeName)) + return false; + } + + return true; + }; + + tinymce.create('tinymce.plugins.Safari', { + init : function(ed) { + var t = this, dom; + + // Ignore on non webkit + if (!tinymce.isWebKit) + return; + + t.editor = ed; + t.webKitFontSizes = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', '-webkit-xxx-large']; + t.namedFontSizes = ['xx-small', 'x-small','small','medium','large','x-large', 'xx-large']; + + // Safari CreateLink command will not work correctly on images that is aligned + ed.addCommand('CreateLink', function(u, v) { + var n = ed.selection.getNode(), dom = ed.dom, a; + + if (n && (/^(left|right)$/i.test(dom.getStyle(n, 'float', 1)) || /^(left|right)$/i.test(dom.getAttrib(n, 'align')))) { + a = dom.create('a', {href : v}, n.cloneNode()); + n.parentNode.replaceChild(a, n); + ed.selection.select(a); + } else + ed.getDoc().execCommand("CreateLink", false, v); + }); + +/* + // WebKit generates spans out of thin air this patch used to remove them but it will also remove styles we want so it's disabled for now + ed.onPaste.add(function(ed, e) { + function removeStyles(e) { + e = e.target; + + if (e.nodeType == 1) { + e.style.cssText = ''; + + each(ed.dom.select('*', e), function(e) { + e.style.cssText = ''; + }); + } + }; + + Event.add(ed.getDoc(), 'DOMNodeInserted', removeStyles); + + window.setTimeout(function() { + Event.remove(ed.getDoc(), 'DOMNodeInserted', removeStyles); + }, 0); + }); +*/ + ed.onKeyUp.add(function(ed, e) { + var h, b, r, n, s; + + // If backspace or delete key + if (e.keyCode == 46 || e.keyCode == 8) { + b = ed.getBody(); + h = b.innerHTML; + s = ed.selection; + + // If there is no text content or images or hr elements then remove everything + if (b.childNodes.length == 1 && !/<(img|hr)/.test(h) && tinymce.trim(h.replace(/<[^>]+>/g, '')).length == 0) { + // Inject paragrah and bogus br + ed.setContent('


                    ', {format : 'raw'}); + + // Move caret before bogus br + n = b.firstChild; + r = s.getRng(); + r.setStart(n, 0); + r.setEnd(n, 0); + s.setRng(r); + } + } + }); + + // Workaround for FormatBlock bug, http://bugs.webkit.org/show_bug.cgi?id=16004 + ed.addCommand('FormatBlock', function(u, v) { + var dom = ed.dom, e = dom.getParent(ed.selection.getNode(), dom.isBlock); + + if (e) + dom.replace(dom.create(v), e, 1); + else + ed.getDoc().execCommand("FormatBlock", false, v); + }); + + // Workaround for InsertHTML bug, http://bugs.webkit.org/show_bug.cgi?id=16382 + ed.addCommand('mceInsertContent', function(u, v) { + ed.getDoc().execCommand("InsertText", false, 'mce_marker'); + ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, ed.dom.processHTML(v) + 'XX'); + ed.selection.select(ed.dom.get('_mce_tmp')); + ed.getDoc().execCommand("Delete", false, ' '); + }); + + /* ed.onKeyDown.add(function(ed, e) { + // Ctrl+A select all will fail on WebKit since if you paste the contents you selected it will produce a odd div wrapper + if ((e.ctrlKey || e.metaKey) && e.keyCode == 65) { + ed.selection.select(ed.getBody(), 1); + return Event.cancel(e); + } + });*/ + + ed.onKeyPress.add(function(ed, e) { + var se, li, lic, r1, r2, n, sel, doc, be, af, pa; + + if (e.keyCode == 13) { + sel = ed.selection; + se = sel.getNode(); + + // Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973 + if (e.shiftKey || ed.settings.force_br_newlines && se.nodeName != 'LI') { + t._insertBR(ed); + Event.cancel(e); + } + + // Workaround for DIV elements produced by Safari + if (li = dom.getParent(se, 'LI')) { + lic = dom.getParent(li, 'OL,UL'); + doc = ed.getDoc(); + + pa = dom.create('p'); + dom.add(pa, 'br', {mce_bogus : "1"}); + + if (isEmpty(doc, li)) { + // If list in list then use browser default behavior + if (n = dom.getParent(lic.parentNode, 'LI,OL,UL')) + return; + + n = dom.getParent(lic, 'p,h1,h2,h3,h4,h5,h6,div') || lic; + + // Create range from the start of block element to the list item + r1 = doc.createRange(); + r1.setStartBefore(n); + r1.setEndBefore(li); + + // Create range after the list to the end of block element + r2 = doc.createRange(); + r2.setStartAfter(li); + r2.setEndAfter(n); + + be = r1.cloneContents(); + af = r2.cloneContents(); + + if (!isEmpty(doc, af)) + dom.insertAfter(af, n); + + dom.insertAfter(pa, n); + + if (!isEmpty(doc, be)) + dom.insertAfter(be, n); + + dom.remove(n); + + n = pa.firstChild; + r1 = doc.createRange(); + r1.setStartBefore(n); + r1.setEndBefore(n); + sel.setRng(r1); + + return Event.cancel(e); + } + } + } + }); + + // Safari doesn't place lists outside block elements + ed.onExecCommand.add(function(ed, cmd) { + var sel, dom, bl, bm; + + if (cmd == 'InsertUnorderedList' || cmd == 'InsertOrderedList') { + sel = ed.selection; + dom = ed.dom; + + if (bl = dom.getParent(sel.getNode(), function(n) {return /^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName);})) { + bm = sel.getBookmark(); + dom.remove(bl, 1); + sel.moveToBookmark(bm); + } + } + }); + + // Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250 + ed.onClick.add(function(ed, e) { + e = e.target; + + if (e.nodeName == 'IMG') { + t.selElm = e; + ed.selection.select(e); + } else + t.selElm = null; + }); + + ed.onInit.add(function() { + t._fixWebKitSpans(); + }); + + ed.onSetContent.add(function() { + dom = ed.dom; + + // Convert strong,b,em,u,strike to spans + each(['strong','b','em','u','strike','sub','sup','a'], function(v) { + each(grep(dom.select(v)).reverse(), function(n) { + var nn = n.nodeName.toLowerCase(), st; + + // Convert anchors into images + if (nn == 'a') { + if (n.name) + dom.replace(dom.create('img', {mce_name : 'a', name : n.name, 'class' : 'mceItemAnchor'}), n); + + return; + } + + switch (nn) { + case 'b': + case 'strong': + if (nn == 'b') + nn = 'strong'; + + st = 'font-weight: bold;'; + break; + + case 'em': + st = 'font-style: italic;'; + break; + + case 'u': + st = 'text-decoration: underline;'; + break; + + case 'sub': + st = 'vertical-align: sub;'; + break; + + case 'sup': + st = 'vertical-align: super;'; + break; + + case 'strike': + st = 'text-decoration: line-through;'; + break; + } + + dom.replace(dom.create('span', {mce_name : nn, style : st, 'class' : 'Apple-style-span'}), n, 1); + }); + }); + }); + + ed.onPreProcess.add(function(ed, o) { + dom = ed.dom; + + each(grep(o.node.getElementsByTagName('span')).reverse(), function(n) { + var v, bg; + + if (o.get) { + if (dom.hasClass(n, 'Apple-style-span')) { + bg = n.style.backgroundColor; + + switch (dom.getAttrib(n, 'mce_name')) { + case 'font': + if (!ed.settings.convert_fonts_to_spans) + dom.setAttrib(n, 'style', ''); + break; + + case 'strong': + case 'em': + case 'sub': + case 'sup': + dom.setAttrib(n, 'style', ''); + break; + + case 'strike': + case 'u': + if (!ed.settings.inline_styles) + dom.setAttrib(n, 'style', ''); + else + dom.setAttrib(n, 'mce_name', ''); + + break; + + default: + if (!ed.settings.inline_styles) + dom.setAttrib(n, 'style', ''); + } + + + if (bg) + n.style.backgroundColor = bg; + } + } + + if (dom.hasClass(n, 'mceItemRemoved')) + dom.remove(n, 1); + }); + }); + + ed.onPostProcess.add(function(ed, o) { + // Safari adds BR at end of all block elements + o.content = o.content.replace(/
                    <\/(h[1-6]|div|p|address|pre)>/g, ''); + + // Safari adds id="undefined" to HR elements + o.content = o.content.replace(/ id=\"undefined\"/g, ''); + }); + }, + + getInfo : function() { + return { + longname : 'Safari compatibility', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + // Internal methods + + _fixWebKitSpans : function() { + var t = this, ed = t.editor; + + // Use mutator events on new WebKit + Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) { + e = e.target; + + if (e && e.nodeType == 1) + t._fixAppleSpan(e); + }); + }, + + _fixAppleSpan : function(e) { + var ed = this.editor, dom = ed.dom, fz = this.webKitFontSizes, fzn = this.namedFontSizes, s = ed.settings, st, p; + + if (dom.getAttrib(e, 'mce_fixed')) + return; + + // Handle Apple style spans + if (e.nodeName == 'SPAN' && e.className == 'Apple-style-span') { + st = e.style; + + if (!s.convert_fonts_to_spans) { + if (st.fontSize) { + dom.setAttrib(e, 'mce_name', 'font'); + dom.setAttrib(e, 'size', inArray(fz, st.fontSize) + 1); + } + + if (st.fontFamily) { + dom.setAttrib(e, 'mce_name', 'font'); + dom.setAttrib(e, 'face', st.fontFamily); + } + + if (st.color) { + dom.setAttrib(e, 'mce_name', 'font'); + dom.setAttrib(e, 'color', dom.toHex(st.color)); + } + + if (st.backgroundColor) { + dom.setAttrib(e, 'mce_name', 'font'); + dom.setStyle(e, 'background-color', st.backgroundColor); + } + } else { + if (st.fontSize) + dom.setStyle(e, 'fontSize', fzn[inArray(fz, st.fontSize)]); + } + + if (st.fontWeight == 'bold') + dom.setAttrib(e, 'mce_name', 'strong'); + + if (st.fontStyle == 'italic') + dom.setAttrib(e, 'mce_name', 'em'); + + if (st.textDecoration == 'underline') + dom.setAttrib(e, 'mce_name', 'u'); + + if (st.textDecoration == 'line-through') + dom.setAttrib(e, 'mce_name', 'strike'); + + if (st.verticalAlign == 'super') + dom.setAttrib(e, 'mce_name', 'sup'); + + if (st.verticalAlign == 'sub') + dom.setAttrib(e, 'mce_name', 'sub'); + + dom.setAttrib(e, 'mce_fixed', '1'); + } + }, + + _insertBR : function(ed) { + var dom = ed.dom, s = ed.selection, r = s.getRng(), br; + + // Insert BR element + r.insertNode(br = dom.create('br')); + + // Place caret after BR + r.setStartAfter(br); + r.setEndAfter(br); + s.setRng(r); + + // Could not place caret after BR then insert an nbsp entity and move the caret + if (s.getSel().focusNode == br.previousSibling) { + s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'), br)); + s.collapse(1); + } + + // Scroll to new position, scrollIntoView can't be used due to bug: http://bugs.webkit.org/show_bug.cgi?id=16117 + ed.getWin().scrollTo(0, dom.getPos(s.getRng().startContainer).y); + } + }); + + // Register plugin + tinymce.PluginManager.add('safari', tinymce.plugins.Safari); +})(); + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js new file mode 100644 index 0000000..8e93996 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.Save",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceSave",c._save,c);a.addCommand("mceCancel",c._cancel,c);a.addButton("save",{title:"save.save_desc",cmd:"mceSave"});a.addButton("cancel",{title:"save.cancel_desc",cmd:"mceCancel"});a.onNodeChange.add(c._nodeChange,c);a.addShortcut("ctrl+s",a.getLang("save.save_desc"),"mceSave")},getInfo:function(){return{longname:"Save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,c){var b=this.editor;if(b.getParam("save_enablewhendirty")){a.setDisabled("save",!b.isDirty());a.setDisabled("cancel",!b.isDirty())}},_save:function(){var c=this.editor,a,e,d,b;a=tinymce.DOM.get(c.id).form||tinymce.DOM.getParent(c.id,"form");if(c.getParam("save_enablewhendirty")&&!c.isDirty()){return}tinyMCE.triggerSave();if(e=c.getParam("save_onsavecallback")){if(c.execCallback("save_onsavecallback",c)){c.startContent=tinymce.trim(c.getContent({format:"raw"}));c.nodeChanged()}return}if(a){c.isNotDirty=true;if(a.onsubmit==null||a.onsubmit()!=false){a.submit()}c.nodeChanged()}else{c.windowManager.alert("Error: No form element found.")}},_cancel:function(){var a=this.editor,c,b=tinymce.trim(a.startContent);if(c=a.getParam("save_oncancelcallback")){a.execCallback("save_oncancelcallback",a);return}a.setContent(b);a.undoManager.clear();a.nodeChanged()}});tinymce.PluginManager.add("save",tinymce.plugins.Save)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js new file mode 100644 index 0000000..f5a3de8 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js @@ -0,0 +1,101 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.Save', { + init : function(ed, url) { + var t = this; + + t.editor = ed; + + // Register commands + ed.addCommand('mceSave', t._save, t); + ed.addCommand('mceCancel', t._cancel, t); + + // Register buttons + ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'}); + ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'}); + + ed.onNodeChange.add(t._nodeChange, t); + ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave'); + }, + + getInfo : function() { + return { + longname : 'Save', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + // Private methods + + _nodeChange : function(ed, cm, n) { + var ed = this.editor; + + if (ed.getParam('save_enablewhendirty')) { + cm.setDisabled('save', !ed.isDirty()); + cm.setDisabled('cancel', !ed.isDirty()); + } + }, + + // Private methods + + _save : function() { + var ed = this.editor, formObj, os, i, elementId; + + formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form'); + + if (ed.getParam("save_enablewhendirty") && !ed.isDirty()) + return; + + tinyMCE.triggerSave(); + + // Use callback instead + if (os = ed.getParam("save_onsavecallback")) { + if (ed.execCallback('save_onsavecallback', ed)) { + ed.startContent = tinymce.trim(ed.getContent({format : 'raw'})); + ed.nodeChanged(); + } + + return; + } + + if (formObj) { + ed.isNotDirty = true; + + if (formObj.onsubmit == null || formObj.onsubmit() != false) + formObj.submit(); + + ed.nodeChanged(); + } else + ed.windowManager.alert("Error: No form element found."); + }, + + _cancel : function() { + var ed = this.editor, os, h = tinymce.trim(ed.startContent); + + // Use callback instead + if (os = ed.getParam("save_oncancelcallback")) { + ed.execCallback('save_oncancelcallback', ed); + return; + } + + ed.setContent(h); + ed.undoManager.clear(); + ed.nodeChanged(); + } + }); + + // Register plugin + tinymce.PluginManager.add('save', tinymce.plugins.Save); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css new file mode 100644 index 0000000..ecdf58c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css @@ -0,0 +1,6 @@ +.panel_wrapper {height:85px;} +.panel_wrapper div.current {height:85px;} + +/* IE */ +* html .panel_wrapper {height:100px;} +* html .panel_wrapper div.current {height:100px;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js new file mode 100644 index 0000000..165bc12 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.SearchReplacePlugin",{init:function(a,c){function b(d){window.focus();a.windowManager.open({file:c+"/searchreplace.htm",width:420+parseInt(a.getLang("searchreplace.delta_width",0)),height:170+parseInt(a.getLang("searchreplace.delta_height",0)),inline:1,auto_focus:0},{mode:d,search_string:a.selection.getContent({format:"text"}),plugin_url:c})}a.addCommand("mceSearch",function(){b("search")});a.addCommand("mceReplace",function(){b("replace")});a.addButton("search",{title:"searchreplace.search_desc",cmd:"mceSearch"});a.addButton("replace",{title:"searchreplace.replace_desc",cmd:"mceReplace"});a.addShortcut("ctrl+f","searchreplace.search_desc","mceSearch")},getInfo:function(){return{longname:"Search/Replace",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("searchreplace",tinymce.plugins.SearchReplacePlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js new file mode 100644 index 0000000..4c87e8f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js @@ -0,0 +1,61 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.SearchReplacePlugin', { + init : function(ed, url) { + function open(m) { + // Keep IE from writing out the f/r character to the editor + // instance while initializing a new dialog. See: #3131190 + window.focus(); + + ed.windowManager.open({ + file : url + '/searchreplace.htm', + width : 420 + parseInt(ed.getLang('searchreplace.delta_width', 0)), + height : 170 + parseInt(ed.getLang('searchreplace.delta_height', 0)), + inline : 1, + auto_focus : 0 + }, { + mode : m, + search_string : ed.selection.getContent({format : 'text'}), + plugin_url : url + }); + }; + + // Register commands + ed.addCommand('mceSearch', function() { + open('search'); + }); + + ed.addCommand('mceReplace', function() { + open('replace'); + }); + + // Register buttons + ed.addButton('search', {title : 'searchreplace.search_desc', cmd : 'mceSearch'}); + ed.addButton('replace', {title : 'searchreplace.replace_desc', cmd : 'mceReplace'}); + + ed.addShortcut('ctrl+f', 'searchreplace.search_desc', 'mceSearch'); + }, + + getInfo : function() { + return { + longname : 'Search/Replace', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('searchreplace', tinymce.plugins.SearchReplacePlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js new file mode 100644 index 0000000..80284b9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js @@ -0,0 +1,142 @@ +tinyMCEPopup.requireLangPack(); + +var SearchReplaceDialog = { + init : function(ed) { + var t = this, f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode"); + + t.switchMode(m); + + f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string"); + + // Focus input field + f[m + '_panel_searchstring'].focus(); + + mcTabs.onChange.add(function(tab_id, panel_id) { + t.switchMode(tab_id.substring(0, tab_id.indexOf('_'))); + }); + }, + + switchMode : function(m) { + var f, lm = this.lastMode; + + if (lm != m) { + f = document.forms[0]; + + if (lm) { + f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value; + f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked; + f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked; + f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked; + } + + mcTabs.displayTab(m + '_tab', m + '_panel'); + document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none"; + document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none"; + this.lastMode = m; + } + }, + + searchNext : function(a) { + var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0; + + // Get input + f = document.forms[0]; + s = f[m + '_panel_searchstring'].value; + b = f[m + '_panel_backwardsu'].checked; + ca = f[m + '_panel_casesensitivebox'].checked; + rs = f['replace_panel_replacestring'].value; + + if (tinymce.isIE) { + r = ed.getDoc().selection.createRange(); + } + + if (s == '') + return; + + function fix() { + // Correct Firefox graphics glitches + // TODO: Verify if this is actually needed any more, maybe it was for very old FF versions? + r = se.getRng().cloneRange(); + ed.getDoc().execCommand('SelectAll', false, null); + se.setRng(r); + }; + + function replace() { + ed.selection.setContent(rs); // Needs to be duplicated due to selection bug in IE + }; + + // IE flags + if (ca) + fl = fl | 4; + + switch (a) { + case 'all': + // Move caret to beginning of text + ed.execCommand('SelectAll'); + ed.selection.collapse(true); + + if (tinymce.isIE) { + ed.focus(); + r = ed.getDoc().selection.createRange(); + + while (r.findText(s, b ? -1 : 1, fl)) { + r.scrollIntoView(); + r.select(); + replace(); + fo = 1; + + if (b) { + r.moveEnd("character", -(rs.length)); // Otherwise will loop forever + } + } + + tinyMCEPopup.storeSelection(); + } else { + while (w.find(s, ca, b, false, false, false, false)) { + replace(); + fo = 1; + } + } + + if (fo) + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced')); + else + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); + + return; + + case 'current': + if (!ed.selection.isCollapsed()) + replace(); + + break; + } + + se.collapse(b); + r = se.getRng(); + + // Whats the point + if (!s) + return; + + if (tinymce.isIE) { + ed.focus(); + r = ed.getDoc().selection.createRange(); + + if (r.findText(s, b ? -1 : 1, fl)) { + r.scrollIntoView(); + r.select(); + } else + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); + + tinyMCEPopup.storeSelection(); + } else { + if (!w.find(s, ca, b, false, false, false, false)) + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); + else + fix(); + } + } +}; + +tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/de_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/de_dlg.js new file mode 100644 index 0000000..52c0b06 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/de_dlg.js @@ -0,0 +1,16 @@ +tinyMCE.addI18n('de.searchreplace_dlg',{ +searchnext_desc:"Weitersuchen", +notfound:"Die Suche ist am Ende angelangt. Die Zeichenkette konnte nicht gefunden werden.", +search_title:"Suchen", +replace_title:"Suchen/Ersetzen", +allreplaced:"Alle Vorkommen der Zeichenkette wurden ersetzt.", +findwhat:"Zu suchender Text", +replacewith:"Ersetzen durch", +direction:"Suchrichtung", +up:"Aufw\u00E4rts", +down:"Abw\u00E4rts", +mcase:"Gro\u00DF-/Kleinschreibung beachten", +findnext:"Weitersuchen", +replace:"Ersetzen", +replaceall:"Alle ersetzen" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js new file mode 100644 index 0000000..370959a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js @@ -0,0 +1,16 @@ +tinyMCE.addI18n('en.searchreplace_dlg',{ +searchnext_desc:"Find again", +notfound:"The search has been completed. The search string could not be found.", +search_title:"Find", +replace_title:"Find/Replace", +allreplaced:"All occurrences of the search string were replaced.", +findwhat:"Find what", +replacewith:"Replace with", +direction:"Direction", +up:"Up", +down:"Down", +mcase:"Match case", +findnext:"Find next", +replace:"Replace", +replaceall:"Replace all" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/eo_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/eo_dlg.js new file mode 100644 index 0000000..3cd4185 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/eo_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.searchreplace_dlg',{findwhat:"Ser\u0109i",replacewith:"Anstata\u016digi per",direction:"Direkto",up:"Supren",down:"Suben",mcase:"Usklecodistinga",findnext:"Ser\u0109i sekvan",allreplaced:"\u0108iuj anstata\u016digoj estas faritaj.","searchnext_desc":"Ser\u0109i denove",notfound:"La ser\u0109o fini\u011dis sen rezultoj.","search_title":"Ser\u0109i","replace_title":"Ser\u0109i/anstata\u016digi",replaceall:"Anstata\u016digi \u0109iujn",replace:"Anstata\u016digi"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/es_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/es_dlg.js new file mode 100644 index 0000000..b54c74b --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/es_dlg.js @@ -0,0 +1,16 @@ +tinyMCE.addI18n('es.searchreplace_dlg',{ +searchnext_desc:"Buscar de nuevo", +notfound:"La b\u00FAsqueda se ha completado. No se encontr\u00F3 el texto introducido.", +search_title:"Buscar", +replace_title:"Buscar/Reemplazar", +allreplaced:"Se ha reemplazado el texto.", +findwhat:"Qu\u00E9 buscar", +replacewith:"Reemplazar por", +direction:"Direcci\u00F3n", +up:"Arriba", +down:"Abajo", +mcase:"Min\u00FAs./May\u00FAs.", +findnext:"Buscar siguiente", +replace:"Reemplazar", +replaceall:"Reemplazar todo" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/fr_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/fr_dlg.js new file mode 100644 index 0000000..6422855 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/fr_dlg.js @@ -0,0 +1,16 @@ +tinyMCE.addI18n('fr.searchreplace_dlg',{ +searchnext_desc:"Suivant", +notfound:"La recherche est termin\u00E9e. La chaine recherch\u00E9e n'a pas \u00E9t\u00E9 trouv\u00E9e.", +search_title:"Chercher", +replace_title:"Chercher/Remplacer", +allreplaced:"Toutes les occurrences de la chaine recherch\u00E9e ont \u00E9t\u00E9 remplac\u00E9es.", +findwhat:"Chercher", +replacewith:"Remplacer par", +direction:"Direction", +up:"Haut", +down:"Bas", +mcase:"Prendre la casse en compte", +findnext:"Chercher suivant", +replace:"Remplacer", +replaceall:"Rempl. tous" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ja_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ja_dlg.js new file mode 100644 index 0000000..926a676 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ja_dlg.js @@ -0,0 +1,16 @@ +tinyMCE.addI18n('ja.searchreplace_dlg',{ +searchnext_desc:"\u518D\u691C\u7D22", +notfound:"\u6700\u5F8C\u307E\u3067\u691C\u7D22\u3057\u307E\u3057\u305F\u304C\u3001\u691C\u7D22\u6587\u5B57\u5217\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002", +search_title:"\u691C\u7D22", +replace_title:"\u691C\u7D22/\u7F6E\u63DB", +allreplaced:"\u5168\u3066\u7F6E\u63DB\u3055\u308C\u307E\u3057\u305F\u3002", +findwhat:"\u691C\u7D22\u6587\u5B57\u5217", +replacewith:"\u7F6E\u63DB\u6587\u5B57\u5217", +direction:"\u65B9\u5411", +up:"\u4E0A\u3078", +down:"\u4E0B\u3078", +mcase:"\u5927\u6587\u5B57/\u5C0F\u6587\u5B57\u3092\u533A\u5225\u3059\u308B", +findnext:"\u6B21\u3078", +replace:"\u7F6E\u63DB", +replaceall:"\u5168\u3066\u7F6E\u63DB" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/nl_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/nl_dlg.js new file mode 100644 index 0000000..6ad59db --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/nl_dlg.js @@ -0,0 +1,16 @@ +tinyMCE.addI18n('nl.searchreplace_dlg',{ +searchnext_desc:"Opnieuw zoeken", +notfound:"Het doorzoeken is voltooid. De zoekterm kon niet meer worden gevonden.", +search_title:"Zoeken", +replace_title:"Zoeken/Vervangen", +allreplaced:"Alle instanties van de zoekterm zijn vervangen.", +findwhat:"Zoeken naar", +replacewith:"Vervangen door", +direction:"Richting", +up:"Omhoog", +down:"Omlaag", +mcase:"Identieke hoofdletters/kleine letters", +findnext:"Zoeken", +replace:"Vervangen", +replaceall:"Alles verv." +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/pt_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/pt_dlg.js new file mode 100644 index 0000000..df9c029 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/pt_dlg.js @@ -0,0 +1,16 @@ +tinyMCE.addI18n('pt.searchreplace_dlg',{ +searchnext_desc:"Localizar novamente", +notfound:"A pesquisa foi conclu\u00EDda sem resultados.", +search_title:"Localizar", +replace_title:"Localizar/substituir", +allreplaced:"Todas as substitui\u00E7\u00F5es foram efetuadas.", +findwhat:"Localizar", +replacewith:"Substituir com", +direction:"Dire\u00E7\u00E3o", +up:"Acima", +down:"Abaixo", +mcase:"Diferenciar mai\u00FAsculas", +findnext:"Localizar pr\u00F3ximo", +replace:"Substituir", +replaceall:"Substituir todos" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ru_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ru_dlg.js new file mode 100644 index 0000000..d81e246 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/ru_dlg.js @@ -0,0 +1,16 @@ +tinyMCE.addI18n('ru.searchreplace_dlg',{ +searchnext_desc:"\u041D\u0430\u0439\u0442\u0438 \u0435\u0449\u0435", +notfound:"\u041F\u043E\u0438\u0441\u043A \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D. \u041F\u043E\u0438\u0441\u043A\u043E\u0432\u044B\u0439 \u0440\u044F\u0434 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D", +search_title:"\u041D\u0430\u0439\u0442\u0438", +replace_title:"\u041D\u0430\u0439\u0442\u0438 / \u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C", +allreplaced:"\u0412\u0441\u0435 \u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u0438 \u0431\u044B\u043B\u0438 \u0437\u0430\u043C\u0435\u043D\u0435\u043D\u044B", +findwhat:"\u041D\u0430\u0439\u0442\u0438", +replacewith:"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u0430", +direction:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435", +up:"\u0412\u0432\u0435\u0440\u0445 ", +down:"\u0412\u043D\u0438\u0437", +mcase:"\u0423\u0447\u0438\u0442\u044B\u0432\u0430\u0442\u044C \u0440\u0435\u0433\u0438\u0441\u0442\u0440", +findnext:"\u041D\u0430\u0439\u0442\u0438 \u0434\u0430\u043B\u0435\u0435", +replace:"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C", +replaceall:"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm new file mode 100644 index 0000000..5a22d8a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm @@ -0,0 +1,100 @@ + + + + {#searchreplace_dlg.replace_title} + + + + + + + + +
                    + + +
                    +
                    + + + + + + + + + + + +
                    + + + + + + + + + +
                    + + + + + +
                    +
                    +
                    + +
                    + + + + + + + + + + + + + + + +
                    + + + + + + + + + +
                    + + + + + +
                    +
                    +
                    + +
                    + +
                    + + + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css new file mode 100644 index 0000000..24efa02 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css @@ -0,0 +1 @@ +.mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js new file mode 100644 index 0000000..90cde6a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js @@ -0,0 +1 @@ +(function(){var a=tinymce.util.JSONRequest,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.SpellcheckerPlugin",{getInfo:function(){return{longname:"Spellchecker",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker",version:tinymce.majorVersion+"."+tinymce.minorVersion}},init:function(e,f){var g=this,d;g.url=f;g.editor=e;g.rpcUrl=e.getParam("spellchecker_rpc_url","{backend}");if(g.rpcUrl=="{backend}"){if(tinymce.isIE){return}g.hasSupport=true;e.onContextMenu.addToTop(function(h,i){if(g.active){return false}})}e.addCommand("mceSpellCheck",function(){if(g.rpcUrl=="{backend}"){g.editor.getBody().spellcheck=g.active=!g.active;return}if(!g.active){e.setProgressState(1);g._sendRPC("checkWords",[g.selectedLang,g._getWords()],function(h){if(h.length>0){g.active=1;g._markWords(h);e.setProgressState(0);e.nodeChanged()}else{e.setProgressState(0);if(e.getParam("spellchecker_report_no_misspellings",true)){e.windowManager.alert("spellchecker.no_mpell")}}})}else{g._done()}});if(e.settings.content_css!==false){e.contentCSS.push(f+"/css/content.css")}e.onClick.add(g._showMenu,g);e.onContextMenu.add(g._showMenu,g);e.onBeforeGetContent.add(function(){if(g.active){g._removeWords()}});e.onNodeChange.add(function(i,h){h.setActive("spellchecker",g.active)});e.onSetContent.add(function(){g._done()});e.onBeforeGetContent.add(function(){g._done()});e.onBeforeExecCommand.add(function(h,i){if(i=="mceFullScreen"){g._done()}});g.languages={};c(e.getParam("spellchecker_languages","+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv","hash"),function(i,h){if(h.indexOf("+")===0){h=h.substring(1);g.selectedLang=i}g.languages[h]=i})},createControl:function(h,d){var f=this,g,e=f.editor;if(h=="spellchecker"){if(f.rpcUrl=="{backend}"){if(f.hasSupport){g=d.createButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f})}return g}g=d.createSplitButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f});g.onRenderMenu.add(function(j,i){i.add({title:"spellchecker.langs","class":"mceMenuItemTitle"}).setDisabled(1);c(f.languages,function(n,m){var p={icon:1},l;p.onclick=function(){if(n==f.selectedLang){return}l.setSelected(1);f.selectedItem.setSelected(0);f.selectedItem=l;f.selectedLang=n};p.title=m;l=i.add(p);l.setSelected(n==f.selectedLang);if(n==f.selectedLang){f.selectedItem=l}})});return g}},_walk:function(i,g){var h=this.editor.getDoc(),e;if(h.createTreeWalker){e=h.createTreeWalker(i,NodeFilter.SHOW_TEXT,null,false);while((i=e.nextNode())!=null){g.call(this,i)}}else{tinymce.walk(i,g,"childNodes")}},_getSeparators:function(){var e="",d,f=this.editor.getParam("spellchecker_word_separator_chars",'\\s!"#$%&()*+,-./:;<=>?@[]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c');for(d=0;d$2");while((s=p.indexOf(""))!=-1){o=p.substring(0,s);if(o.length){r=j.createTextNode(f.decode(o));q.appendChild(r)}p=p.substring(s+10);s=p.indexOf("");o=p.substring(0,s);p=p.substring(s+11);q.appendChild(f.create("span",{"class":"mceItemHiddenSpellWord"},o))}if(p.length){r=j.createTextNode(f.decode(p));q.appendChild(r)}}else{q.innerHTML=p.replace(e,'$1$2')}f.replace(q,t)}});h.moveToBookmark(i)},_showMenu:function(h,j){var i=this,h=i.editor,d=i._menu,l,k=h.dom,g=k.getViewPort(h.getWin()),f=j.target;j=0;if(!d){d=h.controlManager.createDropMenu("spellcheckermenu",{"class":"mceNoIcons"});i._menu=d}if(k.hasClass(f,"mceItemHiddenSpellWord")){d.removeAll();d.add({title:"spellchecker.wait","class":"mceMenuItemTitle"}).setDisabled(1);i._sendRPC("getSuggestions",[i.selectedLang,k.decode(f.innerHTML)],function(m){var e;d.removeAll();if(m.length>0){d.add({title:"spellchecker.sug","class":"mceMenuItemTitle"}).setDisabled(1);c(m,function(n){d.add({title:n,onclick:function(){k.replace(h.getDoc().createTextNode(n),f);i._checkDone()}})});d.addSeparator()}else{d.add({title:"spellchecker.no_sug","class":"mceMenuItemTitle"}).setDisabled(1)}e=i.editor.getParam("spellchecker_enable_ignore_rpc","");d.add({title:"spellchecker.ignore_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}}});d.add({title:"spellchecker.ignore_words",onclick:function(){var n=f.innerHTML;i._removeWords(k.decode(n));i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWords",[i.selectedLang,n],function(o){h.setProgressState(0)})}}});if(i.editor.getParam("spellchecker_enable_learn_rpc")){d.add({title:"spellchecker.learn_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();h.setProgressState(1);i._sendRPC("learnWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}})}d.update()});l=k.getPos(h.getContentAreaContainer());d.settings.offset_x=l.x;d.settings.offset_y=l.y;h.selection.select(f);l=k.getPos(f);d.showMenu(l.x,l.y+f.offsetHeight-g.y);return tinymce.dom.Event.cancel(j)}else{d.hideMenu()}},_checkDone:function(){var e=this,d=e.editor,g=d.dom,f;c(g.select("span"),function(h){if(h&&g.hasClass(h,"mceItemHiddenSpellWord")){f=true;return false}});if(!f){e._done()}},_done:function(){var d=this,e=d.active;if(d.active){d.active=0;d._removeWords();if(d._menu){d._menu.hideMenu()}if(e){d.editor.nodeChanged()}}},_sendRPC:function(e,g,d){var f=this;a.sendRPC({url:f.rpcUrl,method:e,params:g,success:d,error:function(i,h){f.editor.setProgressState(0);f.editor.windowManager.alert(i.errstr||("Error response: "+h.responseText))}})}});tinymce.PluginManager.add("spellchecker",tinymce.plugins.SpellcheckerPlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js new file mode 100644 index 0000000..9757aec --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js @@ -0,0 +1,435 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM; + + tinymce.create('tinymce.plugins.SpellcheckerPlugin', { + getInfo : function() { + return { + longname : 'Spellchecker', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + init : function(ed, url) { + var t = this, cm; + + t.url = url; + t.editor = ed; + t.rpcUrl = ed.getParam("spellchecker_rpc_url", "{backend}"); + + if (t.rpcUrl == '{backend}') { + // Sniff if the browser supports native spellchecking (Don't know of a better way) + if (tinymce.isIE) + return; + + t.hasSupport = true; + + // Disable the context menu when spellchecking is active + ed.onContextMenu.addToTop(function(ed, e) { + if (t.active) + return false; + }); + } + + // Register commands + ed.addCommand('mceSpellCheck', function() { + if (t.rpcUrl == '{backend}') { + // Enable/disable native spellchecker + t.editor.getBody().spellcheck = t.active = !t.active; + return; + } + + if (!t.active) { + ed.setProgressState(1); + t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) { + if (r.length > 0) { + t.active = 1; + t._markWords(r); + ed.setProgressState(0); + ed.nodeChanged(); + } else { + ed.setProgressState(0); + + if (ed.getParam('spellchecker_report_no_misspellings', true)) + ed.windowManager.alert('spellchecker.no_mpell'); + } + }); + } else + t._done(); + }); + + if (ed.settings.content_css !== false) + ed.contentCSS.push(url + '/css/content.css'); + + ed.onClick.add(t._showMenu, t); + ed.onContextMenu.add(t._showMenu, t); + ed.onBeforeGetContent.add(function() { + if (t.active) + t._removeWords(); + }); + + ed.onNodeChange.add(function(ed, cm) { + cm.setActive('spellchecker', t.active); + }); + + ed.onSetContent.add(function() { + t._done(); + }); + + ed.onBeforeGetContent.add(function() { + t._done(); + }); + + ed.onBeforeExecCommand.add(function(ed, cmd) { + if (cmd == 'mceFullScreen') + t._done(); + }); + + // Find selected language + t.languages = {}; + each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) { + if (k.indexOf('+') === 0) { + k = k.substring(1); + t.selectedLang = v; + } + + t.languages[k] = v; + }); + }, + + createControl : function(n, cm) { + var t = this, c, ed = t.editor; + + if (n == 'spellchecker') { + // Use basic button if we use the native spellchecker + if (t.rpcUrl == '{backend}') { + // Create simple toggle button if we have native support + if (t.hasSupport) + c = cm.createButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t}); + + return c; + } + + c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t}); + + c.onRenderMenu.add(function(c, m) { + m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1); + each(t.languages, function(v, k) { + var o = {icon : 1}, mi; + + o.onclick = function() { + if (v == t.selectedLang) { + return; + } + mi.setSelected(1); + t.selectedItem.setSelected(0); + t.selectedItem = mi; + t.selectedLang = v; + }; + + o.title = k; + mi = m.add(o); + mi.setSelected(v == t.selectedLang); + + if (v == t.selectedLang) + t.selectedItem = mi; + }) + }); + + return c; + } + }, + + // Internal functions + + _walk : function(n, f) { + var d = this.editor.getDoc(), w; + + if (d.createTreeWalker) { + w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false); + + while ((n = w.nextNode()) != null) + f.call(this, n); + } else + tinymce.walk(n, f, 'childNodes'); + }, + + _getSeparators : function() { + var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c'); + + // Build word separator regexp + for (i=0; i elements content is broken after spellchecking. + // Bug #1408: Preceding whitespace characters are removed + // @TODO: I'm not sure that both are still issues on IE9. + if (tinymce.isIE) { + // Enclose mispelled words with temporal tag + v = v.replace(rx, '$1$2'); + // Loop over the content finding mispelled words + while ((pos = v.indexOf('')) != -1) { + // Add text node for the content before the word + txt = v.substring(0, pos); + if (txt.length) { + node = doc.createTextNode(dom.decode(txt)); + elem.appendChild(node); + } + v = v.substring(pos+10); + pos = v.indexOf(''); + txt = v.substring(0, pos); + v = v.substring(pos+11); + // Add span element for the word + elem.appendChild(dom.create('span', {'class' : 'mceItemHiddenSpellWord'}, txt)); + } + // Add text node for the rest of the content + if (v.length) { + node = doc.createTextNode(dom.decode(v)); + elem.appendChild(node); + } + } else { + // Other browsers preserve whitespace characters on innerHTML usage + elem.innerHTML = v.replace(rx, '$1$2'); + } + + // Finally, replace the node with the container + dom.replace(elem, n); + } + }); + + se.moveToBookmark(b); + }, + + _showMenu : function(ed, e) { + var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin()), wordSpan = e.target; + + e = 0; // Fixes IE memory leak + + if (!m) { + m = ed.controlManager.createDropMenu('spellcheckermenu', {'class' : 'mceNoIcons'}); + t._menu = m; + } + + if (dom.hasClass(wordSpan, 'mceItemHiddenSpellWord')) { + m.removeAll(); + m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1); + + t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(wordSpan.innerHTML)], function(r) { + var ignoreRpc; + + m.removeAll(); + + if (r.length > 0) { + m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1); + each(r, function(v) { + m.add({title : v, onclick : function() { + dom.replace(ed.getDoc().createTextNode(v), wordSpan); + t._checkDone(); + }}); + }); + + m.addSeparator(); + } else + m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1); + + ignoreRpc = t.editor.getParam("spellchecker_enable_ignore_rpc", ''); + m.add({ + title : 'spellchecker.ignore_word', + onclick : function() { + var word = wordSpan.innerHTML; + + dom.remove(wordSpan, 1); + t._checkDone(); + + // tell the server if we need to + if (ignoreRpc) { + ed.setProgressState(1); + t._sendRPC('ignoreWord', [t.selectedLang, word], function(r) { + ed.setProgressState(0); + }); + } + } + }); + + m.add({ + title : 'spellchecker.ignore_words', + onclick : function() { + var word = wordSpan.innerHTML; + + t._removeWords(dom.decode(word)); + t._checkDone(); + + // tell the server if we need to + if (ignoreRpc) { + ed.setProgressState(1); + t._sendRPC('ignoreWords', [t.selectedLang, word], function(r) { + ed.setProgressState(0); + }); + } + } + }); + + + if (t.editor.getParam("spellchecker_enable_learn_rpc")) { + m.add({ + title : 'spellchecker.learn_word', + onclick : function() { + var word = wordSpan.innerHTML; + + dom.remove(wordSpan, 1); + t._checkDone(); + + ed.setProgressState(1); + t._sendRPC('learnWord', [t.selectedLang, word], function(r) { + ed.setProgressState(0); + }); + } + }); + } + + m.update(); + }); + + p1 = dom.getPos(ed.getContentAreaContainer()); + m.settings.offset_x = p1.x; + m.settings.offset_y = p1.y; + + ed.selection.select(wordSpan); + p1 = dom.getPos(wordSpan); + m.showMenu(p1.x, p1.y + wordSpan.offsetHeight - vp.y); + + return tinymce.dom.Event.cancel(e); + } else + m.hideMenu(); + }, + + _checkDone : function() { + var t = this, ed = t.editor, dom = ed.dom, o; + + each(dom.select('span'), function(n) { + if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) { + o = true; + return false; + } + }); + + if (!o) + t._done(); + }, + + _done : function() { + var t = this, la = t.active; + + if (t.active) { + t.active = 0; + t._removeWords(); + + if (t._menu) + t._menu.hideMenu(); + + if (la) + t.editor.nodeChanged(); + } + }, + + _sendRPC : function(m, p, cb) { + var t = this; + + JSONRequest.sendRPC({ + url : t.rpcUrl, + method : m, + params : p, + success : cb, + error : function(e, x) { + t.editor.setProgressState(0); + t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText)); + } + }); + } + }); + + // Register plugin + tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin); +})(); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif new file mode 100644 index 0000000..7d0a4db Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/css/props.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/css/props.css new file mode 100644 index 0000000..eb1f264 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/css/props.css @@ -0,0 +1,13 @@ +#text_font {width:250px;} +#text_size {width:70px;} +.mceAddSelectValue {background:#DDD;} +select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {width:70px;} +#box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {width:70px;} +#positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {width:70px;} +#positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {width:70px;} +.panel_wrapper div.current {padding-top:10px;height:230px;} +.delim {border-left:1px solid gray;} +.tdelim {border-bottom:1px solid gray;} +#block_display {width:145px;} +#list_type {width:115px;} +.disabled {background:#EEE;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js new file mode 100644 index 0000000..cab2153 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.StylePlugin",{init:function(a,b){a.addCommand("mceStyleProps",function(){a.windowManager.open({file:b+"/props.htm",width:480+parseInt(a.getLang("style.delta_width",0)),height:320+parseInt(a.getLang("style.delta_height",0)),inline:1},{plugin_url:b,style_text:a.selection.getNode().style.cssText})});a.addCommand("mceSetElementStyle",function(d,c){if(e=a.selection.getNode()){a.dom.setAttrib(e,"style",c);a.execCommand("mceRepaint")}});a.onNodeChange.add(function(d,c,f){c.setDisabled("styleprops",f.nodeName==="BODY")});a.addButton("styleprops",{title:"style.desc",cmd:"mceStyleProps"})},getInfo:function(){return{longname:"Style",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("style",tinymce.plugins.StylePlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js new file mode 100644 index 0000000..5f7755f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js @@ -0,0 +1,55 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.StylePlugin', { + init : function(ed, url) { + // Register commands + ed.addCommand('mceStyleProps', function() { + ed.windowManager.open({ + file : url + '/props.htm', + width : 480 + parseInt(ed.getLang('style.delta_width', 0)), + height : 320 + parseInt(ed.getLang('style.delta_height', 0)), + inline : 1 + }, { + plugin_url : url, + style_text : ed.selection.getNode().style.cssText + }); + }); + + ed.addCommand('mceSetElementStyle', function(ui, v) { + if (e = ed.selection.getNode()) { + ed.dom.setAttrib(e, 'style', v); + ed.execCommand('mceRepaint'); + } + }); + + ed.onNodeChange.add(function(ed, cm, n) { + cm.setDisabled('styleprops', n.nodeName === 'BODY'); + }); + + // Register buttons + ed.addButton('styleprops', {title : 'style.desc', cmd : 'mceStyleProps'}); + }, + + getInfo : function() { + return { + longname : 'Style', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('style', tinymce.plugins.StylePlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/js/props.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/js/props.js new file mode 100644 index 0000000..c8e1604 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/js/props.js @@ -0,0 +1,635 @@ +tinyMCEPopup.requireLangPack(); + +var defaultFonts = "" + + "Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" + + "Times New Roman, Times, serif=Times New Roman, Times, serif;" + + "Courier New, Courier, mono=Courier New, Courier, mono;" + + "Times New Roman, Times, serif=Times New Roman, Times, serif;" + + "Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" + + "Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" + + "Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif"; + +var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger"; +var defaultMeasurement = "+pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%"; +var defaultSpacingMeasurement = "pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;+ems=em;exs=ex;%"; +var defaultIndentMeasurement = "pixels=px;+points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%"; +var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900"; +var defaultTextStyle = "normal;italic;oblique"; +var defaultVariant = "normal;small-caps"; +var defaultLineHeight = "normal"; +var defaultAttachment = "fixed;scroll"; +var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y"; +var defaultPosH = "left;center;right"; +var defaultPosV = "top;center;bottom"; +var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom"; +var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none"; +var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset"; +var defaultBorderWidth = "thin;medium;thick"; +var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none"; + +function init() { + var ce = document.getElementById('container'), h; + + ce.style.cssText = tinyMCEPopup.getWindowArg('style_text'); + + h = getBrowserHTML('background_image_browser','background_image','image','advimage'); + document.getElementById("background_image_browser").innerHTML = h; + + document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color'); + document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color'); + document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top'); + document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right'); + document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom'); + document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left'); + + fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true); + fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true); + fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true); + fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true); + fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true); + fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true); + fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true); + fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true); + fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true); + + fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true); + fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true); + + fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true); + fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true); + fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true); + fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true); + fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true); + fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true); + fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true); + fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true); + fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true); + + fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true); + fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true); + fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true); + fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true); + fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true); + fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true); + + fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true); + fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true); + fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true); + fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true); + + fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true); + fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true); + + fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true); + fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true); + + fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true); + + fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true); + + TinyMCE_EditableSelects.init(); + setupFormData(); + showDisabledControls(); +} + +function setupFormData() { + var ce = document.getElementById('container'), f = document.forms[0], s, b, i; + + // Setup text fields + + selectByValue(f, 'text_font', ce.style.fontFamily, true, true); + selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true); + selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize)); + selectByValue(f, 'text_weight', ce.style.fontWeight, true, true); + selectByValue(f, 'text_style', ce.style.fontStyle, true, true); + selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true); + selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight)); + selectByValue(f, 'text_case', ce.style.textTransform, true, true); + selectByValue(f, 'text_variant', ce.style.fontVariant, true, true); + f.text_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.color); + updateColor('text_color_pick', 'text_color'); + f.text_underline.checked = inStr(ce.style.textDecoration, 'underline'); + f.text_overline.checked = inStr(ce.style.textDecoration, 'overline'); + f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through'); + f.text_blink.checked = inStr(ce.style.textDecoration, 'blink'); + + // Setup background fields + + f.background_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.backgroundColor); + updateColor('background_color_pick', 'background_color'); + f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); + selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true); + selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true); + selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true); + selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0))); + selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true); + selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1))); + + // Setup block fields + + selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true); + selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing)); + selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true); + selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing)); + selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true); + selectByValue(f, 'block_text_align', ce.style.textAlign, true, true); + f.block_text_indent.value = getNum(ce.style.textIndent); + selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent)); + selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true); + selectByValue(f, 'block_display', ce.style.display, true, true); + + // Setup box fields + + f.box_width.value = getNum(ce.style.width); + selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width)); + + f.box_height.value = getNum(ce.style.height); + selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height)); + selectByValue(f, 'box_float', ce.style.cssFloat || ce.style.styleFloat, true, true); + + selectByValue(f, 'box_clear', ce.style.clear, true, true); + + setupBox(f, ce, 'box_padding', 'padding', ''); + setupBox(f, ce, 'box_margin', 'margin', ''); + + // Setup border fields + + setupBox(f, ce, 'border_style', 'border', 'Style'); + setupBox(f, ce, 'border_width', 'border', 'Width'); + setupBox(f, ce, 'border_color', 'border', 'Color'); + + updateColor('border_color_top_pick', 'border_color_top'); + updateColor('border_color_right_pick', 'border_color_right'); + updateColor('border_color_bottom_pick', 'border_color_bottom'); + updateColor('border_color_left_pick', 'border_color_left'); + + f.elements.border_color_top.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_top.value); + f.elements.border_color_right.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_right.value); + f.elements.border_color_bottom.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_bottom.value); + f.elements.border_color_left.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_left.value); + + // Setup list fields + + selectByValue(f, 'list_type', ce.style.listStyleType, true, true); + selectByValue(f, 'list_position', ce.style.listStylePosition, true, true); + f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); + + // Setup box fields + + selectByValue(f, 'positioning_type', ce.style.position, true, true); + selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true); + selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true); + f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : ""; + + f.positioning_width.value = getNum(ce.style.width); + selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width)); + + f.positioning_height.value = getNum(ce.style.height); + selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height)); + + setupBox(f, ce, 'positioning_placement', '', '', ['top', 'right', 'bottom', 'left']); + + s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1"); + s = s.replace(/,/g, ' '); + + if (!hasEqualValues([getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)])) { + f.positioning_clip_top.value = getNum(getVal(s, 0)); + selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0))); + f.positioning_clip_right.value = getNum(getVal(s, 1)); + selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1))); + f.positioning_clip_bottom.value = getNum(getVal(s, 2)); + selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2))); + f.positioning_clip_left.value = getNum(getVal(s, 3)); + selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3))); + } else { + f.positioning_clip_top.value = getNum(getVal(s, 0)); + selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0))); + f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value; + } + +// setupBox(f, ce, '', 'border', 'Color'); +} + +function getMeasurement(s) { + return s.replace(/^([0-9.]+)(.*)$/, "$2"); +} + +function getNum(s) { + if (new RegExp('^(?:[0-9.]+)(?:[a-z%]+)$', 'gi').test(s)) + return s.replace(/[^0-9.]/g, ''); + + return s; +} + +function inStr(s, n) { + return new RegExp(n, 'gi').test(s); +} + +function getVal(s, i) { + var a = s.split(' '); + + if (a.length > 1) + return a[i]; + + return ""; +} + +function setValue(f, n, v) { + if (f.elements[n].type == "text") + f.elements[n].value = v; + else + selectByValue(f, n, v, true, true); +} + +function setupBox(f, ce, fp, pr, sf, b) { + if (typeof(b) == "undefined") + b = ['Top', 'Right', 'Bottom', 'Left']; + + if (isSame(ce, pr, sf, b)) { + f.elements[fp + "_same"].checked = true; + + setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf])); + f.elements[fp + "_top"].disabled = false; + + f.elements[fp + "_right"].value = ""; + f.elements[fp + "_right"].disabled = true; + f.elements[fp + "_bottom"].value = ""; + f.elements[fp + "_bottom"].disabled = true; + f.elements[fp + "_left"].value = ""; + f.elements[fp + "_left"].disabled = true; + + if (f.elements[fp + "_top_measurement"]) { + selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf])); + f.elements[fp + "_left_measurement"].disabled = true; + f.elements[fp + "_bottom_measurement"].disabled = true; + f.elements[fp + "_right_measurement"].disabled = true; + } + } else { + f.elements[fp + "_same"].checked = false; + + setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf])); + f.elements[fp + "_top"].disabled = false; + + setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf])); + f.elements[fp + "_right"].disabled = false; + + setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf])); + f.elements[fp + "_bottom"].disabled = false; + + setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf])); + f.elements[fp + "_left"].disabled = false; + + if (f.elements[fp + "_top_measurement"]) { + selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf])); + selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf])); + selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf])); + selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf])); + f.elements[fp + "_left_measurement"].disabled = false; + f.elements[fp + "_bottom_measurement"].disabled = false; + f.elements[fp + "_right_measurement"].disabled = false; + } + } +} + +function isSame(e, pr, sf, b) { + var a = [], i, x; + + if (typeof(b) == "undefined") + b = ['Top', 'Right', 'Bottom', 'Left']; + + if (typeof(sf) == "undefined" || sf == null) + sf = ""; + + a[0] = e.style[pr + b[0] + sf]; + a[1] = e.style[pr + b[1] + sf]; + a[2] = e.style[pr + b[2] + sf]; + a[3] = e.style[pr + b[3] + sf]; + + for (i=0; i 0 ? s.substring(1) : s; + + if (f.text_none.checked) + s = "none"; + + ce.style.textDecoration = s; + + // Build background styles + + ce.style.backgroundColor = f.background_color.value; + ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : ""; + ce.style.backgroundRepeat = f.background_repeat.value; + ce.style.backgroundAttachment = f.background_attachment.value; + + if (f.background_hpos.value != "") { + s = ""; + s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " "; + s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : ""); + ce.style.backgroundPosition = s; + } + + // Build block styles + + ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : ""); + ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : ""); + ce.style.verticalAlign = f.block_vertical_alignment.value; + ce.style.textAlign = f.block_text_align.value; + ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : ""); + ce.style.whiteSpace = f.block_whitespace.value; + ce.style.display = f.block_display.value; + + // Build box styles + + ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : ""); + ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : ""); + ce.style.styleFloat = f.box_float.value; + ce.style.cssFloat = f.box_float.value; + + ce.style.clear = f.box_clear.value; + + if (!f.box_padding_same.checked) { + ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : ""); + ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : ""); + ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : ""); + ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : ""); + } else + ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : ""); + + if (!f.box_margin_same.checked) { + ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : ""); + ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : ""); + ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : ""); + ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : ""); + } else + ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : ""); + + // Build border styles + + if (!f.border_style_same.checked) { + ce.style.borderTopStyle = f.border_style_top.value; + ce.style.borderRightStyle = f.border_style_right.value; + ce.style.borderBottomStyle = f.border_style_bottom.value; + ce.style.borderLeftStyle = f.border_style_left.value; + } else + ce.style.borderStyle = f.border_style_top.value; + + if (!f.border_width_same.checked) { + ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : ""); + ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : ""); + ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : ""); + ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : ""); + } else + ce.style.borderWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : ""); + + if (!f.border_color_same.checked) { + ce.style.borderTopColor = f.border_color_top.value; + ce.style.borderRightColor = f.border_color_right.value; + ce.style.borderBottomColor = f.border_color_bottom.value; + ce.style.borderLeftColor = f.border_color_left.value; + } else + ce.style.borderColor = f.border_color_top.value; + + // Build list styles + + ce.style.listStyleType = f.list_type.value; + ce.style.listStylePosition = f.list_position.value; + ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : ""; + + // Build positioning styles + + ce.style.position = f.positioning_type.value; + ce.style.visibility = f.positioning_visibility.value; + + if (ce.style.width == "") + ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : ""); + + if (ce.style.height == "") + ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : ""); + + ce.style.zIndex = f.positioning_zindex.value; + ce.style.overflow = f.positioning_overflow.value; + + if (!f.positioning_placement_same.checked) { + ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : ""); + ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : ""); + ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : ""); + ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : ""); + } else { + s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : ""); + ce.style.top = s; + ce.style.right = s; + ce.style.bottom = s; + ce.style.left = s; + } + + if (!f.positioning_clip_same.checked) { + s = "rect("; + s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " "; + s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " "; + s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " "; + s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto"); + s += ")"; + + if (s != "rect(auto auto auto auto)") + ce.style.clip = s; + } else { + s = "rect("; + t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto"; + s += t + " "; + s += t + " "; + s += t + " "; + s += t + ")"; + + if (s != "rect(auto auto auto auto)") + ce.style.clip = s; + } + + ce.style.cssText = ce.style.cssText; +} + +function isNum(s) { + return new RegExp('[0-9]+', 'g').test(s); +} + +function showDisabledControls() { + var f = document.forms, i, a; + + for (i=0; i 1) { + addSelectValue(f, s, p[0], p[1]); + + if (se) + selectByValue(f, s, p[1]); + } else { + addSelectValue(f, s, p[0], p[0]); + + if (se) + selectByValue(f, s, p[0]); + } + } +} + +function toggleSame(ce, pre) { + var el = document.forms[0].elements, i; + + if (ce.checked) { + el[pre + "_top"].disabled = false; + el[pre + "_right"].disabled = true; + el[pre + "_bottom"].disabled = true; + el[pre + "_left"].disabled = true; + + if (el[pre + "_top_measurement"]) { + el[pre + "_top_measurement"].disabled = false; + el[pre + "_right_measurement"].disabled = true; + el[pre + "_bottom_measurement"].disabled = true; + el[pre + "_left_measurement"].disabled = true; + } + } else { + el[pre + "_top"].disabled = false; + el[pre + "_right"].disabled = false; + el[pre + "_bottom"].disabled = false; + el[pre + "_left"].disabled = false; + + if (el[pre + "_top_measurement"]) { + el[pre + "_top_measurement"].disabled = false; + el[pre + "_right_measurement"].disabled = false; + el[pre + "_bottom_measurement"].disabled = false; + el[pre + "_left_measurement"].disabled = false; + } + } + + showDisabledControls(); +} + +function synch(fr, to) { + var f = document.forms[0]; + + f.elements[to].value = f.elements[fr].value; + + if (f.elements[fr + "_measurement"]) + selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value); +} + +tinyMCEPopup.onInit.add(init); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/de_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/de_dlg.js new file mode 100644 index 0000000..57a62ff --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/de_dlg.js @@ -0,0 +1,63 @@ +tinyMCE.addI18n('de.style_dlg',{ +title:"CSS-Styles bearbeiten", +apply:"\u00DCbernehmen", +text_tab:"Text", +background_tab:"Hintergrund", +block_tab:"Block", +box_tab:"Box", +border_tab:"Rahmen", +list_tab:"Liste", +positioning_tab:"Positionierung", +text_props:"Text", +text_font:"Schriftart", +text_size:"Gr\u00F6\u00DFe", +text_weight:"Dicke", +text_style:"Stil", +text_variant:"Variante", +text_lineheight:"Zeilenh\u00F6he", +text_case:"Schreibung", +text_color:"Farbe", +text_decoration:"Gestaltung", +text_overline:"\u00FCberstrichen", +text_underline:"unterstrichen", +text_striketrough:"durchgestrichen", +text_blink:"blinkend", +text_none:"keine", +background_color:"Hintergrundfarbe", +background_image:"Hintergrundbild", +background_repeat:"Wiederholung", +background_attachment:"Wasserzeicheneffekt", +background_hpos:"Position X", +background_vpos:"Position Y", +block_wordspacing:"Wortabstand", +block_letterspacing:"Buchstabenabstand", +block_vertical_alignment:"Vertikale Ausrichtung", +block_text_align:"Ausrichtung", +block_text_indent:"Einr\u00FCckung", +block_whitespace:"Automatischer Umbruch", +block_display:"Umbruchverhalten", +box_width:"Breite", +box_height:"H\u00F6he", +box_float:"Umflie\u00DFung", +box_clear:"Umflie\u00DFung verhindern", +padding:"Innerer Abstand", +same:"Alle gleich", +top:"Oben", +right:"Rechts", +bottom:"Unten", +left:"Links", +margin:"\u00C4u\u00DFerer Abstand", +style:"Format", +width:"Breite", +height:"H\u00F6he", +color:"Textfarbe", +list_type:"Listenpunkt-Art", +bullet_image:"Listenpunkt-Grafik", +position:"Positionierung", +positioning_type:"Art der Positionierung", +visibility:"Sichtbar", +zindex:"Z-Wert", +overflow:"Verhalten bei \u00DCbergr\u00F6\u00DFe", +placement:"Platzierung", +clip:"Ausschnitt" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js new file mode 100644 index 0000000..df0a173 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js @@ -0,0 +1,70 @@ +tinyMCE.addI18n('en.style_dlg',{ +title:"Edit CSS Style", +apply:"Apply", +text_tab:"Text", +background_tab:"Background", +block_tab:"Block", +box_tab:"Box", +border_tab:"Border", +list_tab:"List", +positioning_tab:"Positioning", +text_props:"Text", +text_font:"Font", +text_size:"Size", +text_weight:"Weight", +text_style:"Style", +text_variant:"Variant", +text_lineheight:"Line height", +text_case:"Case", +text_color:"Color", +text_decoration:"Decoration", +text_overline:"overline", +text_underline:"underline", +text_striketrough:"strikethrough", +text_blink:"blink", +text_none:"none", +background_color:"Background color", +background_image:"Background image", +background_repeat:"Repeat", +background_attachment:"Attachment", +background_hpos:"Horizontal position", +background_vpos:"Vertical position", +block_wordspacing:"Word spacing", +block_letterspacing:"Letter spacing", +block_vertical_alignment:"Vertical alignment", +block_text_align:"Text align", +block_text_indent:"Text indent", +block_whitespace:"Whitespace", +block_display:"Display", +box_width:"Width", +box_height:"Height", +box_float:"Float", +box_clear:"Clear", +padding:"Padding", +same:"Same for all", +top:"Top", +right:"Right", +bottom:"Bottom", +left:"Left", +margin:"Margin", +style:"Style", +width:"Width", +height:"Height", +color:"Color", +list_type:"Type", +bullet_image:"Bullet image", +position:"Position", +positioning_type:"Type", +visibility:"Visibility", +zindex:"Z-index", +overflow:"Overflow", +placement:"Placement", +clip:"Clip", +text:"Text", +background:"Background", +block:"Block", +box:"Box", +border:"Border", +list:"List", +position:"Position" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/eo_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/eo_dlg.js new file mode 100644 index 0000000..ec2f45f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/eo_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.style_dlg',{"text_lineheight":"Alteco de linio","text_variant":"Varianto","text_style":"Stilo","text_weight":"Pezo","text_size":"Grandeco","text_font":"Tiparo","text_props":"Teksto","positioning_tab":"Pozicio","list_tab":"Listo","border_tab":"Bordero","box_tab":"Skatolo","block_tab":"Bloko","background_tab":"Fono","text_tab":"Teksto",apply:"Apliki",title:"Redakti CSS",clip:"Tondi",placement:"Pozicio",overflow:"Elfluo",zindex:"Z-indekso",visibility:"Videbleco","positioning_type":"Pozicitipo",position:"Pozicio","bullet_image":"Listbildo","list_type":"Tipo",color:"Koloro",height:"Alteco",width:"Lar\u011deco",style:"Stilo",margin:"Mar\u011deno",left:"Maldekstre",bottom:"Sube",right:"Dekstre",top:"Supre",same:"Same por \u0109iuj",padding:"Ena kromspaco","box_clear":"Kvitigi","box_float":"Flosado","box_height":"Alteco","box_width":"Lar\u011deco","block_display":"Montro","block_whitespace":"Spaco","block_text_indent":"Alineo","block_text_align":"Tekstoliniigo","block_vertical_alignment":"Vertikala liniigo","block_letterspacing":"Spaco inter literoj","block_wordspacing":"Spaco inter vortoj","background_vpos":"Vertikala pozicio","background_hpos":"Horizontala pozicio","background_attachment":"Fiksi","background_repeat":"Ripeti","background_image":"Fona bildo","background_color":"Fona koloro","text_none":"Neniu","text_blink":"Lumpulsi","text_case":"Majuskle","text_striketrough":"Strekite","text_underline":"Substrekite","text_overline":"Superstrekite","text_decoration":"Ornamado","text_color":"Koloro"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/es_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/es_dlg.js new file mode 100644 index 0000000..abf4b1d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/es_dlg.js @@ -0,0 +1,63 @@ +tinyMCE.addI18n('es.style_dlg',{ +title:"Editar Estilo CSS", +apply:"Aplicar", +text_tab:"Texto", +background_tab:"Fondo", +block_tab:"Bloque", +box_tab:"Caja", +border_tab:"Borde", +list_tab:"Lista", +positioning_tab:"Posici\u00F3n", +text_props:"Texto", +text_font:"Fuente", +text_size:"Tama\u00F1o", +text_weight:"Peso", +text_style:"Estilo", +text_variant:"Variante", +text_lineheight:"Ancho de la fila", +text_case:"Min\u00FAs./May\u00FAs.", +text_color:"Color", +text_decoration:"Decorativos", +text_overline:"Subrayado superior", +text_underline:"Subrayado", +text_striketrough:"Tachado", +text_blink:"Parpadeo", +text_none:"Ninguno", +background_color:"Color de fondo", +background_image:"Imagen de fondo", +background_repeat:"Repetici\u00F3n", +background_attachment:"Adjunto", +background_hpos:"Posici\u00F3n horizontal", +background_vpos:"Posici\u00F3n vertical", +block_wordspacing:"Espacio entre palabra", +block_letterspacing:"Espacio entre letra", +block_vertical_alignment:"Alineaci\u00F3n vertical", +block_text_align:"Alineaci\u00F3n del texto", +block_text_indent:"Sangr\u00EDa", +block_whitespace:"Espacio en blanco", +block_display:"Display", +box_width:"Ancho", +box_height:"Alto", +box_float:"Float", +box_clear:"Clear", +padding:"Padding", +same:"Lo mismo en todos", +top:"Arriba", +right:"Derecha", +bottom:"Debajo", +left:"Izquierda", +margin:"Margen", +style:"Estilo", +width:"Ancho", +height:"Alto", +color:"Color", +list_type:"Tipo", +bullet_image:"Imagen de la vi\u00F1eta", +position:"Posici\u00F3n", +positioning_type:"Tipo", +visibility:"Visibilidad", +zindex:"Z-index", +overflow:"Overflow", +placement:"Placement", +clip:"Clip" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/fr_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/fr_dlg.js new file mode 100644 index 0000000..a9a8122 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/fr_dlg.js @@ -0,0 +1,63 @@ +tinyMCE.addI18n('fr.style_dlg',{ +title:"\u00C9diter la feuille de style CSS", +apply:"Appliquer", +text_tab:"Texte", +background_tab:"Fond", +block_tab:"Bloc", +box_tab:"Boite", +border_tab:"Bordure", +list_tab:"Liste", +positioning_tab:"Positionnement", +text_props:"Texte", +text_font:"Police", +text_size:"Taille", +text_weight:"Poids", +text_style:"Style", +text_variant:"Variante", +text_lineheight:"Hauteur de ligne", +text_case:"Casse", +text_color:"Couleur", +text_decoration:"D\u00E9coration", +text_overline:"surlign\u00E9", +text_underline:"soulign\u00E9", +text_striketrough:"barr\u00E9", +text_blink:"clignotant", +text_none:"aucun", +background_color:"Couleur de fond", +background_image:"Image de fond", +background_repeat:"R\u00E9p\u00E9ter", +background_attachment:"Attachement", +background_hpos:"Position horizontale", +background_vpos:"Position verticale", +block_wordspacing:"Espacement des mots ", +block_letterspacing:"Espacement des lettres", +block_vertical_alignment:"Alignement vertical", +block_text_align:"Alignement du texte", +block_text_indent:"Indentation du texte", +block_whitespace:"Fin de ligne", +block_display:"Affichage", +box_width:"Largeur", +box_height:"Hauteur", +box_float:"Flottant", +box_clear:"Vider", +padding:"Espacement", +same:"Identique pour tous", +top:"Haut", +right:"Droit", +bottom:"Bas", +left:"Gauche", +margin:"Marge", +style:"Style", +width:"Largeur", +height:"Hauteur", +color:"Couleur", +list_type:"Type", +bullet_image:"Image de puce", +position:"Position", +positioning_type:"Type", +visibility:"Visibilit\u00E9", +zindex:"Z-index", +overflow:"D\u00E9bordement", +placement:"Placement", +clip:"Clip" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ja_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ja_dlg.js new file mode 100644 index 0000000..7cdbee0 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ja_dlg.js @@ -0,0 +1,63 @@ +tinyMCE.addI18n('ja.style_dlg',{ +title:"CSS\u7DE8\u96C6", +apply:"\u9069\u7528", +text_tab:"\u6587\u5B57", +background_tab:"\u80CC\u666F", +block_tab:"\u30D6\u30ED\u30C3\u30AF", +box_tab:"\u30DC\u30C3\u30AF\u30B9", +border_tab:"\u67A0\u7DDA", +list_tab:"\u30EA\u30B9\u30C8", +positioning_tab:"\u30DD\u30B8\u30B7\u30E7\u30F3", +text_props:"Text", +text_font:"\u30D5\u30A9\u30F3\u30C8", +text_size:"\u30B5\u30A4\u30BA", +text_weight:"\u592A\u3055", +text_style:"\u30B9\u30BF\u30A4\u30EB", +text_variant:"\u5909\u5F62", +text_lineheight:"\u884C\u9AD8\u3055", +text_case:"\u5927\u6587\u5B57/\u5C0F\u6587\u5B57", +text_color:"\u8272", +text_decoration:"\u88C5\u98FE", +text_overline:"\u4E0A\u7DDA", +text_underline:"\u4E0B\u7DDA", +text_striketrough:"\u6253\u6D88\u3057\u7DDA", +text_blink:"\u70B9\u6EC5", +text_none:"\u306A\u3057", +background_color:"\u80CC\u666F\u8272", +background_image:"\u80CC\u666F\u753B\u50CF", +background_repeat:"\u7E70\u308A\u8FD4\u3057", +background_attachment:"Attachment", +background_hpos:"\u6C34\u5E73\u4F4D\u7F6E", +background_vpos:"\u5782\u76F4\u4F4D\u7F6E", +block_wordspacing:"\u5358\u8A9E\u611F\u899A", +block_letterspacing:"\u6587\u5B57\u9593\u9694", +block_vertical_alignment:"\u5782\u76F4\u914D\u7F6E", +block_text_align:"\u6C34\u5E73\u914D\u7F6E", +block_text_indent:"\u30A4\u30F3\u30C7\u30F3\u30C8", +block_whitespace:"\u7A7A\u767D\u6587\u5B57", +block_display:"\u30C7\u30A3\u30B9\u30D7\u30EC\u30A4", +box_width:"\u5E45", +box_height:"\u9AD8\u3055", +box_float:"\u56DE\u308A\u8FBC\u307F", +box_clear:"\u56DE\u308A\u8FBC\u307F\u89E3\u9664", +padding:"\u30D1\u30C7\u30A3\u30F3\u30B0", +same:"\u5168\u3066\u540C\u3058\u306B\u3059\u308B", +top:"\u4E0A", +right:"\u53F3", +bottom:"\u4E0B", +left:"\u5DE6", +margin:"\u30DE\u30FC\u30B8\u30F3", +style:"\u30B9\u30BF\u30A4\u30EB", +width:"\u5E45", +height:"\u9AD8\u3055", +color:"\u8272", +list_type:"\u30DE\u30FC\u30AB\u30FC\u7A2E\u985E", +bullet_image:"\u30DE\u30FC\u30AB\u30FC\u753B\u50CF", +position:"\u30DE\u30FC\u30AB\u30FC\u8868\u793A\u4F4D\u7F6E", +positioning_type:"\u914D\u7F6E\u65B9\u6CD5", +visibility:"\u8868\u793A", +zindex:"Z-Index", +overflow:"\u30AA\u30FC\u30D0\u30FC\u30D5\u30ED\u30FC", +placement:"\u4F4D\u7F6E", +clip:"\u5207\u308A\u629C\u304D" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/nl_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/nl_dlg.js new file mode 100644 index 0000000..854a0be --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/nl_dlg.js @@ -0,0 +1,63 @@ +tinyMCE.addI18n('nl.style_dlg',{ +title:"CSS Stijl bewerken", +apply:"Toepassen", +text_tab:"Tekst", +background_tab:"Achtergrond", +block_tab:"Blok", +box_tab:"Box", +border_tab:"Rand", +list_tab:"Lijst", +positioning_tab:"Positionering", +text_props:"Tekst", +text_font:"Lettertype", +text_size:"Tekengrootte", +text_weight:"Gewicht", +text_style:"Stijl", +text_variant:"Variant", +text_lineheight:"Lijnhoogte", +text_case:"Hoofdlettergebruik", +text_color:"Kleur", +text_decoration:"Decoratie", +text_overline:"Overhalen", +text_underline:"Onderstrepen", +text_striketrough:"Doorhalen", +text_blink:"Knipperen", +text_none:"Niets", +background_color:"Achtergrondkleur", +background_image:"Achtergrondafbeelding", +background_repeat:"Herhalen", +background_attachment:"Bijlage", +background_hpos:"Horizontale positie", +background_vpos:"Verticale positie", +block_wordspacing:"Woordruimte", +block_letterspacing:"Letterruimte", +block_vertical_alignment:"Verticale uitlijning", +block_text_align:"Tekstuitlijning", +block_text_indent:"Inspringen", +block_whitespace:"Witruimte", +block_display:"Weergave", +box_width:"Breedte", +box_height:"Hoogte", +box_float:"Zweven", +box_clear:"Vrijhouden", +padding:"Opening", +same:"Alles hetzelfde", +top:"Boven", +right:"Rechts", +bottom:"Onder", +left:"Links", +margin:"Marge", +style:"Stijl", +width:"Breedte", +height:"Hoogte", +color:"Kleur", +list_type:"Type", +bullet_image:"Opsommingsteken", +position:"Positie", +positioning_type:"Type", +visibility:"Zichtbaarheid", +zindex:"Z-index", +overflow:"Overvloeien", +placement:"Plaatsing", +clip:"Clip" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/pt_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/pt_dlg.js new file mode 100644 index 0000000..fbc5dcc --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/pt_dlg.js @@ -0,0 +1,63 @@ +tinyMCE.addI18n('pt.style_dlg',{ +title:"Editar CSS", +apply:"Aplicar", +text_tab:"Texto", +background_tab:"Fundo", +block_tab:"Bloco", +box_tab:"Caixa", +border_tab:"Limites", +list_tab:"Lista", +positioning_tab:"Posicionamento", +text_props:"Texto", +text_font:"Fonte", +text_size:"Tamanho", +text_weight:"Peso", +text_style:"Estilo", +text_variant:"Variante", +text_lineheight:"Altura da linha", +text_case:"Mai\u00FAscula", +text_color:"Cor", +text_decoration:"Decora\u00E7\u00E3o", +text_overline:"Sobrelinha", +text_underline:"Sublinhado", +text_striketrough:"Riscado", +text_blink:"Piscar", +text_none:"nenhum", +background_color:"Cor de fundo", +background_image:"Imagem de fundo", +background_repeat:"Repetir", +background_attachment:"Fixar", +background_hpos:"Posi\u00E7\u00E3o horizontal", +background_vpos:"Posi\u00E7\u00E3o vertical", +block_wordspacing:"Espa\u00E7amento de palavras", +block_letterspacing:"Espa\u00E7amento de letras", +block_vertical_alignment:"Alinhamento vertical", +block_text_align:"Alinhamento de texto", +block_text_indent:"Indent", +block_whitespace:"Espa\u00E7o", +block_display:"Display", +box_width:"Largura", +box_height:"Altura", +box_float:"Float", +box_clear:"Clear", +padding:"Padding", +same:"O mesmo para todos", +top:"Topo", +right:"Direita", +bottom:"Abaixo", +left:"Esquerda", +margin:"Margem", +style:"Estilo", +width:"Largura", +height:"Altura", +color:"Cor", +list_type:"Tipo", +bullet_image:"Imagem de lista", +position:"Posi\u00E7\u00E3o", +positioning_type:"Tipo", +visibility:"Visibilidade", +zindex:"Z-index", +overflow:"Overflow", +placement:"Posicionamento", +clip:"Clip" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ru_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ru_dlg.js new file mode 100644 index 0000000..dfe04b9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/langs/ru_dlg.js @@ -0,0 +1,63 @@ +tinyMCE.addI18n('ru.style_dlg',{ +title:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 CSS \u0441\u0442\u0438\u043B\u044F", +apply:"\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C", +text_tab:"\u0422\u0435\u043A\u0441\u0442", +background_tab:"\u0424\u043E\u043D", +block_tab:"\u0411\u043B\u043E\u043A", +box_tab:"Box", +border_tab:"\u0413\u0440\u0430\u043D\u0438\u0446\u0430", +list_tab:"\u0421\u043F\u0438\u0441\u043E\u043A", +positioning_tab:"\u041F\u043E\u0437\u0438\u0446\u0438\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435", +text_props:"\u0422\u0435\u043A\u0441\u0442", +text_font:"\u0428\u0440\u0438\u0444\u0442", +text_size:"\u0420\u0430\u0437\u043C\u0435\u0440", +text_weight:"\u0422\u043E\u043B\u0449\u0438\u043D\u0430", +text_style:"\u0421\u0442\u0438\u043B\u044C", +text_variant:"Variant", +text_lineheight:"\u0412\u044B\u0441\u043E\u0442\u0430 \u0441\u0442\u0440\u043E\u043A\u0438", +text_case:"Case", +text_color:"\u0426\u0432\u0435\u0442", +text_decoration:"\u041E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435", +text_overline:"\u0432\u0435\u0440\u0445\u043D\u044F\u044F \u0447\u0435\u0440\u0442\u0430", +text_underline:"\u043D\u0438\u0436\u043D\u044F\u044F \u0447\u0435\u0440\u0442\u0430", +text_striketrough:"\u0437\u0430\u0447\u0435\u0440\u043A\u043D\u0443\u0442\u044B\u0439", +text_blink:"\u043C\u0435\u0440\u0446\u0430\u043D\u0438\u044F", +text_none:"\u043D\u0438\u0447\u0435\u0433\u043E", +background_color:"\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430", +background_image:"\u0424\u043E\u043D\u043E\u0432\u043E\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435", +background_repeat:"\u041F\u043E\u0432\u0442\u043E\u0440", +background_attachment:"Attachment", +background_hpos:"\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u0437\u0438\u0446\u0438\u044F", +background_vpos:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u0437\u0438\u0446\u0438\u044F", +block_wordspacing:"\u041E\u0442\u0441\u0442\u0443\u043F\u044B \u043C\u0435\u0436\u0434\u0443 \u0441\u043B\u043E\u0432\u0430\u043C\u0438", +block_letterspacing:"\u041E\u0442\u0441\u0442\u0443\u043F\u044B \u043C\u0435\u0436\u0434\u0443 \u0431\u0443\u043A\u0432\u0430\u043C\u0438", +block_vertical_alignment:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435", +block_text_align:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u043A\u0441\u0442\u0430", +block_text_indent:"Text indent", +block_whitespace:"Whitespace", +block_display:"Display", +box_width:"\u0428\u0438\u0440\u0438\u043D\u0430", +box_height:"\u0412\u044B\u0441\u043E\u0442\u0430", +box_float:"Float", +box_clear:"Clear", +padding:"Padding", +same:"\u041E\u0434\u0438\u043D\u0430\u043A\u043E\u0432\u043E \u0434\u043B\u044F \u0432\u0441\u0435\u0445", +top:"\u0412\u0432\u0435\u0440\u0445", +right:"\u0421\u043F\u0440\u0430\u0432\u0430", +bottom:"\u0421\u043D\u0438\u0437\u0443", +left:"\u0421\u043B\u0435\u0432\u0430", +margin:"Margin", +style:"\u0421\u0442\u0438\u043B\u044C", +width:"\u0428\u0438\u0440\u0438\u043D\u0430", +height:"\u0412\u044B\u0441\u043E\u0442\u0430", +color:"\u0426\u0432\u0435\u0442", +list_type:"\u0422\u0438\u043F", +bullet_image:"Bullet image", +position:"\u041F\u043E\u0437\u0438\u0446\u0438\u044F", +positioning_type:"\u0422\u0438\u043F", +visibility:"\u0412\u0438\u0434\u0438\u043C\u043E\u0441\u0442\u044C", +zindex:"Z-index", +overflow:"Overflow", +placement:"Placement", +clip:"Clip" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/props.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/props.htm new file mode 100644 index 0000000..b5a3d15 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/style/props.htm @@ -0,0 +1,838 @@ + + + + {#style_dlg.title} + + + + + + + + + + +
                    + + +
                    +
                    +
                    + {#style_dlg.text} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + +
                    + + + + + + +
                      + + +
                    +
                    + +
                    + + + +
                    + + + + + + +
                    + +   + + +
                    +
                    + +
                    + + + + + +
                     
                    +
                    {#style_dlg.text_decoration} + + + + + + + + + + + + + + + + + + + + + +
                    +
                    +
                    +
                    + +
                    +
                    + {#style_dlg.background} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + + + + + +
                     
                    +
                    + + + + +
                     
                    +
                    + + + + + + +
                      + + +
                    +
                    + + + + + + +
                      + + +
                    +
                    +
                    +
                    + +
                    +
                    + {#style_dlg.block} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + + + + + + +
                      + + +
                    +
                    + + + + + + +
                      + + +
                    +
                    + + + + + + +
                      + + + +
                    +
                    +
                    +
                    + +
                    +
                    + {#style_dlg.box} + + + + + + + + + + + + + + +
                    + + + + + + +
                      + + +
                    +
                       
                    + + + + + + +
                      + + +
                    +
                       
                    +
                    +
                    + {#style_dlg.padding} + + + + + + + + + + + + + + + + + + + + + + +
                     
                    + + + + + + +
                      + + +
                    +
                    + + + + + + +
                      + + +
                    +
                    + + + + + + +
                      + + +
                    +
                    + + + + + + +
                      + + +
                    +
                    +
                    +
                    + +
                    +
                    + {#style_dlg.margin} + + + + + + + + + + + + + + + + + + + + + + +
                     
                    + + + + + + +
                      + + +
                    +
                    + + + + + + +
                      + + +
                    +
                    + + + + + + +
                      + + +
                    +
                    + + + + + + +
                      + + +
                    +
                    +
                    +
                    +
                    +
                    + +
                    +
                    + {#style_dlg.border} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                      {#style_dlg.style} {#style_dlg.width} {#style_dlg.color}
                          
                    {#style_dlg.top}   + + + + + + +
                      + + +
                    +
                      + + + + + +
                     
                    +
                    {#style_dlg.right}   + + + + + + +
                      + + +
                    +
                      + + + + + +
                     
                    +
                    {#style_dlg.bottom}   + + + + + + +
                      + + +
                    +
                      + + + + + +
                     
                    +
                    {#style_dlg.left}   + + + + + + +
                      + + +
                    +
                      + + + + + +
                     
                    +
                    +
                    +
                    + +
                    +
                    + {#style_dlg.list} + + + + + + + + + + + + + + + +
                    +
                    +
                    + +
                    +
                    + {#style_dlg.position} + + + + + + + + + + + + + + + + + + + + + +
                       
                    + + + + + + +
                      + + +
                    +
                       
                    + + + + + + +
                      + + +
                    +
                       
                    + +
                    +
                    + {#style_dlg.placement} + + + + + + + + + + + + + + + + + + + + + + +
                     
                    {#style_dlg.top} + + + + + + +
                      + + +
                    +
                    {#style_dlg.right} + + + + + + +
                      + + +
                    +
                    {#style_dlg.bottom} + + + + + + +
                      + + +
                    +
                    {#style_dlg.left} + + + + + + +
                      + + +
                    +
                    +
                    +
                    + +
                    +
                    + {#style_dlg.clip} + + + + + + + + + + + + + + + + + + + + + + +
                     
                    {#style_dlg.top} + + + + + + +
                      + + +
                    +
                    {#style_dlg.right} + + + + + + +
                      + + +
                    +
                    {#style_dlg.bottom} + + + + + + +
                      + + +
                    +
                    {#style_dlg.left} + + + + + + +
                      + + +
                    +
                    +
                    +
                    +
                    +
                    + +
                    + +
                    + + + +
                    +
                    + +
                    +
                    +
                    + + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js new file mode 100644 index 0000000..d18689d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js @@ -0,0 +1 @@ +(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(r){n=c.select(":input:enabled,*[tabindex]");function i(s){return s.type!="hidden"&&s.tabIndex!="-1"&&!(n[m].style.display=="none")&&!(n[m].style.visibility=="hidden")}d(n,function(t,s){if(t.id==l.id){j=s;return false}});if(r>0){for(m=j+1;m=0;m--){if(i(n[m])){return n[m]}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(n.id&&(l=tinymce.get(n.id||n.name))){l.focus()}else{window.setTimeout(function(){if(!tinymce.isWebKit){window.focus()}n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js new file mode 100644 index 0000000..f4545e1 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js @@ -0,0 +1,114 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, explode = tinymce.explode; + + tinymce.create('tinymce.plugins.TabFocusPlugin', { + init : function(ed, url) { + function tabCancel(ed, e) { + if (e.keyCode === 9) + return Event.cancel(e); + }; + + function tabHandler(ed, e) { + var x, i, f, el, v; + + function find(d) { + el = DOM.select(':input:enabled,*[tabindex]'); + function canSelect(e) { + return e.type != 'hidden' && + e.tabIndex != '-1' && + !(el[i].style.display == "none") && + !(el[i].style.visibility == "hidden"); + } + + each(el, function(e, i) { + if (e.id == ed.id) { + x = i; + return false; + } + }); + + if (d > 0) { + for (i = x + 1; i < el.length; i++) { + if (canSelect(el[i])) + return el[i]; + } + } else { + for (i = x - 1; i >= 0; i--) { + if (canSelect(el[i])) + return el[i]; + } + } + + return null; + }; + + if (e.keyCode === 9) { + v = explode(ed.getParam('tab_focus', ed.getParam('tabfocus_elements', ':prev,:next'))); + + if (v.length == 1) { + v[1] = v[0]; + v[0] = ':prev'; + } + + // Find element to focus + if (e.shiftKey) { + if (v[0] == ':prev') + el = find(-1); + else + el = DOM.get(v[0]); + } else { + if (v[1] == ':next') + el = find(1); + else + el = DOM.get(v[1]); + } + + if (el) { + if (el.id && (ed = tinymce.get(el.id || el.name))) + ed.focus(); + else + window.setTimeout(function() { + if (!tinymce.isWebKit) + window.focus(); + el.focus(); + }, 10); + + return Event.cancel(e); + } + } + }; + + ed.onKeyUp.add(tabCancel); + + if (tinymce.isGecko) { + ed.onKeyPress.add(tabHandler); + ed.onKeyDown.add(tabCancel); + } else + ed.onKeyDown.add(tabHandler); + + }, + + getInfo : function() { + return { + longname : 'Tabfocus', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('tabfocus', tinymce.plugins.TabFocusPlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/cell.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/cell.htm new file mode 100644 index 0000000..4afb6af --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/cell.htm @@ -0,0 +1,178 @@ + + + + {#table_dlg.cell_title} + + + + + + + + +
                    + + +
                    +
                    +
                    + {#table_dlg.general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + + + +
                    + + + +
                    + +
                    +
                    +
                    + +
                    +
                    + {#table_dlg.advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + +
                    + +
                    + + + + + +
                     
                    +
                    + + + + + +
                     
                    +
                    + + + + + +
                     
                    +
                    +
                    +
                    +
                    + +
                    +
                    + +
                    + + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css new file mode 100644 index 0000000..a067ecd --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css @@ -0,0 +1,17 @@ +/* CSS file for cell dialog in the table plugin */ + +.panel_wrapper div.current { + height: 200px; +} + +.advfield { + width: 200px; +} + +#action { + margin-bottom: 3px; +} + +#class { + width: 150px; +} \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/row.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/row.css new file mode 100644 index 0000000..1f7755d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/row.css @@ -0,0 +1,25 @@ +/* CSS file for row dialog in the table plugin */ + +.panel_wrapper div.current { + height: 200px; +} + +.advfield { + width: 200px; +} + +#action { + margin-bottom: 3px; +} + +#rowtype,#align,#valign,#class,#height { + width: 150px; +} + +#height { + width: 50px; +} + +.col2 { + padding-left: 20px; +} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/table.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/table.css new file mode 100644 index 0000000..d11c3f6 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/css/table.css @@ -0,0 +1,13 @@ +/* CSS file for table dialog in the table plugin */ + +.panel_wrapper div.current { + height: 245px; +} + +.advfield { + width: 200px; +} + +#class { + width: 150px; +} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js new file mode 100644 index 0000000..727ae4e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js @@ -0,0 +1 @@ +(function(c){var d=c.each;function b(f,g){var h=g.ownerDocument,e=h.createRange(),j;e.setStartBefore(g);e.setEnd(f.endContainer,f.endOffset);j=h.createElement("body");j.appendChild(e.cloneContents());return j.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length==0}function a(H,G,K){var f,L,D,o;t();o=G.getParent(K.getStart(),"th,td");if(o){L=F(o);D=I();o=z(L.x,L.y)}function A(N,M){N=N.cloneNode(M);N.removeAttribute("id");return N}function t(){var M=0;f=[];d(["thead","tbody","tfoot"],function(N){var O=G.select("> "+N+" tr",H);d(O,function(P,Q){Q+=M;d(G.select("> td, > th",P),function(W,R){var S,T,U,V;if(f[Q]){while(f[Q][R]){R++}}U=h(W,"rowspan");V=h(W,"colspan");for(T=Q;T'}return false}},"childNodes");M=A(M,false);s(M,"rowSpan",1);s(M,"colSpan",1);if(N){M.appendChild(N)}else{if(!c.isIE){M.innerHTML='
                    '}}return M}function q(){var M=G.createRng();d(G.select("tr",H),function(N){if(N.cells.length==0){G.remove(N)}});if(G.select("tr",H).length==0){M.setStartAfter(H);M.setEndAfter(H);K.setRng(M);G.remove(H);return}d(G.select("thead,tbody,tfoot",H),function(N){if(N.rows.length==0){G.remove(N)}});t();row=f[Math.min(f.length-1,L.y)];if(row){K.select(row[Math.min(row.length-1,L.x)].elm,true);K.collapse(true)}}function u(S,Q,U,R){var P,N,M,O,T;P=f[Q][S].elm.parentNode;for(M=1;M<=U;M++){P=G.getNext(P,"tr");if(P){for(N=S;N>=0;N--){T=f[Q+M][N].elm;if(T.parentNode==P){for(O=1;O<=R;O++){G.insertAfter(e(T),T)}break}}if(N==-1){for(O=1;O<=R;O++){P.insertBefore(e(P.cells[0]),P.cells[0])}}}}}function C(){d(f,function(M,N){d(M,function(P,O){var S,R,T,Q;if(j(P)){P=P.elm;S=h(P,"colspan");R=h(P,"rowspan");if(S>1||R>1){s(P,"rowSpan",1);s(P,"colSpan",1);for(Q=0;Q1){s(S,"rowSpan",O+1);continue}}else{if(M>0&&f[M-1][R]){V=f[M-1][R].elm;O=h(V,"rowSpan");if(O>1){s(V,"rowSpan",O+1);continue}}}N=e(S);s(N,"colSpan",S.colSpan);U.appendChild(N);P=S}}if(U.hasChildNodes()){if(!Q){G.insertAfter(U,T)}else{T.parentNode.insertBefore(U,T)}}}function g(N){var O,M;d(f,function(P,Q){d(P,function(S,R){if(j(S)){O=R;if(N){return false}}});if(N){return !O}});d(f,function(S,T){var P,Q,R;if(!S[O]){return}P=S[O].elm;if(P!=M){R=h(P,"colspan");Q=h(P,"rowspan");if(R==1){if(!N){G.insertAfter(e(P),P);u(O,T,Q-1,R)}else{P.parentNode.insertBefore(e(P),P);u(O,T,Q-1,R)}}else{s(P,"colSpan",P.colSpan+1)}M=P}})}function n(){var M=[];d(f,function(N,O){d(N,function(Q,P){if(j(Q)&&c.inArray(M,P)===-1){d(f,function(T){var R=T[P].elm,S;S=h(R,"colSpan");if(S>1){s(R,"colSpan",S-1)}else{G.remove(R)}});M.push(P)}})});q()}function m(){var N;function M(Q){var P,R,O;P=G.getNext(Q,"tr");d(Q.cells,function(S){var T=h(S,"rowSpan");if(T>1){s(S,"rowSpan",T-1);R=F(S);u(R.x,R.y,1,1)}});R=F(Q.cells[0]);d(f[R.y],function(S){var T;S=S.elm;if(S!=O){T=h(S,"rowSpan");if(T<=1){G.remove(S)}else{s(S,"rowSpan",T-1)}O=S}})}N=k();d(N.reverse(),function(O){M(O)});q()}function E(){var M=k();G.remove(M);q();return M}function J(){var M=k();d(M,function(O,N){M[N]=A(O,true)});return M}function B(O,N){var P=k(),M=P[N?0:P.length-1],Q=M.cells.length;d(f,function(S){var R;Q=0;d(S,function(U,T){if(U.real){Q+=U.colspan}if(U.elm.parentNode==M){R=1}});if(R){return false}});if(!N){O.reverse()}d(O,function(T){var S=T.cells.length,R;for(i=0;iN){N=R}if(Q>M){M=Q}if(S.real){U=S.colspan-1;T=S.rowspan-1;if(U){if(R+U>N){N=R+U}}if(T){if(Q+T>M){M=Q+T}}}}})});return{x:N,y:M}}function v(S){var P,O,U,T,N,M,Q,R;D=F(S);if(L&&D){P=Math.min(L.x,D.x);O=Math.min(L.y,D.y);U=Math.max(L.x,D.x);T=Math.max(L.y,D.y);N=U;M=T;for(y=O;y<=M;y++){S=f[y][P];if(!S.real){if(P-(S.colspan-1)N){N=x+Q}}if(R){if(y+R>M){M=y+R}}}}}G.removeClass(G.select("td.mceSelected,th.mceSelected"),"mceSelected");for(y=O;y<=M;y++){for(x=P;x<=N;x++){if(f[y][x]){G.addClass(f[y][x].elm,"mceSelected")}}}}}c.extend(this,{deleteTable:r,split:C,merge:p,insertRow:l,insertCol:g,deleteCols:n,deleteRows:m,cutRows:E,copyRows:J,pasteRows:B,getPos:F,setStartCell:w,setEndCell:v})}c.create("tinymce.plugins.TablePlugin",{init:function(f,g){var e,k;function j(n){var m=f.selection,l=f.dom.getParent(n||m.getNode(),"table");if(l){return new a(l,f.dom,m)}}function h(){f.getBody().style.webkitUserSelect="";f.dom.removeClass(f.dom.select("td.mceSelected,th.mceSelected"),"mceSelected")}d([["table","table.desc","mceInsertTable",true],["delete_table","table.del","mceTableDelete"],["delete_col","table.delete_col_desc","mceTableDeleteCol"],["delete_row","table.delete_row_desc","mceTableDeleteRow"],["col_after","table.col_after_desc","mceTableInsertColAfter"],["col_before","table.col_before_desc","mceTableInsertColBefore"],["row_after","table.row_after_desc","mceTableInsertRowAfter"],["row_before","table.row_before_desc","mceTableInsertRowBefore"],["row_props","table.row_desc","mceTableRowProps",true],["cell_props","table.cell_desc","mceTableCellProps",true],["split_cells","table.split_cells_desc","mceTableSplitCells",true],["merge_cells","table.merge_cells_desc","mceTableMergeCells",true]],function(l){f.addButton(l[0],{title:l[1],cmd:l[2],ui:l[3]})});if(!c.isIE){f.onClick.add(function(l,m){m=m.target;if(m.nodeName==="TABLE"){l.selection.select(m);l.nodeChanged()}})}f.onPreProcess.add(function(m,n){var l,o,p,r=m.dom,q;l=r.select("table",n.node);o=l.length;while(o--){p=l[o];r.setAttrib(p,"data-mce-style","");if((q=r.getAttrib(p,"width"))){r.setStyle(p,"width",q);r.setAttrib(p,"width","")}if((q=r.getAttrib(p,"height"))){r.setStyle(p,"height",q);r.setAttrib(p,"height","")}}});f.onNodeChange.add(function(m,l,q){var o;q=m.selection.getStart();o=m.dom.getParent(q,"td,th,caption");l.setActive("table",q.nodeName==="TABLE"||!!o);if(o&&o.nodeName==="CAPTION"){o=0}l.setDisabled("delete_table",!o);l.setDisabled("delete_col",!o);l.setDisabled("delete_table",!o);l.setDisabled("delete_row",!o);l.setDisabled("col_after",!o);l.setDisabled("col_before",!o);l.setDisabled("row_after",!o);l.setDisabled("row_before",!o);l.setDisabled("row_props",!o);l.setDisabled("cell_props",!o);l.setDisabled("split_cells",!o);l.setDisabled("merge_cells",!o)});f.onInit.add(function(m){var l,p,q=m.dom,n;e=m.windowManager;m.onMouseDown.add(function(r,s){if(s.button!=2){h();p=q.getParent(s.target,"td,th");l=q.getParent(p,"table")}});q.bind(m.getDoc(),"mouseover",function(v){var t,s,u=v.target;if(p&&(n||u!=p)&&(u.nodeName=="TD"||u.nodeName=="TH")){s=q.getParent(u,"table");if(s==l){if(!n){n=j(s);n.setStartCell(p);m.getBody().style.webkitUserSelect="none"}n.setEndCell(u)}t=m.selection.getSel();try{if(t.removeAllRanges){t.removeAllRanges()}else{t.empty()}}catch(r){}v.preventDefault()}});m.onMouseUp.add(function(A,B){var s,u=A.selection,C,D=u.getSel(),r,v,t,z;if(p){if(n){A.getBody().style.webkitUserSelect=""}function w(E,G){var F=new c.dom.TreeWalker(E,E);do{if(E.nodeType==3&&c.trim(E.nodeValue).length!=0){if(G){s.setStart(E,0)}else{s.setEnd(E,E.nodeValue.length)}return}if(E.nodeName=="BR"){if(G){s.setStartBefore(E)}else{s.setEndBefore(E)}return}}while(E=(G?F.next():F.prev()))}C=q.select("td.mceSelected,th.mceSelected");if(C.length>0){s=q.createRng();v=C[0];z=C[C.length-1];w(v,1);r=new c.dom.TreeWalker(v,q.getParent(C[0],"table"));do{if(v.nodeName=="TD"||v.nodeName=="TH"){if(!q.hasClass(v,"mceSelected")){break}t=v}}while(v=r.next());w(t);u.setRng(s)}A.nodeChanged();p=n=l=null}});m.onKeyUp.add(function(r,s){h()});if(m&&m.plugins.contextmenu){m.plugins.contextmenu.onContextMenu.add(function(t,r,v){var w,u=m.selection,s=u.getNode()||m.getBody();if(m.dom.getParent(v,"td")||m.dom.getParent(v,"th")||m.dom.select("td.mceSelected,th.mceSelected").length){r.removeAll();if(s.nodeName=="A"&&!m.dom.getAttrib(s,"name")){r.add({title:"advanced.link_desc",icon:"link",cmd:m.plugins.advlink?"mceAdvLink":"mceLink",ui:true});r.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"});r.addSeparator()}if(s.nodeName=="IMG"&&s.className.indexOf("mceItem")==-1){r.add({title:"advanced.image_desc",icon:"image",cmd:m.plugins.advimage?"mceAdvImage":"mceImage",ui:true});r.addSeparator()}r.add({title:"table.desc",icon:"table",cmd:"mceInsertTable",value:{action:"insert"}});r.add({title:"table.props_desc",icon:"table_props",cmd:"mceInsertTable"});r.add({title:"table.del",icon:"delete_table",cmd:"mceTableDelete"});r.addSeparator();w=r.addMenu({title:"table.cell"});w.add({title:"table.cell_desc",icon:"cell_props",cmd:"mceTableCellProps"});w.add({title:"table.split_cells_desc",icon:"split_cells",cmd:"mceTableSplitCells"});w.add({title:"table.merge_cells_desc",icon:"merge_cells",cmd:"mceTableMergeCells"});w=r.addMenu({title:"table.row"});w.add({title:"table.row_desc",icon:"row_props",cmd:"mceTableRowProps"});w.add({title:"table.row_before_desc",icon:"row_before",cmd:"mceTableInsertRowBefore"});w.add({title:"table.row_after_desc",icon:"row_after",cmd:"mceTableInsertRowAfter"});w.add({title:"table.delete_row_desc",icon:"delete_row",cmd:"mceTableDeleteRow"});w.addSeparator();w.add({title:"table.cut_row_desc",icon:"cut",cmd:"mceTableCutRow"});w.add({title:"table.copy_row_desc",icon:"copy",cmd:"mceTableCopyRow"});w.add({title:"table.paste_row_before_desc",icon:"paste",cmd:"mceTablePasteRowBefore"}).setDisabled(!k);w.add({title:"table.paste_row_after_desc",icon:"paste",cmd:"mceTablePasteRowAfter"}).setDisabled(!k);w=r.addMenu({title:"table.col"});w.add({title:"table.col_before_desc",icon:"col_before",cmd:"mceTableInsertColBefore"});w.add({title:"table.col_after_desc",icon:"col_after",cmd:"mceTableInsertColAfter"});w.add({title:"table.delete_col_desc",icon:"delete_col",cmd:"mceTableDeleteCol"})}else{r.add({title:"table.desc",icon:"table",cmd:"mceInsertTable"})}})}if(!c.isIE){function o(){var r;for(r=m.getBody().lastChild;r&&r.nodeType==3&&!r.nodeValue.length;r=r.previousSibling){}if(r&&r.nodeName=="TABLE"){m.dom.add(m.getBody(),"p",null,'
                    ')}}if(c.isGecko){m.onKeyDown.add(function(s,u){var r,t,v=s.dom;if(u.keyCode==37||u.keyCode==38){r=s.selection.getRng();t=v.getParent(r.startContainer,"table");if(t&&s.getBody().firstChild==t){if(b(r,t)){r=v.createRng();r.setStartBefore(t);r.setEndBefore(t);s.selection.setRng(r);u.preventDefault()}}}})}m.onKeyUp.add(o);m.onSetContent.add(o);m.onVisualAid.add(o);m.onPreProcess.add(function(r,t){var s=t.node.lastChild;if(s&&s.childNodes.length==1&&s.firstChild.nodeName=="BR"){r.dom.remove(s)}});o()}});d({mceTableSplitCells:function(l){l.split()},mceTableMergeCells:function(m){var n,o,l;l=f.dom.getParent(f.selection.getNode(),"th,td");if(l){n=l.rowSpan;o=l.colSpan}if(!f.dom.select("td.mceSelected,th.mceSelected").length){e.open({url:g+"/merge_cells.htm",width:240+parseInt(f.getLang("table.merge_cells_delta_width",0)),height:110+parseInt(f.getLang("table.merge_cells_delta_height",0)),inline:1},{rows:n,cols:o,onaction:function(p){m.merge(l,p.cols,p.rows)},plugin_url:g})}else{m.merge()}},mceTableInsertRowBefore:function(l){l.insertRow(true)},mceTableInsertRowAfter:function(l){l.insertRow()},mceTableInsertColBefore:function(l){l.insertCol(true)},mceTableInsertColAfter:function(l){l.insertCol()},mceTableDeleteCol:function(l){l.deleteCols()},mceTableDeleteRow:function(l){l.deleteRows()},mceTableCutRow:function(l){k=l.cutRows()},mceTableCopyRow:function(l){k=l.copyRows()},mceTablePasteRowBefore:function(l){l.pasteRows(k,true)},mceTablePasteRowAfter:function(l){l.pasteRows(k)},mceTableDelete:function(l){l.deleteTable()}},function(m,l){f.addCommand(l,function(){var n=j();if(n){m(n);f.execCommand("mceRepaint");h()}})});d({mceInsertTable:function(l){e.open({url:g+"/table.htm",width:400+parseInt(f.getLang("table.table_delta_width",0)),height:320+parseInt(f.getLang("table.table_delta_height",0)),inline:1},{plugin_url:g,action:l?l.action:0})},mceTableRowProps:function(){e.open({url:g+"/row.htm",width:400+parseInt(f.getLang("table.rowprops_delta_width",0)),height:295+parseInt(f.getLang("table.rowprops_delta_height",0)),inline:1},{plugin_url:g})},mceTableCellProps:function(){e.open({url:g+"/cell.htm",width:400+parseInt(f.getLang("table.cellprops_delta_width",0)),height:295+parseInt(f.getLang("table.cellprops_delta_height",0)),inline:1},{plugin_url:g})}},function(m,l){f.addCommand(l,function(n,o){m(o)})})}});c.PluginManager.add("table",c.plugins.TablePlugin)})(tinymce); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js new file mode 100644 index 0000000..442e465 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js @@ -0,0 +1,1202 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function(tinymce) { + var each = tinymce.each; + + // Checks if the selection/caret is at the start of the specified block element + function isAtStart(rng, par) { + var doc = par.ownerDocument, rng2 = doc.createRange(), elm; + + rng2.setStartBefore(par); + rng2.setEnd(rng.endContainer, rng.endOffset); + + elm = doc.createElement('body'); + elm.appendChild(rng2.cloneContents()); + + // Check for text characters of other elements that should be treated as content + return elm.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi, '-').replace(/<[^>]+>/g, '').length == 0; + }; + + /** + * Table Grid class. + */ + function TableGrid(table, dom, selection) { + var grid, startPos, endPos, selectedCell; + + buildGrid(); + selectedCell = dom.getParent(selection.getStart(), 'th,td'); + if (selectedCell) { + startPos = getPos(selectedCell); + endPos = findEndPos(); + selectedCell = getCell(startPos.x, startPos.y); + } + + function cloneNode(node, children) { + node = node.cloneNode(children); + node.removeAttribute('id'); + + return node; + } + + function buildGrid() { + var startY = 0; + + grid = []; + + each(['thead', 'tbody', 'tfoot'], function(part) { + var rows = dom.select('> ' + part + ' tr', table); + + each(rows, function(tr, y) { + y += startY; + + each(dom.select('> td, > th', tr), function(td, x) { + var x2, y2, rowspan, colspan; + + // Skip over existing cells produced by rowspan + if (grid[y]) { + while (grid[y][x]) + x++; + } + + // Get col/rowspan from cell + rowspan = getSpanVal(td, 'rowspan'); + colspan = getSpanVal(td, 'colspan'); + + // Fill out rowspan/colspan right and down + for (y2 = y; y2 < y + rowspan; y2++) { + if (!grid[y2]) + grid[y2] = []; + + for (x2 = x; x2 < x + colspan; x2++) { + grid[y2][x2] = { + part : part, + real : y2 == y && x2 == x, + elm : td, + rowspan : rowspan, + colspan : colspan + }; + } + } + }); + }); + + startY += rows.length; + }); + }; + + function getCell(x, y) { + var row; + + row = grid[y]; + if (row) + return row[x]; + }; + + function getSpanVal(td, name) { + return parseInt(td.getAttribute(name) || 1); + }; + + function setSpanVal(td, name, val) { + if (td) { + val = parseInt(val); + + if (val === 1) + td.removeAttribute(name, 1); + else + td.setAttribute(name, val, 1); + } + } + + function isCellSelected(cell) { + return cell && (dom.hasClass(cell.elm, 'mceSelected') || cell == selectedCell); + }; + + function getSelectedRows() { + var rows = []; + + each(table.rows, function(row) { + each(row.cells, function(cell) { + if (dom.hasClass(cell, 'mceSelected') || cell == selectedCell.elm) { + rows.push(row); + return false; + } + }); + }); + + return rows; + }; + + function deleteTable() { + var rng = dom.createRng(); + + rng.setStartAfter(table); + rng.setEndAfter(table); + + selection.setRng(rng); + + dom.remove(table); + }; + + function cloneCell(cell) { + var formatNode; + + // Clone formats + tinymce.walk(cell, function(node) { + var curNode; + + if (node.nodeType == 3) { + each(dom.getParents(node.parentNode, null, cell).reverse(), function(node) { + node = cloneNode(node, false); + + if (!formatNode) + formatNode = curNode = node; + else if (curNode) + curNode.appendChild(node); + + curNode = node; + }); + + // Add something to the inner node + if (curNode) + curNode.innerHTML = tinymce.isIE ? ' ' : '
                    '; + + return false; + } + }, 'childNodes'); + + cell = cloneNode(cell, false); + setSpanVal(cell, 'rowSpan', 1); + setSpanVal(cell, 'colSpan', 1); + + if (formatNode) { + cell.appendChild(formatNode); + } else { + if (!tinymce.isIE) + cell.innerHTML = '
                    '; + } + + return cell; + }; + + function cleanup() { + var rng = dom.createRng(); + + // Empty rows + each(dom.select('tr', table), function(tr) { + if (tr.cells.length == 0) + dom.remove(tr); + }); + + // Empty table + if (dom.select('tr', table).length == 0) { + rng.setStartAfter(table); + rng.setEndAfter(table); + selection.setRng(rng); + dom.remove(table); + return; + } + + // Empty header/body/footer + each(dom.select('thead,tbody,tfoot', table), function(part) { + if (part.rows.length == 0) + dom.remove(part); + }); + + // Restore selection to start position if it still exists + buildGrid(); + + // Restore the selection to the closest table position + row = grid[Math.min(grid.length - 1, startPos.y)]; + if (row) { + selection.select(row[Math.min(row.length - 1, startPos.x)].elm, true); + selection.collapse(true); + } + }; + + function fillLeftDown(x, y, rows, cols) { + var tr, x2, r, c, cell; + + tr = grid[y][x].elm.parentNode; + for (r = 1; r <= rows; r++) { + tr = dom.getNext(tr, 'tr'); + + if (tr) { + // Loop left to find real cell + for (x2 = x; x2 >= 0; x2--) { + cell = grid[y + r][x2].elm; + + if (cell.parentNode == tr) { + // Append clones after + for (c = 1; c <= cols; c++) + dom.insertAfter(cloneCell(cell), cell); + + break; + } + } + + if (x2 == -1) { + // Insert nodes before first cell + for (c = 1; c <= cols; c++) + tr.insertBefore(cloneCell(tr.cells[0]), tr.cells[0]); + } + } + } + }; + + function split() { + each(grid, function(row, y) { + each(row, function(cell, x) { + var colSpan, rowSpan, newCell, i; + + if (isCellSelected(cell)) { + cell = cell.elm; + colSpan = getSpanVal(cell, 'colspan'); + rowSpan = getSpanVal(cell, 'rowspan'); + + if (colSpan > 1 || rowSpan > 1) { + setSpanVal(cell, 'rowSpan', 1); + setSpanVal(cell, 'colSpan', 1); + + // Insert cells right + for (i = 0; i < colSpan - 1; i++) + dom.insertAfter(cloneCell(cell), cell); + + fillLeftDown(x, y, rowSpan - 1, colSpan); + } + } + }); + }); + }; + + function merge(cell, cols, rows) { + var startX, startY, endX, endY, x, y, startCell, endCell, cell, children, count; + + // Use specified cell and cols/rows + if (cell) { + pos = getPos(cell); + startX = pos.x; + startY = pos.y; + endX = startX + (cols - 1); + endY = startY + (rows - 1); + } else { + // Use selection + startX = startPos.x; + startY = startPos.y; + endX = endPos.x; + endY = endPos.y; + } + + // Find start/end cells + startCell = getCell(startX, startY); + endCell = getCell(endX, endY); + + // Check if the cells exists and if they are of the same part for example tbody = tbody + if (startCell && endCell && startCell.part == endCell.part) { + // Split and rebuild grid + split(); + buildGrid(); + + // Set row/col span to start cell + startCell = getCell(startX, startY).elm; + setSpanVal(startCell, 'colSpan', (endX - startX) + 1); + setSpanVal(startCell, 'rowSpan', (endY - startY) + 1); + + // Remove other cells and add it's contents to the start cell + for (y = startY; y <= endY; y++) { + for (x = startX; x <= endX; x++) { + if (!grid[y] || !grid[y][x]) + continue; + + cell = grid[y][x].elm; + + if (cell != startCell) { + // Move children to startCell + children = tinymce.grep(cell.childNodes); + each(children, function(node) { + startCell.appendChild(node); + }); + + // Remove bogus nodes if there is children in the target cell + if (children.length) { + children = tinymce.grep(startCell.childNodes); + count = 0; + each(children, function(node) { + if (node.nodeName == 'BR' && dom.getAttrib(node, 'data-mce-bogus') && count++ < children.length - 1) + startCell.removeChild(node); + }); + } + + // Remove cell + dom.remove(cell); + } + } + } + + // Remove empty rows etc and restore caret location + cleanup(); + } + }; + + function insertRow(before) { + var posY, cell, lastCell, x, rowElm, newRow, newCell, otherCell, rowSpan; + + // Find first/last row + each(grid, function(row, y) { + each(row, function(cell, x) { + if (isCellSelected(cell)) { + cell = cell.elm; + rowElm = cell.parentNode; + newRow = cloneNode(rowElm, false); + posY = y; + + if (before) + return false; + } + }); + + if (before) + return !posY; + }); + + for (x = 0; x < grid[0].length; x++) { + // Cell not found could be because of an invalid table structure + if (!grid[posY][x]) + continue; + + cell = grid[posY][x].elm; + + if (cell != lastCell) { + if (!before) { + rowSpan = getSpanVal(cell, 'rowspan'); + if (rowSpan > 1) { + setSpanVal(cell, 'rowSpan', rowSpan + 1); + continue; + } + } else { + // Check if cell above can be expanded + if (posY > 0 && grid[posY - 1][x]) { + otherCell = grid[posY - 1][x].elm; + rowSpan = getSpanVal(otherCell, 'rowSpan'); + if (rowSpan > 1) { + setSpanVal(otherCell, 'rowSpan', rowSpan + 1); + continue; + } + } + } + + // Insert new cell into new row + newCell = cloneCell(cell); + setSpanVal(newCell, 'colSpan', cell.colSpan); + + newRow.appendChild(newCell); + + lastCell = cell; + } + } + + if (newRow.hasChildNodes()) { + if (!before) + dom.insertAfter(newRow, rowElm); + else + rowElm.parentNode.insertBefore(newRow, rowElm); + } + }; + + function insertCol(before) { + var posX, lastCell; + + // Find first/last column + each(grid, function(row, y) { + each(row, function(cell, x) { + if (isCellSelected(cell)) { + posX = x; + + if (before) + return false; + } + }); + + if (before) + return !posX; + }); + + each(grid, function(row, y) { + var cell, rowSpan, colSpan; + + if (!row[posX]) + return; + + cell = row[posX].elm; + if (cell != lastCell) { + colSpan = getSpanVal(cell, 'colspan'); + rowSpan = getSpanVal(cell, 'rowspan'); + + if (colSpan == 1) { + if (!before) { + dom.insertAfter(cloneCell(cell), cell); + fillLeftDown(posX, y, rowSpan - 1, colSpan); + } else { + cell.parentNode.insertBefore(cloneCell(cell), cell); + fillLeftDown(posX, y, rowSpan - 1, colSpan); + } + } else + setSpanVal(cell, 'colSpan', cell.colSpan + 1); + + lastCell = cell; + } + }); + }; + + function deleteCols() { + var cols = []; + + // Get selected column indexes + each(grid, function(row, y) { + each(row, function(cell, x) { + if (isCellSelected(cell) && tinymce.inArray(cols, x) === -1) { + each(grid, function(row) { + var cell = row[x].elm, colSpan; + + colSpan = getSpanVal(cell, 'colSpan'); + + if (colSpan > 1) + setSpanVal(cell, 'colSpan', colSpan - 1); + else + dom.remove(cell); + }); + + cols.push(x); + } + }); + }); + + cleanup(); + }; + + function deleteRows() { + var rows; + + function deleteRow(tr) { + var nextTr, pos, lastCell; + + nextTr = dom.getNext(tr, 'tr'); + + // Move down row spanned cells + each(tr.cells, function(cell) { + var rowSpan = getSpanVal(cell, 'rowSpan'); + + if (rowSpan > 1) { + setSpanVal(cell, 'rowSpan', rowSpan - 1); + pos = getPos(cell); + fillLeftDown(pos.x, pos.y, 1, 1); + } + }); + + // Delete cells + pos = getPos(tr.cells[0]); + each(grid[pos.y], function(cell) { + var rowSpan; + + cell = cell.elm; + + if (cell != lastCell) { + rowSpan = getSpanVal(cell, 'rowSpan'); + + if (rowSpan <= 1) + dom.remove(cell); + else + setSpanVal(cell, 'rowSpan', rowSpan - 1); + + lastCell = cell; + } + }); + }; + + // Get selected rows and move selection out of scope + rows = getSelectedRows(); + + // Delete all selected rows + each(rows.reverse(), function(tr) { + deleteRow(tr); + }); + + cleanup(); + }; + + function cutRows() { + var rows = getSelectedRows(); + + dom.remove(rows); + cleanup(); + + return rows; + }; + + function copyRows() { + var rows = getSelectedRows(); + + each(rows, function(row, i) { + rows[i] = cloneNode(row, true); + }); + + return rows; + }; + + function pasteRows(rows, before) { + var selectedRows = getSelectedRows(), + targetRow = selectedRows[before ? 0 : selectedRows.length - 1], + targetCellCount = targetRow.cells.length; + + // Calc target cell count + each(grid, function(row) { + var match; + + targetCellCount = 0; + each(row, function(cell, x) { + if (cell.real) + targetCellCount += cell.colspan; + + if (cell.elm.parentNode == targetRow) + match = 1; + }); + + if (match) + return false; + }); + + if (!before) + rows.reverse(); + + each(rows, function(row) { + var cellCount = row.cells.length, cell; + + // Remove col/rowspans + for (i = 0; i < cellCount; i++) { + cell = row.cells[i]; + setSpanVal(cell, 'colSpan', 1); + setSpanVal(cell, 'rowSpan', 1); + } + + // Needs more cells + for (i = cellCount; i < targetCellCount; i++) + row.appendChild(cloneCell(row.cells[cellCount - 1])); + + // Needs less cells + for (i = targetCellCount; i < cellCount; i++) + dom.remove(row.cells[i]); + + // Add before/after + if (before) + targetRow.parentNode.insertBefore(row, targetRow); + else + dom.insertAfter(row, targetRow); + }); + }; + + function getPos(target) { + var pos; + + each(grid, function(row, y) { + each(row, function(cell, x) { + if (cell.elm == target) { + pos = {x : x, y : y}; + return false; + } + }); + + return !pos; + }); + + return pos; + }; + + function setStartCell(cell) { + startPos = getPos(cell); + }; + + function findEndPos() { + var pos, maxX, maxY; + + maxX = maxY = 0; + + each(grid, function(row, y) { + each(row, function(cell, x) { + var colSpan, rowSpan; + + if (isCellSelected(cell)) { + cell = grid[y][x]; + + if (x > maxX) + maxX = x; + + if (y > maxY) + maxY = y; + + if (cell.real) { + colSpan = cell.colspan - 1; + rowSpan = cell.rowspan - 1; + + if (colSpan) { + if (x + colSpan > maxX) + maxX = x + colSpan; + } + + if (rowSpan) { + if (y + rowSpan > maxY) + maxY = y + rowSpan; + } + } + } + }); + }); + + return {x : maxX, y : maxY}; + }; + + function setEndCell(cell) { + var startX, startY, endX, endY, maxX, maxY, colSpan, rowSpan; + + endPos = getPos(cell); + + if (startPos && endPos) { + // Get start/end positions + startX = Math.min(startPos.x, endPos.x); + startY = Math.min(startPos.y, endPos.y); + endX = Math.max(startPos.x, endPos.x); + endY = Math.max(startPos.y, endPos.y); + + // Expand end positon to include spans + maxX = endX; + maxY = endY; + + // Expand startX + for (y = startY; y <= maxY; y++) { + cell = grid[y][startX]; + + if (!cell.real) { + if (startX - (cell.colspan - 1) < startX) + startX -= cell.colspan - 1; + } + } + + // Expand startY + for (x = startX; x <= maxX; x++) { + cell = grid[startY][x]; + + if (!cell.real) { + if (startY - (cell.rowspan - 1) < startY) + startY -= cell.rowspan - 1; + } + } + + // Find max X, Y + for (y = startY; y <= endY; y++) { + for (x = startX; x <= endX; x++) { + cell = grid[y][x]; + + if (cell.real) { + colSpan = cell.colspan - 1; + rowSpan = cell.rowspan - 1; + + if (colSpan) { + if (x + colSpan > maxX) + maxX = x + colSpan; + } + + if (rowSpan) { + if (y + rowSpan > maxY) + maxY = y + rowSpan; + } + } + } + } + + // Remove current selection + dom.removeClass(dom.select('td.mceSelected,th.mceSelected'), 'mceSelected'); + + // Add new selection + for (y = startY; y <= maxY; y++) { + for (x = startX; x <= maxX; x++) { + if (grid[y][x]) + dom.addClass(grid[y][x].elm, 'mceSelected'); + } + } + } + }; + + // Expose to public + tinymce.extend(this, { + deleteTable : deleteTable, + split : split, + merge : merge, + insertRow : insertRow, + insertCol : insertCol, + deleteCols : deleteCols, + deleteRows : deleteRows, + cutRows : cutRows, + copyRows : copyRows, + pasteRows : pasteRows, + getPos : getPos, + setStartCell : setStartCell, + setEndCell : setEndCell + }); + }; + + tinymce.create('tinymce.plugins.TablePlugin', { + init : function(ed, url) { + var winMan, clipboardRows; + + function createTableGrid(node) { + var selection = ed.selection, tblElm = ed.dom.getParent(node || selection.getNode(), 'table'); + + if (tblElm) + return new TableGrid(tblElm, ed.dom, selection); + }; + + function cleanup() { + // Restore selection possibilities + ed.getBody().style.webkitUserSelect = ''; + ed.dom.removeClass(ed.dom.select('td.mceSelected,th.mceSelected'), 'mceSelected'); + }; + + // Register buttons + each([ + ['table', 'table.desc', 'mceInsertTable', true], + ['delete_table', 'table.del', 'mceTableDelete'], + ['delete_col', 'table.delete_col_desc', 'mceTableDeleteCol'], + ['delete_row', 'table.delete_row_desc', 'mceTableDeleteRow'], + ['col_after', 'table.col_after_desc', 'mceTableInsertColAfter'], + ['col_before', 'table.col_before_desc', 'mceTableInsertColBefore'], + ['row_after', 'table.row_after_desc', 'mceTableInsertRowAfter'], + ['row_before', 'table.row_before_desc', 'mceTableInsertRowBefore'], + ['row_props', 'table.row_desc', 'mceTableRowProps', true], + ['cell_props', 'table.cell_desc', 'mceTableCellProps', true], + ['split_cells', 'table.split_cells_desc', 'mceTableSplitCells', true], + ['merge_cells', 'table.merge_cells_desc', 'mceTableMergeCells', true] + ], function(c) { + ed.addButton(c[0], {title : c[1], cmd : c[2], ui : c[3]}); + }); + + // Select whole table is a table border is clicked + if (!tinymce.isIE) { + ed.onClick.add(function(ed, e) { + e = e.target; + + if (e.nodeName === 'TABLE') { + ed.selection.select(e); + ed.nodeChanged(); + } + }); + } + + ed.onPreProcess.add(function(ed, args) { + var nodes, i, node, dom = ed.dom, value; + + nodes = dom.select('table', args.node); + i = nodes.length; + while (i--) { + node = nodes[i]; + dom.setAttrib(node, 'data-mce-style', ''); + + if ((value = dom.getAttrib(node, 'width'))) { + dom.setStyle(node, 'width', value); + dom.setAttrib(node, 'width', ''); + } + + if ((value = dom.getAttrib(node, 'height'))) { + dom.setStyle(node, 'height', value); + dom.setAttrib(node, 'height', ''); + } + } + }); + + // Handle node change updates + ed.onNodeChange.add(function(ed, cm, n) { + var p; + + n = ed.selection.getStart(); + p = ed.dom.getParent(n, 'td,th,caption'); + cm.setActive('table', n.nodeName === 'TABLE' || !!p); + + // Disable table tools if we are in caption + if (p && p.nodeName === 'CAPTION') + p = 0; + + cm.setDisabled('delete_table', !p); + cm.setDisabled('delete_col', !p); + cm.setDisabled('delete_table', !p); + cm.setDisabled('delete_row', !p); + cm.setDisabled('col_after', !p); + cm.setDisabled('col_before', !p); + cm.setDisabled('row_after', !p); + cm.setDisabled('row_before', !p); + cm.setDisabled('row_props', !p); + cm.setDisabled('cell_props', !p); + cm.setDisabled('split_cells', !p); + cm.setDisabled('merge_cells', !p); + }); + + ed.onInit.add(function(ed) { + var startTable, startCell, dom = ed.dom, tableGrid; + + winMan = ed.windowManager; + + // Add cell selection logic + ed.onMouseDown.add(function(ed, e) { + if (e.button != 2) { + cleanup(); + + startCell = dom.getParent(e.target, 'td,th'); + startTable = dom.getParent(startCell, 'table'); + } + }); + + dom.bind(ed.getDoc(), 'mouseover', function(e) { + var sel, table, target = e.target; + + if (startCell && (tableGrid || target != startCell) && (target.nodeName == 'TD' || target.nodeName == 'TH')) { + table = dom.getParent(target, 'table'); + if (table == startTable) { + if (!tableGrid) { + tableGrid = createTableGrid(table); + tableGrid.setStartCell(startCell); + + ed.getBody().style.webkitUserSelect = 'none'; + } + + tableGrid.setEndCell(target); + } + + // Remove current selection + sel = ed.selection.getSel(); + + try { + if (sel.removeAllRanges) + sel.removeAllRanges(); + else + sel.empty(); + } catch (ex) { + // IE9 might throw errors here + } + + e.preventDefault(); + } + }); + + ed.onMouseUp.add(function(ed, e) { + var rng, sel = ed.selection, selectedCells, nativeSel = sel.getSel(), walker, node, lastNode, endNode; + + // Move selection to startCell + if (startCell) { + if (tableGrid) + ed.getBody().style.webkitUserSelect = ''; + + function setPoint(node, start) { + var walker = new tinymce.dom.TreeWalker(node, node); + + do { + // Text node + if (node.nodeType == 3 && tinymce.trim(node.nodeValue).length != 0) { + if (start) + rng.setStart(node, 0); + else + rng.setEnd(node, node.nodeValue.length); + + return; + } + + // BR element + if (node.nodeName == 'BR') { + if (start) + rng.setStartBefore(node); + else + rng.setEndBefore(node); + + return; + } + } while (node = (start ? walker.next() : walker.prev())); + }; + + // Try to expand text selection as much as we can only Gecko supports cell selection + selectedCells = dom.select('td.mceSelected,th.mceSelected'); + if (selectedCells.length > 0) { + rng = dom.createRng(); + node = selectedCells[0]; + endNode = selectedCells[selectedCells.length - 1]; + + setPoint(node, 1); + walker = new tinymce.dom.TreeWalker(node, dom.getParent(selectedCells[0], 'table')); + + do { + if (node.nodeName == 'TD' || node.nodeName == 'TH') { + if (!dom.hasClass(node, 'mceSelected')) + break; + + lastNode = node; + } + } while (node = walker.next()); + + setPoint(lastNode); + + sel.setRng(rng); + } + + ed.nodeChanged(); + startCell = tableGrid = startTable = null; + } + }); + + ed.onKeyUp.add(function(ed, e) { + cleanup(); + }); + + // Add context menu + if (ed && ed.plugins.contextmenu) { + ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) { + var sm, se = ed.selection, el = se.getNode() || ed.getBody(); + + if (ed.dom.getParent(e, 'td') || ed.dom.getParent(e, 'th') || ed.dom.select('td.mceSelected,th.mceSelected').length) { + m.removeAll(); + + if (el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) { + m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true}); + m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'}); + m.addSeparator(); + } + + if (el.nodeName == 'IMG' && el.className.indexOf('mceItem') == -1) { + m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true}); + m.addSeparator(); + } + + m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', value : {action : 'insert'}}); + m.add({title : 'table.props_desc', icon : 'table_props', cmd : 'mceInsertTable'}); + m.add({title : 'table.del', icon : 'delete_table', cmd : 'mceTableDelete'}); + m.addSeparator(); + + // Cell menu + sm = m.addMenu({title : 'table.cell'}); + sm.add({title : 'table.cell_desc', icon : 'cell_props', cmd : 'mceTableCellProps'}); + sm.add({title : 'table.split_cells_desc', icon : 'split_cells', cmd : 'mceTableSplitCells'}); + sm.add({title : 'table.merge_cells_desc', icon : 'merge_cells', cmd : 'mceTableMergeCells'}); + + // Row menu + sm = m.addMenu({title : 'table.row'}); + sm.add({title : 'table.row_desc', icon : 'row_props', cmd : 'mceTableRowProps'}); + sm.add({title : 'table.row_before_desc', icon : 'row_before', cmd : 'mceTableInsertRowBefore'}); + sm.add({title : 'table.row_after_desc', icon : 'row_after', cmd : 'mceTableInsertRowAfter'}); + sm.add({title : 'table.delete_row_desc', icon : 'delete_row', cmd : 'mceTableDeleteRow'}); + sm.addSeparator(); + sm.add({title : 'table.cut_row_desc', icon : 'cut', cmd : 'mceTableCutRow'}); + sm.add({title : 'table.copy_row_desc', icon : 'copy', cmd : 'mceTableCopyRow'}); + sm.add({title : 'table.paste_row_before_desc', icon : 'paste', cmd : 'mceTablePasteRowBefore'}).setDisabled(!clipboardRows); + sm.add({title : 'table.paste_row_after_desc', icon : 'paste', cmd : 'mceTablePasteRowAfter'}).setDisabled(!clipboardRows); + + // Column menu + sm = m.addMenu({title : 'table.col'}); + sm.add({title : 'table.col_before_desc', icon : 'col_before', cmd : 'mceTableInsertColBefore'}); + sm.add({title : 'table.col_after_desc', icon : 'col_after', cmd : 'mceTableInsertColAfter'}); + sm.add({title : 'table.delete_col_desc', icon : 'delete_col', cmd : 'mceTableDeleteCol'}); + } else + m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable'}); + }); + } + + // Fixes an issue on Gecko where it's impossible to place the caret behind a table + // This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled + if (!tinymce.isIE) { + function fixTableCaretPos() { + var last; + + // Skip empty text nodes form the end + for (last = ed.getBody().lastChild; last && last.nodeType == 3 && !last.nodeValue.length; last = last.previousSibling) ; + + if (last && last.nodeName == 'TABLE') + ed.dom.add(ed.getBody(), 'p', null, '
                    '); + }; + + // Fixes an bug where it's impossible to place the caret before a table in Gecko + // this fix solves it by detecting when the caret is at the beginning of such a table + // and then manually moves the caret infront of the table + if (tinymce.isGecko) { + ed.onKeyDown.add(function(ed, e) { + var rng, table, dom = ed.dom; + + // On gecko it's not possible to place the caret before a table + if (e.keyCode == 37 || e.keyCode == 38) { + rng = ed.selection.getRng(); + table = dom.getParent(rng.startContainer, 'table'); + + if (table && ed.getBody().firstChild == table) { + if (isAtStart(rng, table)) { + rng = dom.createRng(); + + rng.setStartBefore(table); + rng.setEndBefore(table); + + ed.selection.setRng(rng); + + e.preventDefault(); + } + } + } + }); + } + + ed.onKeyUp.add(fixTableCaretPos); + ed.onSetContent.add(fixTableCaretPos); + ed.onVisualAid.add(fixTableCaretPos); + + ed.onPreProcess.add(function(ed, o) { + var last = o.node.lastChild; + + if (last && last.childNodes.length == 1 && last.firstChild.nodeName == 'BR') + ed.dom.remove(last); + }); + + fixTableCaretPos(); + } + }); + + // Register action commands + each({ + mceTableSplitCells : function(grid) { + grid.split(); + }, + + mceTableMergeCells : function(grid) { + var rowSpan, colSpan, cell; + + cell = ed.dom.getParent(ed.selection.getNode(), 'th,td'); + if (cell) { + rowSpan = cell.rowSpan; + colSpan = cell.colSpan; + } + + if (!ed.dom.select('td.mceSelected,th.mceSelected').length) { + winMan.open({ + url : url + '/merge_cells.htm', + width : 240 + parseInt(ed.getLang('table.merge_cells_delta_width', 0)), + height : 110 + parseInt(ed.getLang('table.merge_cells_delta_height', 0)), + inline : 1 + }, { + rows : rowSpan, + cols : colSpan, + onaction : function(data) { + grid.merge(cell, data.cols, data.rows); + }, + plugin_url : url + }); + } else + grid.merge(); + }, + + mceTableInsertRowBefore : function(grid) { + grid.insertRow(true); + }, + + mceTableInsertRowAfter : function(grid) { + grid.insertRow(); + }, + + mceTableInsertColBefore : function(grid) { + grid.insertCol(true); + }, + + mceTableInsertColAfter : function(grid) { + grid.insertCol(); + }, + + mceTableDeleteCol : function(grid) { + grid.deleteCols(); + }, + + mceTableDeleteRow : function(grid) { + grid.deleteRows(); + }, + + mceTableCutRow : function(grid) { + clipboardRows = grid.cutRows(); + }, + + mceTableCopyRow : function(grid) { + clipboardRows = grid.copyRows(); + }, + + mceTablePasteRowBefore : function(grid) { + grid.pasteRows(clipboardRows, true); + }, + + mceTablePasteRowAfter : function(grid) { + grid.pasteRows(clipboardRows); + }, + + mceTableDelete : function(grid) { + grid.deleteTable(); + } + }, function(func, name) { + ed.addCommand(name, function() { + var grid = createTableGrid(); + + if (grid) { + func(grid); + ed.execCommand('mceRepaint'); + cleanup(); + } + }); + }); + + // Register dialog commands + each({ + mceInsertTable : function(val) { + winMan.open({ + url : url + '/table.htm', + width : 400 + parseInt(ed.getLang('table.table_delta_width', 0)), + height : 320 + parseInt(ed.getLang('table.table_delta_height', 0)), + inline : 1 + }, { + plugin_url : url, + action : val ? val.action : 0 + }); + }, + + mceTableRowProps : function() { + winMan.open({ + url : url + '/row.htm', + width : 400 + parseInt(ed.getLang('table.rowprops_delta_width', 0)), + height : 295 + parseInt(ed.getLang('table.rowprops_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }, + + mceTableCellProps : function() { + winMan.open({ + url : url + '/cell.htm', + width : 400 + parseInt(ed.getLang('table.cellprops_delta_width', 0)), + height : 295 + parseInt(ed.getLang('table.cellprops_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + } + }, function(func, name) { + ed.addCommand(name, function(ui, val) { + func(val); + }); + }); + } + }); + + // Register plugin + tinymce.PluginManager.add('table', tinymce.plugins.TablePlugin); +})(tinymce); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js new file mode 100644 index 0000000..45e6061 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js @@ -0,0 +1,284 @@ +tinyMCEPopup.requireLangPack(); + +var ed; + +function init() { + ed = tinyMCEPopup.editor; + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor') + + var inst = ed; + var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th"); + var formObj = document.forms[0]; + var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style")); + + // Get table cell data + var celltype = tdElm.nodeName.toLowerCase(); + var align = ed.dom.getAttrib(tdElm, 'align'); + var valign = ed.dom.getAttrib(tdElm, 'valign'); + var width = trimSize(getStyle(tdElm, 'width', 'width')); + var height = trimSize(getStyle(tdElm, 'height', 'height')); + var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor')); + var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor')); + var className = ed.dom.getAttrib(tdElm, 'class'); + var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); + var id = ed.dom.getAttrib(tdElm, 'id'); + var lang = ed.dom.getAttrib(tdElm, 'lang'); + var dir = ed.dom.getAttrib(tdElm, 'dir'); + var scope = ed.dom.getAttrib(tdElm, 'scope'); + + // Setup form + addClassesToList('class', 'table_cell_styles'); + TinyMCE_EditableSelects.init(); + + if (!ed.dom.hasClass(tdElm, 'mceSelected')) { + formObj.bordercolor.value = bordercolor; + formObj.bgcolor.value = bgcolor; + formObj.backgroundimage.value = backgroundimage; + formObj.width.value = width; + formObj.height.value = height; + formObj.id.value = id; + formObj.lang.value = lang; + formObj.style.value = ed.dom.serializeStyle(st); + selectByValue(formObj, 'align', align); + selectByValue(formObj, 'valign', valign); + selectByValue(formObj, 'class', className, true, true); + selectByValue(formObj, 'celltype', celltype); + selectByValue(formObj, 'dir', dir); + selectByValue(formObj, 'scope', scope); + + // Resize some elements + if (isVisible('backgroundimagebrowser')) + document.getElementById('backgroundimage').style.width = '180px'; + + updateColor('bordercolor_pick', 'bordercolor'); + updateColor('bgcolor_pick', 'bgcolor'); + } else + tinyMCEPopup.dom.hide('action'); +} + +function updateAction() { + var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0]; + + tinyMCEPopup.restoreSelection(); + el = ed.selection.getStart(); + tdElm = ed.dom.getParent(el, "td,th"); + trElm = ed.dom.getParent(el, "tr"); + tableElm = ed.dom.getParent(el, "table"); + + // Cell is selected + if (ed.dom.hasClass(tdElm, 'mceSelected')) { + // Update all selected sells + tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) { + updateCell(td); + }); + + ed.addVisual(); + ed.nodeChanged(); + inst.execCommand('mceEndUndoLevel'); + tinyMCEPopup.close(); + return; + } + + switch (getSelectValue(formObj, 'action')) { + case "cell": + var celltype = getSelectValue(formObj, 'celltype'); + var scope = getSelectValue(formObj, 'scope'); + + function doUpdate(s) { + if (s) { + updateCell(tdElm); + + ed.addVisual(); + ed.nodeChanged(); + inst.execCommand('mceEndUndoLevel'); + tinyMCEPopup.close(); + } + }; + + if (ed.getParam("accessibility_warnings", 1)) { + if (celltype == "th" && scope == "") + tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate); + else + doUpdate(1); + + return; + } + + updateCell(tdElm); + break; + + case "row": + var cell = trElm.firstChild; + + if (cell.nodeName != "TD" && cell.nodeName != "TH") + cell = nextCell(cell); + + do { + cell = updateCell(cell, true); + } while ((cell = nextCell(cell)) != null); + + break; + + case "all": + var rows = tableElm.getElementsByTagName("tr"); + + for (var i=0; i 0) { + tinymce.each(tableElm.rows, function(tr) { + var i; + + for (i = 0; i < tr.cells.length; i++) { + if (dom.hasClass(tr.cells[i], 'mceSelected')) { + updateRow(tr, true); + return; + } + } + }); + + inst.addVisual(); + inst.nodeChanged(); + inst.execCommand('mceEndUndoLevel'); + tinyMCEPopup.close(); + return; + } + + switch (action) { + case "row": + updateRow(trElm); + break; + + case "all": + var rows = tableElm.getElementsByTagName("tr"); + + for (var i=0; i colLimit) { + tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit)); + return false; + } else if (rowLimit && rows > rowLimit) { + tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit)); + return false; + } else if (cellLimit && cols * rows > cellLimit) { + tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit)); + return false; + } + + // Update table + if (action == "update") { + dom.setAttrib(elm, 'cellPadding', cellpadding, true); + dom.setAttrib(elm, 'cellSpacing', cellspacing, true); + dom.setAttrib(elm, 'border', border); + dom.setAttrib(elm, 'align', align); + dom.setAttrib(elm, 'frame', frame); + dom.setAttrib(elm, 'rules', rules); + dom.setAttrib(elm, 'class', className); + dom.setAttrib(elm, 'style', style); + dom.setAttrib(elm, 'id', id); + dom.setAttrib(elm, 'summary', summary); + dom.setAttrib(elm, 'dir', dir); + dom.setAttrib(elm, 'lang', lang); + + capEl = inst.dom.select('caption', elm)[0]; + + if (capEl && !caption) + capEl.parentNode.removeChild(capEl); + + if (!capEl && caption) { + capEl = elm.ownerDocument.createElement('caption'); + + if (!tinymce.isIE) + capEl.innerHTML = '
                    '; + + elm.insertBefore(capEl, elm.firstChild); + } + + if (width && inst.settings.inline_styles) { + dom.setStyle(elm, 'width', width); + dom.setAttrib(elm, 'width', ''); + } else { + dom.setAttrib(elm, 'width', width, true); + dom.setStyle(elm, 'width', ''); + } + + // Remove these since they are not valid XHTML + dom.setAttrib(elm, 'borderColor', ''); + dom.setAttrib(elm, 'bgColor', ''); + dom.setAttrib(elm, 'background', ''); + + if (height && inst.settings.inline_styles) { + dom.setStyle(elm, 'height', height); + dom.setAttrib(elm, 'height', ''); + } else { + dom.setAttrib(elm, 'height', height, true); + dom.setStyle(elm, 'height', ''); + } + + if (background != '') + elm.style.backgroundImage = "url('" + background + "')"; + else + elm.style.backgroundImage = ''; + +/* if (tinyMCEPopup.getParam("inline_styles")) { + if (width != '') + elm.style.width = getCSSSize(width); + }*/ + + if (bordercolor != "") { + elm.style.borderColor = bordercolor; + elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle; + elm.style.borderWidth = border == "" ? "1px" : border; + } else + elm.style.borderColor = ''; + + elm.style.backgroundColor = bgcolor; + elm.style.height = getCSSSize(height); + + inst.addVisual(); + + // Fix for stange MSIE align bug + //elm.outerHTML = elm.outerHTML; + + inst.nodeChanged(); + inst.execCommand('mceEndUndoLevel'); + + // Repaint if dimensions changed + if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight) + inst.execCommand('mceRepaint'); + + tinyMCEPopup.close(); + return true; + } + + // Create new table + html += ''); + + tinymce.each('h1,h2,h3,h4,h5,h6,p'.split(','), function(n) { + if (patt) + patt += ','; + + patt += n + ' ._mce_marker'; + }); + + tinymce.each(inst.dom.select(patt), function(n) { + inst.dom.split(inst.dom.getParent(n, 'h1,h2,h3,h4,h5,h6,p'), n); + }); + + dom.setOuterHTML(dom.select('br._mce_marker')[0], html); + } else + inst.execCommand('mceInsertContent', false, html); + + tinymce.each(dom.select('table[data-mce-new]'), function(node) { + var td = dom.select('td', node); + + try { + // IE9 might fail to do this selection + inst.selection.select(td[0], true); + inst.selection.collapse(); + } catch (ex) { + // Ignore + } + + dom.setAttrib(node, 'data-mce-new', ''); + }); + + inst.addVisual(); + inst.execCommand('mceEndUndoLevel'); + + tinyMCEPopup.close(); +} + +function makeAttrib(attrib, value) { + var formObj = document.forms[0]; + var valueElm = formObj.elements[attrib]; + + if (typeof(value) == "undefined" || value == null) { + value = ""; + + if (valueElm) + value = valueElm.value; + } + + if (value == "") + return ""; + + // XML encode it + value = value.replace(/&/g, '&'); + value = value.replace(/\"/g, '"'); + value = value.replace(//g, '>'); + + return ' ' + attrib + '="' + value + '"'; +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); + + var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', ''); + var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = ""; + var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules = "", frame = ""; + var inst = tinyMCEPopup.editor, dom = inst.dom; + var formObj = document.forms[0]; + var elm = dom.getParent(inst.selection.getNode(), "table"); + + action = tinyMCEPopup.getWindowArg('action'); + + if (!action) + action = elm ? "update" : "insert"; + + if (elm && action != "insert") { + var rowsAr = elm.rows; + var cols = 0; + for (var i=0; i cols) + cols = rowsAr[i].cells.length; + + cols = cols; + rows = rowsAr.length; + + st = dom.parseStyle(dom.getAttrib(elm, "style")); + border = trimSize(getStyle(elm, 'border', 'borderWidth')); + cellpadding = dom.getAttrib(elm, 'cellpadding', ""); + cellspacing = dom.getAttrib(elm, 'cellspacing', ""); + width = trimSize(getStyle(elm, 'width', 'width')); + height = trimSize(getStyle(elm, 'height', 'height')); + bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor')); + bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor')); + align = dom.getAttrib(elm, 'align', align); + frame = dom.getAttrib(elm, 'frame'); + rules = dom.getAttrib(elm, 'rules'); + className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, '')); + id = dom.getAttrib(elm, 'id'); + summary = dom.getAttrib(elm, 'summary'); + style = dom.serializeStyle(st); + dir = dom.getAttrib(elm, 'dir'); + lang = dom.getAttrib(elm, 'lang'); + background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); + formObj.caption.checked = elm.getElementsByTagName('caption').length > 0; + + orgTableWidth = width; + orgTableHeight = height; + + action = "update"; + formObj.insert.value = inst.getLang('update'); + } + + addClassesToList('class', "table_styles"); + TinyMCE_EditableSelects.init(); + + // Update form + selectByValue(formObj, 'align', align); + selectByValue(formObj, 'tframe', frame); + selectByValue(formObj, 'rules', rules); + selectByValue(formObj, 'class', className, true, true); + formObj.cols.value = cols; + formObj.rows.value = rows; + formObj.border.value = border; + formObj.cellpadding.value = cellpadding; + formObj.cellspacing.value = cellspacing; + formObj.width.value = width; + formObj.height.value = height; + formObj.bordercolor.value = bordercolor; + formObj.bgcolor.value = bgcolor; + formObj.id.value = id; + formObj.summary.value = summary; + formObj.style.value = style; + formObj.dir.value = dir; + formObj.lang.value = lang; + formObj.backgroundimage.value = background; + + updateColor('bordercolor_pick', 'bordercolor'); + updateColor('bgcolor_pick', 'bgcolor'); + + // Resize some elements + if (isVisible('backgroundimagebrowser')) + document.getElementById('backgroundimage').style.width = '180px'; + + // Disable some fields in update mode + if (action == "update") { + formObj.cols.disabled = true; + formObj.rows.disabled = true; + } +} + +function changedSize() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + +/* var width = formObj.width.value; + if (width != "") + st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : ""; + else + st['width'] = "";*/ + + var height = formObj.height.value; + if (height != "") + st['height'] = getCSSSize(height); + else + st['height'] = ""; + + formObj.style.value = dom.serializeStyle(st); +} + +function changedBackgroundImage() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + st['background-image'] = "url('" + formObj.backgroundimage.value + "')"; + + formObj.style.value = dom.serializeStyle(st); +} + +function changedBorder() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + // Update border width if the element has a color + if (formObj.border.value != "" && formObj.bordercolor.value != "") + st['border-width'] = formObj.border.value + "px"; + + formObj.style.value = dom.serializeStyle(st); +} + +function changedColor() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + st['background-color'] = formObj.bgcolor.value; + + if (formObj.bordercolor.value != "") { + st['border-color'] = formObj.bordercolor.value; + + // Add border-width if it's missing + if (!st['border-width']) + st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px"; + } + + formObj.style.value = dom.serializeStyle(st); +} + +function changedStyle() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + if (st['background-image']) + formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); + else + formObj.backgroundimage.value = ''; + + if (st['width']) + formObj.width.value = trimSize(st['width']); + + if (st['height']) + formObj.height.value = trimSize(st['height']); + + if (st['background-color']) { + formObj.bgcolor.value = st['background-color']; + updateColor('bgcolor_pick','bgcolor'); + } + + if (st['border-color']) { + formObj.bordercolor.value = st['border-color']; + updateColor('bordercolor_pick','bordercolor'); + } +} + +tinyMCEPopup.onInit.add(init); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/de_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/de_dlg.js new file mode 100644 index 0000000..850ffc9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/de_dlg.js @@ -0,0 +1,74 @@ +tinyMCE.addI18n('de.table_dlg',{ +general_tab:"Allgemein", +advanced_tab:"Erweitert", +general_props:"Allgemeine Einstellungen", +advanced_props:"Erweiterte Einstellungen", +rowtype:"Gruppierung", +title:"Tabelle einf\u00FCgen/bearbeiten", +width:"Breite", +height:"H\u00F6he", +cols:"Spalten", +rows:"Zeilen", +cellspacing:"Zellenabstand", +cellpadding:"Abstand innerhalb der Zellen", +border:"Rahmen", +align:"Ausrichtung", +align_default:"Standard", +align_left:"Links", +align_right:"Rechts", +align_middle:"Mittig", +row_title:"Eigenschaften der Zeile", +cell_title:"Eigenschaften der Zelle", +cell_type:"Zellentyp", +valign:"Vertikale Ausrichtung", +align_top:"Oben", +align_bottom:"Unten", +bordercolor:"Rahmenfarbe", +bgcolor:"Hintergrundfarbe", +merge_cells_title:"Zellen vereinen", +id:"ID", +style:"Format", +langdir:"Schriftrichtung", +langcode:"Sprachcode", +mime:"MIME-Type des Inhalts", +ltr:"Links nach rechts", +rtl:"Rechts nach links", +bgimage:"Hintergrundbild", +summary:"Zusammenfassung", +td:"Textzelle", +th:"\u00DCberschrift", +cell_cell:"Diese Zelle ver\u00E4ndern", +cell_row:"Alle Zellen in dieser Zeile ver\u00E4ndern", +cell_all:"Alle Zellen der Tabelle ver\u00E4ndern", +row_row:"Diese Zeile ver\u00E4ndern", +row_odd:"Ungerade Zeilen ver\u00E4ndern", +row_even:"Gerade Zeilen ver\u00E4ndern", +row_all:"Alle Zeilen ver\u00E4ndern", +thead:"Tabellenkopf", +tbody:"Tabelleninhalt", +tfoot:"Tabellenfu\u00DF", +scope:"Bezug", +rowgroup:"Vertikal gruppieren", +colgroup:"Horizontal gruppieren", +col_limit:"Sie haben die maximale Spaltenzahl von {$cols} \u00FCberschritten.", +row_limit:"Sie haben die maximale Zeilenzahl von {$rows} \u00FCberschritten.", +cell_limit:"Sie haben die maximale Zellenzahl von {$cells} \u00FCberschritten.", +missing_scope:"Wollen Sie wirklich keine Beziehung f\u00FCr diese \u00DCberschrift angeben? Benutzer mit k\u00F6rperlichen Einschr\u00E4nkungen k\u00F6nnten Schwierigkeiten haben, den Inhalt der Tabelle zu verstehen.", +caption:"Beschriftung der Tabelle", +frame:"Rahmen", +frame_none:"keine", +frame_groups:"zwischen Gruppen", +frame_rows:"zwischen Zeilen", +frame_cols:"zwischen Spalten", +frame_all:"zwischen allen Zellen", +rules:"Gitter", +rules_void:"keins", +rules_above:"nur oben", +rules_below:"nur unten", +rules_hsides:"oben und unten", +rules_lhs:"nur links", +rules_rhs:"nur rechts", +rules_vsides:"links und rechts", +rules_box:"alle 4 Seiten (Box)", +rules_border:"alle 4 Seiten (Border)" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js new file mode 100644 index 0000000..8352d9f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js @@ -0,0 +1,74 @@ +tinyMCE.addI18n('en.table_dlg',{ +general_tab:"General", +advanced_tab:"Advanced", +general_props:"General properties", +advanced_props:"Advanced properties", +rowtype:"Row in table part", +title:"Insert/Modify table", +width:"Width", +height:"Height", +cols:"Columns", +rows:"Rows", +cellspacing:"Cellspacing", +cellpadding:"Cellpadding", +border:"Border", +align:"Alignment", +align_default:"Default", +align_left:"Left", +align_right:"Right", +align_middle:"Center", +row_title:"Table row properties", +cell_title:"Table cell properties", +cell_type:"Cell type", +valign:"Vertical alignment", +align_top:"Top", +align_bottom:"Bottom", +bordercolor:"Border color", +bgcolor:"Background color", +merge_cells_title:"Merge table cells", +id:"Id", +style:"Style", +langdir:"Language direction", +langcode:"Language code", +mime:"Target MIME type", +ltr:"Left to right", +rtl:"Right to left", +bgimage:"Background image", +summary:"Summary", +td:"Data", +th:"Header", +cell_cell:"Update current cell", +cell_row:"Update all cells in row", +cell_all:"Update all cells in table", +row_row:"Update current row", +row_odd:"Update odd rows in table", +row_even:"Update even rows in table", +row_all:"Update all rows in table", +thead:"Table Head", +tbody:"Table Body", +tfoot:"Table Foot", +scope:"Scope", +rowgroup:"Row Group", +colgroup:"Col Group", +col_limit:"You've exceeded the maximum number of columns of {$cols}.", +row_limit:"You've exceeded the maximum number of rows of {$rows}.", +cell_limit:"You've exceeded the maximum number of cells of {$cells}.", +missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.", +caption:"Table caption", +frame:"Frame", +frame_none:"none", +frame_groups:"groups", +frame_rows:"rows", +frame_cols:"cols", +frame_all:"all", +rules:"Rules", +rules_void:"void", +rules_above:"above", +rules_below:"below", +rules_hsides:"hsides", +rules_lhs:"lhs", +rules_rhs:"rhs", +rules_vsides:"vsides", +rules_box:"box", +rules_border:"border" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/eo_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/eo_dlg.js new file mode 100644 index 0000000..b493155 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/eo_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.table_dlg',{"rules_border":"Bordero","rules_box":"Skatolo","rules_vsides":"Vsides","rules_rhs":"Rhs","rules_lhs":"Lhs","rules_hsides":"Hsides","rules_below":"sube","rules_above":"supre","rules_void":"void",rules:"Reguloj","frame_all":"\u0108iuj","frame_cols":"Kolumnoj","frame_rows":"Linioj","frame_groups":"Grupoj","frame_none":"Neniu",frame:"Kadro",caption:"Titolo de la tabelo","missing_scope":"\u0108u vi certas ke vi volas da\u016drigi sen specifi amplekson por \u0109i tiu \u0109elo? (Tio povos ka\u016dzi malfacila\u0135on al handikapuloj)","cell_limit":"La maksimuma nombro da \u0109eloj {$cells} estis superita.","row_limit":"La maksimuma nombro da linioj {$rows} estis superita.","col_limit":"La maksimuma nombro da kolumnoj {$cols} estis superita.",colgroup:"Kolumnogrupo",rowgroup:"Linigrupo",scope:"Amplekso",tfoot:"Tabelpiedo",tbody:"Tabelkorpo",thead:"Tabelkapo","row_all":"\u011cisdatigi \u0109iujn liniojn","row_even":"\u011cisdatigi parajn liniojn","row_odd":"\u011cisdatigi neparajn liniojn","row_row":"\u011cisdatigi \u0109i tiun linion","cell_all":"\u011cisdatigi \u0109iujn \u0109elojn en la tabelo","cell_row":"\u011cisdatigi \u0109iujn \u0109elojn en la linio","cell_cell":"\u011cisdatigi \u0109i tiun \u0109elon",th:"Kampo",td:"Datumoj",summary:"Resumo",bgimage:"Fonbildo",rtl:"Dekstre-Maldekstren",ltr:"Maldekstre-Dekstren",mime:"Cela MIME",langcode:"Lingvokodo",langdir:"Tekstodirekto",style:"Stilo",id:"Id","merge_cells_title":"Unuigi \u0109elojn",bgcolor:"Fonkoloro",bordercolor:"Borderkoloro","align_bottom":"Sube","align_top":"Supre",valign:"Vert. liniigo","cell_type":"\u0108eltipo","cell_title":"Atributoj de \u0109eloj","row_title":"Atributoj de linioj","align_middle":"Meze","align_right":"Dekstre","align_left":"Maldekstre","align_default":"Defa\u016dlte",align:"Liniigo",border:"Bordero",cellpadding:"Ena kromspaco de \u0109elo",cellspacing:"Kromspaco de \u0109elo",rows:"Linioj",cols:"Kolumnoj",height:"Alteco",width:"Lar\u011deco",title:"Enmeti/redakti tabelon",rowtype:"Tabellinio","advanced_props":"Spertaj atributoj","general_props":"\u011ceneralaj atributoj","advanced_tab":"Sperta","general_tab":"\u011cenerala"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/es_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/es_dlg.js new file mode 100644 index 0000000..53786c4 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/es_dlg.js @@ -0,0 +1,74 @@ +tinyMCE.addI18n('es.table_dlg',{ +general_tab:"General", +advanced_tab:"Avanzado", +general_props:"Propiedades generales", +advanced_props:"Propiedades avanzadas", +rowtype:"Tipo de fila", +title:"Insertar/Modificar tabla", +width:"Ancho", +height:"Alto", +cols:"Cols", +rows:"Filas", +cellspacing:"Espaciado de celda", +cellpadding:"Relleno de celda", +border:"Borde", +align:"Alineaci\u00F3n", +align_default:"Predet.", +align_left:"Izquierda", +align_right:"Derecha", +align_middle:"Centrado", +row_title:"Propiedades de la fila", +cell_title:"Propiedades de la celda", +cell_type:"Tipo de celda", +valign:"Alineaci\u00F3n vertical", +align_top:"Arriba", +align_bottom:"Debajo", +bordercolor:"Color del borde", +bgcolor:"Color de fondo", +merge_cells_title:"Vincular celdas", +id:"Id", +style:"Estilo", +langdir:"Direcci\u00F3n del lenguaje", +langcode:"C\u00F3digo del lenguaje", +mime:"Tipo MIME", +ltr:"Izquierda a derecha", +rtl:"Derecha a izquierda", +bgimage:"Imagen de fondo", +summary:"Resumen", +td:"Datos", +th:"Encabezado", +cell_cell:"Actualizar celda actual", +cell_row:"Actualizar todas las celdas en la fila", +cell_all:"Actualizar todas las celdas en la tabla", +row_row:"Actualizar fila actual", +row_odd:"Actualizar filas impares", +row_even:"Actualizar filas pares", +row_all:"Actualizar todas las filas", +thead:"Encabezado de la tabla", +tbody:"Cuerpo de la tabla", +tfoot:"Pie de la tabla", +scope:"Alcance", +rowgroup:"Grupo de filas", +colgroup:"Grupo de columnas", +col_limit:"Ha superado el n\u00FAmero m\u00E1ximo de columnas: {$cols}.", +row_limit:"Ha superado el n\u00FAmero m\u00E1ximo de filas: {$rows}.", +cell_limit:"Ha superado el n\u00FAmero m\u00E1ximo de celdas: {$cells}.", +missing_scope:" \u00BFEst\u00E1 seguro que desea continuar sin especificar el alcance del encabezado de celda? Sin \u00E9l podr\u00EDa ser dificultoso para algunos usuarios entender el contenido o los datos mostrados en la tabla.", +caption:"Subt\u00EDtulo de la tabla", +frame:"Recuadro", +frame_none:"ninguno", +frame_groups:"grupos", +frame_rows:"filas", +frame_cols:"cols", +frame_all:"todos", +rules:"Reglas", +rules_void:"vac\u00EDo", +rules_above:"encima", +rules_below:"debajo", +rules_hsides:"hsides", +rules_lhs:"lhs", +rules_rhs:"rhs", +rules_vsides:"vsides", +rules_box:"box", +rules_border:"border" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/fr_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/fr_dlg.js new file mode 100644 index 0000000..01f68d8 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/fr_dlg.js @@ -0,0 +1,74 @@ +tinyMCE.addI18n('fr.table_dlg',{ +general_tab:"G\u00E9n\u00E9ral", +advanced_tab:"Avanc\u00E9", +general_props:"Propri\u00E9t\u00E9s g\u00E9n\u00E9rales", +advanced_props:"Propri\u00E9t\u00E9s avanc\u00E9es", +rowtype:"Type de ligne", +title:"Ins\u00E9rer/Modifier tableau", +width:"Largeur", +height:"Hauteur", +cols:"Colonnes", +rows:"Lignes", +cellspacing:"Espacement des cellules", +cellpadding:"Espacement dans les cellules", +border:"Bordure", +align:"Alignement", +align_default:"Par d\u00E9faut", +align_left:"Gauche", +align_right:"Droit", +align_middle:"Centr\u00E9", +row_title:"Propri\u00E9t\u00E9s de la ligne", +cell_title:"Propri\u00E9t\u00E9s de la cellule", +cell_type:"Type de cellule", +valign:"Alignement vertical", +align_top:"Haut", +align_bottom:"Bas", +bordercolor:"Couleur de la bordure", +bgcolor:"Couleur du fond", +merge_cells_title:"Fusionner les cellules", +id:"Id", +style:"Style", +langdir:"Sens de lecture", +langcode:"Code de la langue", +mime:"Type MIME de la cible", +ltr:"De gauche \u00E0 droite", +rtl:"de droite \u00E0 gauche", +bgimage:"Image de fond", +summary:"R\u00E9sum\u00E9", +td:"Donn\u00E9es", +th:"Titre", +cell_cell:"Mettre \u00E0 jour la cellule courante", +cell_row:"Mettre \u00E0 jour toutes les cellules de la ligne", +cell_all:"Mettre \u00E0 jour toutes les cellules du tableau", +row_row:"Mettre \u00E0 jour la ligne courante", +row_odd:"Mettre \u00E0 jour les lignes impaires", +row_even:"Mettre \u00E0 jour les lignes paires", +row_all:"Mettre \u00E0 jour toutes les lignes du tableau", +thead:"T\u00EAte de tableau", +tbody:"Corps de tableau", +tfoot:"Pied de tableau", +scope:"Port\u00E9e", +rowgroup:"Groupe de lignes", +colgroup:"Groupe de colonnes", +col_limit:"Vous avez d\u00E9pass\u00E9 le nombre maximum de colonnes ({$cols}).", +row_limit:"Vous avez d\u00E9pass\u00E9 le nombre maximum de lignes ({$rows}).", +cell_limit:"Vous avez d\u00E9pass\u00E9 le nombre maximum de cellules ({$cells}).", +missing_scope:"\u00CAtes-vous s\u00FBr de vouloir continuer sans sp\u00E9cifier de port\u00E9e pour cette cellule de titre? Sans port\u00E9e, cela peut \u00EAtre difficile pour certains usagers \u00E0 probl\u00E8mes de comprendre le contenu ou les donn\u00E9es affich\u00E9es dans le tableau.", +caption:"Afficher la l\u00E9gende du tableau", +frame:"Cadre", +frame_none:"aucun", +frame_groups:"groupe", +frame_rows:"lignes", +frame_cols:"colonnes", +frame_all:"tous", +rules:"R\u00E8gles", +rules_void:"nul", +rules_above:"au dessus", +rules_below:"au dessous", +rules_hsides:"hsides", +rules_lhs:"lhs", +rules_rhs:"rhs", +rules_vsides:"vsides", +rules_box:"box", +rules_border:"border" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ja_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ja_dlg.js new file mode 100644 index 0000000..ad85614 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ja_dlg.js @@ -0,0 +1,74 @@ +tinyMCE.addI18n('ja.table_dlg',{ +general_tab:"\u4E00\u822C", +advanced_tab:"\u4E0A\u7D1A\u8005\u5411\u3051", +general_props:"\u4E00\u822C", +advanced_props:"\u4E0A\u7D1A\u8005\u5411\u3051", +rowtype:"\u884C", +title:"\u8868\u306E\u633F\u5165/\u7DE8\u96C6", +width:"\u5E45", +height:"\u9AD8\u3055", +cols:"\u5217", +rows:"\u884C", +cellspacing:"Cellspacing", +cellpadding:"Cellpadding", +border:"\u67A0\u7DDA", +align:"\u914D\u7F6E", +align_default:"\u30C7\u30D5\u30A9\u30EB\u30C8", +align_left:"\u5DE6\u63C3\u3048", +align_right:"\u53F3\u63C3\u3048", +align_middle:"\u4E2D\u592E\u63C3\u3048", +row_title:"\u884C\u306E\u30D7\u30ED\u30D1\u30C6\u30A3", +cell_title:"\u30BB\u30EB\u306E\u30D7\u30ED\u30D1\u30C6\u30A3", +cell_type:"\u30BB\u30EB\u7A2E\u5225", +valign:"\u5782\u76F4\u65B9\u5411\u306E\u914D\u7F6E", +align_top:"\u4E0A\u63C3\u3048", +align_bottom:"\u4E0B\u63C3\u3048", +bordercolor:"\u67A0\u7DDA\u306E\u8272", +bgcolor:"\u80CC\u666F\u8272", +merge_cells_title:"\u30BB\u30EB\u306E\u7D50\u5408", +id:"ID", +style:"\u30B9\u30BF\u30A4\u30EB", +langdir:"\u6587\u7AE0\u306E\u65B9\u5411", +langcode:"\u8A00\u8A9E\u30B3\u30FC\u30C9", +mime:"\u30BF\u30FC\u30B2\u30C3\u30C8\u306EMIME\u30BF\u30A4\u30D7", +ltr:"\u5DE6\u304B\u3089\u53F3", +rtl:"\u53F3\u304B\u3089\u5DE6", +bgimage:"\u80CC\u666F\u753B\u50CF", +summary:"\u30B5\u30DE\u30EA\u30FC", +td:"\u65E5\u4ED8", +th:"\u30D8\u30C3\u30C0", +cell_cell:"\u9078\u629E\u30BB\u30EB\u306E\u66F4\u65B0", +cell_row:"\u884C\u5185\u306E\u30BB\u30EB\u306E\u66F4\u65B0", +cell_all:"\u5168\u3066\u306E\u30BB\u30EB\u306E\u66F4\u65B0", +row_row:"\u9078\u629E\u884C\u306E\u66F4\u65B0", +row_odd:"\u5947\u6570\u884C\u306E\u66F4\u65B0", +row_even:"\u5076\u6570\u884C\u306E\u66F4\u65B0", +row_all:"\u5168\u3066\u306E\u884C\u306E\u66F4\u65B0", +thead:"\u8868\u30D8\u30C3\u30C0", +tbody:"\u8868\u30DC\u30C7\u30A3", +tfoot:"\u8868\u30D5\u30C3\u30BF", +scope:"\u30B9\u30B3\u30FC\u30D7", +rowgroup:"\u884C\u30B0\u30EB\u30FC\u30D7", +colgroup:"\u5217\u30B0\u30EB\u30FC\u30D7", +col_limit:"\u5217\u306E\u6700\u5927\u6570\u3092\u8D85\u3048\u307E\u3057\u305F\u3002", +row_limit:"\u884C\u306E\u6700\u5927\u6570\u3092\u8D85\u3048\u307E\u3057\u305F\u3002", +cell_limit:"\u30BB\u30EB\u306E\u6700\u5927\u6570\u3092\u8D85\u3048\u307E\u3057\u305F\u3002", +missing_scope:"\u8868\u306E\u30B9\u30B3\u30FC\u30D7\u5C5E\u6027\u3092\u8A2D\u5B9A\u3057\u3066\u3044\u307E\u305B\u3093\u304C\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F", +caption:"\u8868\u306B\u898B\u51FA\u3057\u3092\u4ED8\u3051\u308B", +frame:"\u30BB\u30EB\u67A0\u7DDA", +frame_none:"\u306A\u3057", +frame_groups:"\u30B0\u30EB\u30FC\u30D7\u6BCE", +frame_rows:"\u884C", +frame_cols:"\u5217", +frame_all:"\u5168\u3066", +rules:"\u8868\u306E\u5916\u67A0", +rules_void:"\u306A\u3057", +rules_above:"\u4E0A", +rules_below:"\u4E0B", +rules_hsides:"\u4E0A\u4E0B", +rules_lhs:"\u5DE6", +rules_rhs:"\u53F3", +rules_vsides:"\u5DE6\u53F3", +rules_box:"\u4E0A\u4E0B\u5DE6\u53F3(box)", +rules_border:"\u4E0A\u4E0B\u5DE6\u53F3(border)" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/nl_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/nl_dlg.js new file mode 100644 index 0000000..0f72b17 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/nl_dlg.js @@ -0,0 +1,74 @@ +tinyMCE.addI18n('nl.table_dlg',{ +general_tab:"Algemeen", +advanced_tab:"Geavanceerd", +general_props:"Algemene eigenschappen", +advanced_props:"Geavanceerde eigenschappen", +rowtype:"Rijtype", +title:"Tabel invoegen/bewerken", +width:"Breedte", +height:"Hoogte", +cols:"Kolommen", +rows:"Rijen", +cellspacing:"Ruimte om cel", +cellpadding:"Ruimte in cel", +border:"Rand", +align:"Uitlijning", +align_default:"Standaard", +align_left:"Links", +align_right:"Rechts", +align_middle:"Centreren", +row_title:"Rij-eigenschappen", +cell_title:"Celeigenschappen", +cell_type:"Celtype", +valign:"Verticale uitlijning", +align_top:"Boven", +align_bottom:"Onder", +bordercolor:"Randkleur", +bgcolor:"Achtergrondkleur", +merge_cells_title:"Cellen samenvoegen", +id:"Id", +style:"Stijl", +langdir:"Taalrichting", +langcode:"Taalcode", +mime:"Doel MIME type", +ltr:"Van links naar rechts", +rtl:"Van rechts naar links", +bgimage:"Achtergrondafbeelding", +summary:"Samenvatting", +td:"Gegevens", +th:"Kop", +cell_cell:"Huidige cel bijwerken", +cell_row:"Alle cellen in rij bijwerken", +cell_all:"Alle cellen in tabel bijwerken", +row_row:"Huidige rij bijwerken", +row_odd:"Oneven rijen bijwerken", +row_even:"Even rijen bijwerken", +row_all:"Alle rijen bijwerken", +thead:"Tabelkop", +tbody:"Tabellichaam", +tfoot:"Tabelvoet", +scope:"Bereik", +rowgroup:"Rijgroep", +colgroup:"Kolomgroep", +col_limit:"U heeft het maximale aantal kolommen van {$cols} overschreden.", +row_limit:"U heeft hebt het maximale aantal rijen van {$rows} overschreden.", +cell_limit:"U heeft het maximale aantal cellen van {$cells} overschreden.", +missing_scope:"Weet u zeker dat u door wilt gaan met het toewijzen van een kop zonder een bereik op te geven? Mensen met een visuele handicap kunnen hierdoor waarschijnlijk slecht bij de gegevens.", +caption:"Tabelbeschrijving", +frame:"Frame", +frame_none:"Geen", +frame_groups:"Groepen", +frame_rows:"Rijen", +frame_cols:"Kolommen", +frame_all:"Alles", +rules:"Hulplijnen", +rules_void:"Geen", +rules_above:"Boven", +rules_below:"Onder", +rules_hsides:"Horizontale zijden", +rules_lhs:"Linkerzijkant", +rules_rhs:"Rechterzijkant", +rules_vsides:"Verticale zijden", +rules_box:"Box", +rules_border:"Rand" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/pt_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/pt_dlg.js new file mode 100644 index 0000000..fdf8bd5 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/pt_dlg.js @@ -0,0 +1,74 @@ +tinyMCE.addI18n('pt.table_dlg',{ +general_tab:"Geral", +advanced_tab:"Avan\u00E7ado", +general_props:"Propriedades gerais", +advanced_props:"Propriedades avan\u00E7adas", +rowtype:"Linha na parte da tabela", +title:"Inserir/modificar tabela", +width:"Largura", +height:"Altura", +cols:"Colunas", +rows:"Linhas", +cellspacing:"Espa\u00E7amento da C\u00E9lula", +cellpadding:"Enchimento da C\u00E9lula", +border:"Limites", +align:"Alinha.", +align_default:"Padr\u00E3o", +align_left:"Esquerda", +align_right:"Direita", +align_middle:"Centro", +row_title:"Propriedades de linhas", +cell_title:"Propriedades de c\u00E9lulas", +cell_type:"Tipo c\u00E9l.", +valign:"Alinha. vert.", +align_top:"Topo", +align_bottom:"Abaixo", +bordercolor:"Cor dos limites", +bgcolor:"Cor de fundo", +merge_cells_title:"Unir c\u00E9lulas", +id:"Id", +style:"Estilo", +langdir:"Dire\u00E7\u00E3o do texto", +langcode:"C\u00F3digo da idioma", +mime:"MIME alvo", +ltr:"Da esquerda para a direita", +rtl:"Da direita para a esquerda", +bgimage:"Imagem de fundo", +summary:"Sum\u00E1rio", +td:"Dados", +th:"Campo", +cell_cell:"Atualizar esta c\u00E9lula", +cell_row:"Atualizar todas as c\u00E9lulas na linha", +cell_all:"Atualizar todas as c\u00E9lulas na tabela", +row_row:"Atualizar esta linha", +row_odd:"Atualizar linhas \u00EDmpares", +row_even:"Atualizar linhas pares", +row_all:"Atualizar todas as linhas", +thead:"Topo da tabela", +tbody:"Corpo da tabela", +tfoot:"Rodap\u00E9 da tabela", +scope:"Alcance", +rowgroup:"Grupo linhas", +colgroup:"Grupo colunas", +col_limit:"Excedeu o n\u00FAmero m\u00E1ximo de colunas de {$cols}.", +row_limit:"Excedeu o n\u00FAmero m\u00E1ximo de linhas de {$rows}.", +cell_limit:"Excedeu o n\u00FAmero m\u00E1ximo de c\u00E9lulas de {$cells}.", +missing_scope:"Tem certeza de que quer continuar sem especificar um escopo para esta c\u00E9lula? (Isso poder\u00E1 causar dificuldades a usu\u00E1rios deficientes)", +caption:"T\u00EDtulo da tabela", +frame:"Frame", +frame_none:"Nenhum", +frame_groups:"Grupos", +frame_rows:"Linhas", +frame_cols:"colunas", +frame_all:"Todos", +rules:"Regras", +rules_void:"void", +rules_above:"acima", +rules_below:"abaixo", +rules_hsides:"Hsides", +rules_lhs:"Lhs", +rules_rhs:"Rhs", +rules_vsides:"Vsides", +rules_box:"Box", +rules_border:"Limites" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ru_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ru_dlg.js new file mode 100644 index 0000000..a7aefeb --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/langs/ru_dlg.js @@ -0,0 +1,74 @@ +tinyMCE.addI18n('ru.table_dlg',{ +general_tab:"\u041E\u0431\u0449\u0435\u0435", +advanced_tab:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E", +general_props:"\u041E\u0431\u0449\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430", +advanced_props:"\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430", +rowtype:"Row in table part", +title:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 / \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B", +width:"\u0428\u0438\u0440\u0438\u043D\u0430", +height:"\u0412\u044B\u0441\u043E\u0442\u0430", +cols:"\u0421\u0442\u043E\u043B\u0431\u0446\u044B", +rows:"\u0421\u0440\u043E\u043A\u0438", +cellspacing:"\u0420\u0430\u0441\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043C\u0435\u0436\u0434\u0443 \u044F\u0447\u0435\u0439\u043A\u0430\u043C\u0438", +cellpadding:"\u041E\u0442\u0441\u0442\u0443\u043F\u044B \u0432 \u044F\u0447\u0435\u0439\u043A\u0430\u0445", +border:"\u0413\u0440\u0430\u043D\u0438\u0446\u0430", +align:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435", +align_default:"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E", +align_left:"\u041F\u043E \u043B\u0435\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E", +align_right:"\u041F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E", +align_middle:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443", +row_title:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u043E\u043A\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B", +cell_title:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u044F\u0447\u0435\u0439\u043A\u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u044B", +cell_type:"\u0422\u0438\u043F \u044F\u0447\u0435\u0439\u043A\u0438", +valign:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435", +align_top:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E", +align_bottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E", +bordercolor:"\u0446\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B", +bgcolor:"\u0446\u0432\u0435\u0442 \u0444\u043E\u043D\u0430", +merge_cells_title:"\u041E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u044F\u0447\u0435\u0439\u043A\u0438", +id:"Id", +style:"\u0421\u0442\u0438\u043B\u044C", +langdir:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u044F\u0437\u044B\u043A\u0430", +langcode:"\u041A\u043E\u0434 \u044F\u0437\u044B\u043A\u0430", +mime:"Target MIME-\u0442\u0438\u043F", +ltr:"\u0421\u043B\u0435\u0432\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043E", +rtl:"\u0421\u043F\u0440\u0430\u0432\u0430 \u043D\u0430\u043B\u0435\u0432\u043E", +bgimage:"\u0424\u043E\u043D\u043E\u0432\u043E\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435", +summary:"\u041E\u0431\u0449\u0435\u0435", +td:"\u0414\u0430\u043D\u043D\u044B\u0435", +th:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A", +cell_cell:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u044F\u0447\u0435\u0439\u043A\u0443", +cell_row:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u044F\u0447\u0435\u0439\u043A\u0438 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435", +cell_all:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u044F\u0447\u0435\u0439\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435", +row_row:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443", +row_odd:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043D\u0435\u0447\u0435\u0442\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435", +row_even:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0447\u0435\u0442\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435", +row_all:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435", +thead:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0442\u0430\u0431\u043B\u0438\u0446\u044B", +tbody:"\u0422\u0435\u043B\u043E \u0442\u0430\u0431\u043B\u0438\u0446\u044B", +tfoot:"\u041D\u0438\u0436\u043D\u044F\u044F \u0447\u0430\u0441\u0442\u0441\u0438\u043D\u0430", +scope:"Scope", +rowgroup:"Row Group", +colgroup:"Col Group", +col_limit:"You've exceeded the maximum number of columns of ($ cols)", +row_limit:"You've exceeded the maximum number of rows of ($ rows)", +cell_limit:"You've exceeded the maximum number of cells of ($ cells)", +missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table", +caption:"Table caption", +frame:"\u0424\u0440\u0435\u0439\u043C", +frame_none:"none", +frame_groups:"groups", +frame_rows:"rows", +frame_cols:"cols", +frame_all:"all", +rules:"Rules", +rules_void:"void", +rules_above:"above", +rules_below:"below", +rules_hsides:"hsides", +rules_lhs:"lhs", +rules_rhs:"rhs", +rules_vsides:"vsides", +rules_box:"box", +rules_border:"border" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm new file mode 100644 index 0000000..d231090 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm @@ -0,0 +1,32 @@ + + + + {#table_dlg.merge_cells_title} + + + + + + +
                    +
                    + {#table_dlg.merge_cells_title} + + + + + + + + + +
                    :
                    :
                    +
                    + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/row.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/row.htm new file mode 100644 index 0000000..c197ff6 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/row.htm @@ -0,0 +1,157 @@ + + + + {#table_dlg.row_title} + + + + + + + + +
                    + + +
                    +
                    +
                    + {#table_dlg.general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + +
                    + +
                    + +
                    + +
                    +
                    +
                    + +
                    +
                    + {#table_dlg.advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + +
                    + +
                    + + + + + +
                     
                    +
                    + + + + + + +
                     
                    +
                    +
                    +
                    +
                    +
                    + +
                    +
                    + +
                    + + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/table.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/table.htm new file mode 100644 index 0000000..4a873b0 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/table/table.htm @@ -0,0 +1,188 @@ + + + + {#table_dlg.title} + + + + + + + + + + +
                    + + +
                    +
                    +
                    + {#table_dlg.general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    +
                    +
                    +
                    + +
                    +
                    + {#table_dlg.advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + +
                    + + + + + +
                     
                    +
                    + +
                    + +
                    + +
                    + + + + + +
                     
                    +
                    + + + + + +
                     
                    +
                    +
                    +
                    +
                    + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/blank.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/blank.htm new file mode 100644 index 0000000..ecde53f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/blank.htm @@ -0,0 +1,12 @@ + + + blank_page + + + + + + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/css/template.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/css/template.css new file mode 100644 index 0000000..2d23a49 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/css/template.css @@ -0,0 +1,23 @@ +#frmbody { + padding: 10px; + background-color: #FFF; + border: 1px solid #CCC; +} + +.frmRow { + margin-bottom: 10px; +} + +#templatesrc { + border: none; + width: 320px; + height: 240px; +} + +.title { + padding-bottom: 5px; +} + +.mceActionPanel { + padding-top: 5px; +} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js new file mode 100644 index 0000000..ebe3c27 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js @@ -0,0 +1 @@ +(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.TemplatePlugin",{init:function(b,c){var d=this;d.editor=b;b.addCommand("mceTemplate",function(e){b.windowManager.open({file:c+"/template.htm",width:b.getParam("template_popup_width",750),height:b.getParam("template_popup_height",600),inline:1},{plugin_url:c})});b.addCommand("mceInsertTemplate",d._insertTemplate,d);b.addButton("template",{title:"template.desc",cmd:"mceTemplate"});b.onPreProcess.add(function(e,g){var f=e.dom;a(f.select("div",g.node),function(h){if(f.hasClass(h,"mceTmpl")){a(f.select("*",h),function(i){if(f.hasClass(i,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){i.innerHTML=d._getDateTime(new Date(),e.getParam("template_mdate_format",e.getLang("template.mdate_format")))}});d._replaceVals(h)}})})},getInfo:function(){return{longname:"Template plugin",author:"Moxiecode Systems AB",authorurl:"http://www.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_insertTemplate:function(i,j){var k=this,g=k.editor,f,c,d=g.dom,b=g.selection.getContent();f=j.content;a(k.editor.getParam("template_replace_values"),function(l,h){if(typeof(l)!="function"){f=f.replace(new RegExp("\\{\\$"+h+"\\}","g"),l)}});c=d.create("div",null,f);n=d.select(".mceTmpl",c);if(n&&n.length>0){c=d.create("div",null);c.appendChild(n[0].cloneNode(true))}function e(l,h){return new RegExp("\\b"+h+"\\b","g").test(l.className)}a(d.select("*",c),function(h){if(e(h,g.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_cdate_format",g.getLang("template.cdate_format")))}if(e(h,g.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_mdate_format",g.getLang("template.mdate_format")))}if(e(h,g.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))){h.innerHTML=b}});k._replaceVals(c);g.execCommand("mceInsertContent",false,c.innerHTML);g.addVisual()},_replaceVals:function(c){var d=this.editor.dom,b=this.editor.getParam("template_replace_values");a(d.select("*",c),function(f){a(b,function(g,e){if(d.hasClass(f,e)){if(typeof(b[e])=="function"){b[e](f)}}})})},_getDateTime:function(e,b){if(!b){return""}function c(g,d){var f;g=""+g;if(g.length 0) { + el = dom.create('div', null); + el.appendChild(n[0].cloneNode(true)); + } + + function hasClass(n, c) { + return new RegExp('\\b' + c + '\\b', 'g').test(n.className); + }; + + each(dom.select('*', el), function(n) { + // Replace cdate + if (hasClass(n, ed.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|'))) + n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_cdate_format", ed.getLang("template.cdate_format"))); + + // Replace mdate + if (hasClass(n, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|'))) + n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format"))); + + // Replace selection + if (hasClass(n, ed.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|'))) + n.innerHTML = sel; + }); + + t._replaceVals(el); + + ed.execCommand('mceInsertContent', false, el.innerHTML); + ed.addVisual(); + }, + + _replaceVals : function(e) { + var dom = this.editor.dom, vl = this.editor.getParam('template_replace_values'); + + each(dom.select('*', e), function(e) { + each(vl, function(v, k) { + if (dom.hasClass(e, k)) { + if (typeof(vl[k]) == 'function') + vl[k](e); + } + }); + }); + }, + + _getDateTime : function(d, fmt) { + if (!fmt) + return ""; + + function addZeros(value, len) { + var i; + + value = "" + value; + + if (value.length < len) { + for (i=0; i<(len-value.length); i++) + value = "0" + value; + } + + return value; + } + + fmt = fmt.replace("%D", "%m/%d/%y"); + fmt = fmt.replace("%r", "%I:%M:%S %p"); + fmt = fmt.replace("%Y", "" + d.getFullYear()); + fmt = fmt.replace("%y", "" + d.getYear()); + fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2)); + fmt = fmt.replace("%d", addZeros(d.getDate(), 2)); + fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2)); + fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2)); + fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2)); + fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1)); + fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM")); + fmt = fmt.replace("%B", "" + this.editor.getLang("template_months_long").split(',')[d.getMonth()]); + fmt = fmt.replace("%b", "" + this.editor.getLang("template_months_short").split(',')[d.getMonth()]); + fmt = fmt.replace("%A", "" + this.editor.getLang("template_day_long").split(',')[d.getDay()]); + fmt = fmt.replace("%a", "" + this.editor.getLang("template_day_short").split(',')[d.getDay()]); + fmt = fmt.replace("%%", "%"); + + return fmt; + } + }); + + // Register plugin + tinymce.PluginManager.add('template', tinymce.plugins.TemplatePlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/js/template.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/js/template.js new file mode 100644 index 0000000..bc3045d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/template/js/template.js @@ -0,0 +1,106 @@ +tinyMCEPopup.requireLangPack(); + +var TemplateDialog = { + preInit : function() { + var url = tinyMCEPopup.getParam("template_external_list_url"); + + if (url != null) + document.write(''); + }, + + init : function() { + var ed = tinyMCEPopup.editor, tsrc, sel, x, u; + + tsrc = ed.getParam("template_templates", false); + sel = document.getElementById('tpath'); + + // Setup external template list + if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') { + for (x=0, tsrc = []; x'); + }); + }, + + selectTemplate : function(u, ti) { + var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc; + + if (!u) + return; + + d.body.innerHTML = this.templateHTML = this.getFileContents(u); + + for (x=0; x + + {#template_dlg.title} + + + + + +
                    +
                    +
                    {#template_dlg.desc}
                    +
                    + +
                    +
                    +
                    +
                    + {#template_dlg.preview} + +
                    +
                    + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js new file mode 100644 index 0000000..1a148e8 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.VisualChars",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceVisualChars",c._toggleVisualChars,c);a.addButton("visualchars",{title:"visualchars.desc",cmd:"mceVisualChars"});a.onBeforeGetContent.add(function(d,e){if(c.state&&e.format!="raw"&&!e.draft){c.state=true;c._toggleVisualChars(false)}})},getInfo:function(){return{longname:"Visual characters",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_toggleVisualChars:function(m){var p=this,k=p.editor,a,g,j,n=k.getDoc(),o=k.getBody(),l,q=k.selection,e,c,f;p.state=!p.state;k.controlManager.setActive("visualchars",p.state);if(m){f=q.getBookmark()}if(p.state){a=[];tinymce.walk(o,function(b){if(b.nodeType==3&&b.nodeValue&&b.nodeValue.indexOf("\u00a0")!=-1){a.push(b)}},"childNodes");for(g=0;g$1');c=k.dom.create("div",null,l);while(node=c.lastChild){k.dom.insertAfter(node,a[g])}k.dom.remove(a[g])}}else{a=k.dom.select("span.mceItemNbsp",o);for(g=a.length-1;g>=0;g--){k.dom.remove(a[g],1)}}q.moveToBookmark(f)}});tinymce.PluginManager.add("visualchars",tinymce.plugins.VisualChars)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js new file mode 100644 index 0000000..df98590 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js @@ -0,0 +1,83 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.VisualChars', { + init : function(ed, url) { + var t = this; + + t.editor = ed; + + // Register commands + ed.addCommand('mceVisualChars', t._toggleVisualChars, t); + + // Register buttons + ed.addButton('visualchars', {title : 'visualchars.desc', cmd : 'mceVisualChars'}); + + ed.onBeforeGetContent.add(function(ed, o) { + if (t.state && o.format != 'raw' && !o.draft) { + t.state = true; + t._toggleVisualChars(false); + } + }); + }, + + getInfo : function() { + return { + longname : 'Visual characters', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + // Private methods + + _toggleVisualChars : function(bookmark) { + var t = this, ed = t.editor, nl, i, h, d = ed.getDoc(), b = ed.getBody(), nv, s = ed.selection, bo, div, bm; + + t.state = !t.state; + ed.controlManager.setActive('visualchars', t.state); + + if (bookmark) + bm = s.getBookmark(); + + if (t.state) { + nl = []; + tinymce.walk(b, function(n) { + if (n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1) + nl.push(n); + }, 'childNodes'); + + for (i = 0; i < nl.length; i++) { + nv = nl[i].nodeValue; + nv = nv.replace(/(\u00a0)/g, '$1'); + + div = ed.dom.create('div', null, nv); + while (node = div.lastChild) + ed.dom.insertAfter(node, nl[i]); + + ed.dom.remove(nl[i]); + } + } else { + nl = ed.dom.select('span.mceItemNbsp', b); + + for (i = nl.length - 1; i >= 0; i--) + ed.dom.remove(nl[i], 1); + } + + s.moveToBookmark(bm); + } + }); + + // Register plugin + tinymce.PluginManager.add('visualchars', tinymce.plugins.VisualChars); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js new file mode 100644 index 0000000..e769d09 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.WordCount",{block:0,id:null,countre:null,cleanre:null,init:function(a,b){var c=this,d=0;c.countre=a.getParam("wordcount_countregex",/[\w\u2019\'-]+/g);c.cleanre=a.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\'\"_+=\\\/-]*/g);c.id=a.id+"-word-count";a.onPostRender.add(function(f,e){var g,h;h=f.getParam("wordcount_target_id");if(!h){g=tinymce.DOM.get(f.id+"_path_row");if(g){tinymce.DOM.add(g.parentNode,"div",{style:"float: right"},f.getLang("wordcount.words","Words: ")+'0')}}else{tinymce.DOM.add(h,"span",{},'0')}});a.onInit.add(function(e){e.selection.onSetContent.add(function(){c._count(e)});c._count(e)});a.onSetContent.add(function(e){c._count(e)});a.onKeyUp.add(function(f,g){if(g.keyCode==d){return}if(13==g.keyCode||8==d||46==d){c._count(f)}d=g.keyCode})},_getCount:function(c){var a=0;var b=c.getContent({format:"raw"});if(b){b=b.replace(/\.\.\./g," ");b=b.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," ");b=b.replace(/(\w+)(&.+?;)+(\w+)/,"$1$3").replace(/&.+?;/g," ");b=b.replace(this.cleanre,"");var d=b.match(this.countre);if(d){a=d.length}}return a},_count:function(a){var b=this;if(b.block){return}b.block=1;setTimeout(function(){var c=b._getCount(a);tinymce.DOM.setHTML(b.id,c.toString());setTimeout(function(){b.block=0},2000)},1)},getInfo:function(){return{longname:"Word Count plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("wordcount",tinymce.plugins.WordCount)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js new file mode 100644 index 0000000..6c9a3ea --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js @@ -0,0 +1,114 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.WordCount', { + block : 0, + id : null, + countre : null, + cleanre : null, + + init : function(ed, url) { + var t = this, last = 0; + + t.countre = ed.getParam('wordcount_countregex', /[\w\u2019\'-]+/g); // u2019 == ’ + t.cleanre = ed.getParam('wordcount_cleanregex', /[0-9.(),;:!?%#$?\'\"_+=\\\/-]*/g); + t.id = ed.id + '-word-count'; + + ed.onPostRender.add(function(ed, cm) { + var row, id; + + // Add it to the specified id or the theme advanced path + id = ed.getParam('wordcount_target_id'); + if (!id) { + row = tinymce.DOM.get(ed.id + '_path_row'); + + if (row) + tinymce.DOM.add(row.parentNode, 'div', {'style': 'float: right'}, ed.getLang('wordcount.words', 'Words: ') + '0'); + } else { + tinymce.DOM.add(id, 'span', {}, '0'); + } + }); + + ed.onInit.add(function(ed) { + ed.selection.onSetContent.add(function() { + t._count(ed); + }); + + t._count(ed); + }); + + ed.onSetContent.add(function(ed) { + t._count(ed); + }); + + ed.onKeyUp.add(function(ed, e) { + if (e.keyCode == last) + return; + + if (13 == e.keyCode || 8 == last || 46 == last) + t._count(ed); + + last = e.keyCode; + }); + }, + + _getCount : function(ed) { + var tc = 0; + var tx = ed.getContent({ format: 'raw' }); + + if (tx) { + tx = tx.replace(/\.\.\./g, ' '); // convert ellipses to spaces + tx = tx.replace(/<.[^<>]*?>/g, ' ').replace(/ | /gi, ' '); // remove html tags and space chars + + // deal with html entities + tx = tx.replace(/(\w+)(&.+?;)+(\w+)/, "$1$3").replace(/&.+?;/g, ' '); + tx = tx.replace(this.cleanre, ''); // remove numbers and punctuation + + var wordArray = tx.match(this.countre); + if (wordArray) { + tc = wordArray.length; + } + } + + return tc; + }, + + _count : function(ed) { + var t = this; + + // Keep multiple calls from happening at the same time + if (t.block) + return; + + t.block = 1; + + setTimeout(function() { + var tc = t._getCount(ed); + + tinymce.DOM.setHTML(t.id, tc.toString()); + + setTimeout(function() {t.block = 0;}, 2000); + }, 1); + }, + + getInfo: function() { + return { + longname : 'Word Count plugin', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + tinymce.PluginManager.add('wordcount', tinymce.plugins.WordCount); +})(); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm new file mode 100644 index 0000000..30a894f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm @@ -0,0 +1,142 @@ + + + + {#xhtmlxtras_dlg.title_abbr_element} + + + + + + + + + + +
                    + + +
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    : + +
                    :
                    : + +
                    : + +
                    +
                    +
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    +
                    +
                    +
                    +
                    + + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm new file mode 100644 index 0000000..c109345 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm @@ -0,0 +1,142 @@ + + + + {#xhtmlxtras_dlg.title_acronym_element} + + + + + + + + + + +
                    + + +
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    : + +
                    :
                    : + +
                    : + +
                    +
                    +
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    +
                    +
                    +
                    +
                    + + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm new file mode 100644 index 0000000..e8d606a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm @@ -0,0 +1,149 @@ + + + + {#xhtmlxtras_dlg.attribs_title} + + + + + + + + + +
                    + + +
                    +
                    +
                    + {#xhtmlxtras_dlg.attribute_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    + +
                    :
                    : + +
                    : + +
                    +
                    +
                    +
                    +
                    + {#xhtmlxtras_dlg.attribute_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    +
                    +
                    +
                    +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm new file mode 100644 index 0000000..0ac6bdb --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm @@ -0,0 +1,142 @@ + + + + {#xhtmlxtras_dlg.title_cite_element} + + + + + + + + + + +
                    + + +
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    : + +
                    :
                    : + +
                    : + +
                    +
                    +
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    +
                    +
                    +
                    +
                    + + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css new file mode 100644 index 0000000..9a6a235 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css @@ -0,0 +1,11 @@ +.panel_wrapper div.current { + height: 290px; +} + +#id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey { + width: 200px; +} + +#events_panel input { + width: 200px; +} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css new file mode 100644 index 0000000..e67114d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css @@ -0,0 +1,9 @@ +input.field, select.field {width:200px;} +input.picker {width:179px; margin-left: 5px;} +input.disabled {border-color:#F2F2F2;} +img.picker {vertical-align:text-bottom; cursor:pointer;} +h1 {padding: 0 0 5px 0;} +.panel_wrapper div.current {height:160px;} +#xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {height: 230px;} +a.browse span {display:block; width:20px; height:20px; background:url('../../../themes/advanced/img/icons.gif') -140px -20px;} +#datetime {width:180px;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm new file mode 100644 index 0000000..5f66751 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm @@ -0,0 +1,162 @@ + + + + {#xhtmlxtras_dlg.title_del_element} + + + + + + + + + + +
                    + + +
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_general_tab} + + + + + + + + + +
                    : + + + + + +
                    +
                    :
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    : + +
                    :
                    : + +
                    : + +
                    +
                    +
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    +
                    +
                    +
                    +
                    + + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js new file mode 100644 index 0000000..9b98a51 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.XHTMLXtrasPlugin",{init:function(a,b){a.addCommand("mceCite",function(){a.windowManager.open({file:b+"/cite.htm",width:350+parseInt(a.getLang("xhtmlxtras.cite_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.cite_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceAcronym",function(){a.windowManager.open({file:b+"/acronym.htm",width:350+parseInt(a.getLang("xhtmlxtras.acronym_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.acronym_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceAbbr",function(){a.windowManager.open({file:b+"/abbr.htm",width:350+parseInt(a.getLang("xhtmlxtras.abbr_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.abbr_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceDel",function(){a.windowManager.open({file:b+"/del.htm",width:340+parseInt(a.getLang("xhtmlxtras.del_delta_width",0)),height:310+parseInt(a.getLang("xhtmlxtras.del_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceIns",function(){a.windowManager.open({file:b+"/ins.htm",width:340+parseInt(a.getLang("xhtmlxtras.ins_delta_width",0)),height:310+parseInt(a.getLang("xhtmlxtras.ins_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceAttributes",function(){a.windowManager.open({file:b+"/attributes.htm",width:380+parseInt(a.getLang("xhtmlxtras.attr_delta_width",0)),height:370+parseInt(a.getLang("xhtmlxtras.attr_delta_height",0)),inline:1},{plugin_url:b})});a.addButton("cite",{title:"xhtmlxtras.cite_desc",cmd:"mceCite"});a.addButton("acronym",{title:"xhtmlxtras.acronym_desc",cmd:"mceAcronym"});a.addButton("abbr",{title:"xhtmlxtras.abbr_desc",cmd:"mceAbbr"});a.addButton("del",{title:"xhtmlxtras.del_desc",cmd:"mceDel"});a.addButton("ins",{title:"xhtmlxtras.ins_desc",cmd:"mceIns"});a.addButton("attribs",{title:"xhtmlxtras.attribs_desc",cmd:"mceAttributes"});a.onNodeChange.add(function(d,c,f,e){f=d.dom.getParent(f,"CITE,ACRONYM,ABBR,DEL,INS");c.setDisabled("cite",e);c.setDisabled("acronym",e);c.setDisabled("abbr",e);c.setDisabled("del",e);c.setDisabled("ins",e);c.setDisabled("attribs",f&&f.nodeName=="BODY");c.setActive("cite",0);c.setActive("acronym",0);c.setActive("abbr",0);c.setActive("del",0);c.setActive("ins",0);if(f){do{c.setDisabled(f.nodeName.toLowerCase(),0);c.setActive(f.nodeName.toLowerCase(),1)}while(f=f.parentNode)}});a.onPreInit.add(function(){a.dom.create("abbr")})},getInfo:function(){return{longname:"XHTML Xtras Plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("xhtmlxtras",tinymce.plugins.XHTMLXtrasPlugin)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js new file mode 100644 index 0000000..f240572 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js @@ -0,0 +1,132 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', { + init : function(ed, url) { + // Register commands + ed.addCommand('mceCite', function() { + ed.windowManager.open({ + file : url + '/cite.htm', + width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)), + height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + ed.addCommand('mceAcronym', function() { + ed.windowManager.open({ + file : url + '/acronym.htm', + width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)), + height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + ed.addCommand('mceAbbr', function() { + ed.windowManager.open({ + file : url + '/abbr.htm', + width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)), + height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + ed.addCommand('mceDel', function() { + ed.windowManager.open({ + file : url + '/del.htm', + width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)), + height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + ed.addCommand('mceIns', function() { + ed.windowManager.open({ + file : url + '/ins.htm', + width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)), + height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + ed.addCommand('mceAttributes', function() { + ed.windowManager.open({ + file : url + '/attributes.htm', + width : 380 + parseInt(ed.getLang('xhtmlxtras.attr_delta_width', 0)), + height : 370 + parseInt(ed.getLang('xhtmlxtras.attr_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + // Register buttons + ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'}); + ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'}); + ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'}); + ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'}); + ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'}); + ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'}); + + ed.onNodeChange.add(function(ed, cm, n, co) { + n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS'); + + cm.setDisabled('cite', co); + cm.setDisabled('acronym', co); + cm.setDisabled('abbr', co); + cm.setDisabled('del', co); + cm.setDisabled('ins', co); + cm.setDisabled('attribs', n && n.nodeName == 'BODY'); + cm.setActive('cite', 0); + cm.setActive('acronym', 0); + cm.setActive('abbr', 0); + cm.setActive('del', 0); + cm.setActive('ins', 0); + + // Activate all + if (n) { + do { + cm.setDisabled(n.nodeName.toLowerCase(), 0); + cm.setActive(n.nodeName.toLowerCase(), 1); + } while (n = n.parentNode); + } + }); + + ed.onPreInit.add(function() { + // Fixed IE issue where it can't handle these elements correctly + ed.dom.create('abbr'); + }); + }, + + getInfo : function() { + return { + longname : 'XHTML Xtras Plugin', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm new file mode 100644 index 0000000..d001ac7 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm @@ -0,0 +1,162 @@ + + + + {#xhtmlxtras_dlg.title_ins_element} + + + + + + + + + + +
                    + + +
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_general_tab} + + + + + + + + + +
                    : + + + + + +
                    +
                    :
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    : + +
                    :
                    : + +
                    : + +
                    +
                    +
                    +
                    +
                    + {#xhtmlxtras_dlg.fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    :
                    +
                    +
                    +
                    +
                    + + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js new file mode 100644 index 0000000..4b51a25 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js @@ -0,0 +1,28 @@ +/** + * abbr.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + SXE.initElementDialog('abbr'); + if (SXE.currentAction == "update") { + SXE.showRemoveButton(); + } +} + +function insertAbbr() { + SXE.insertElement('abbr'); + tinyMCEPopup.close(); +} + +function removeAbbr() { + SXE.removeElement('abbr'); + tinyMCEPopup.close(); +} + +tinyMCEPopup.onInit.add(init); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js new file mode 100644 index 0000000..6ec2f88 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js @@ -0,0 +1,28 @@ +/** + * acronym.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + SXE.initElementDialog('acronym'); + if (SXE.currentAction == "update") { + SXE.showRemoveButton(); + } +} + +function insertAcronym() { + SXE.insertElement('acronym'); + tinyMCEPopup.close(); +} + +function removeAcronym() { + SXE.removeElement('acronym'); + tinyMCEPopup.close(); +} + +tinyMCEPopup.onInit.add(init); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js new file mode 100644 index 0000000..9c99995 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js @@ -0,0 +1,111 @@ +/** + * attributes.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + tinyMCEPopup.resizeToInnerSize(); + var inst = tinyMCEPopup.editor; + var dom = inst.dom; + var elm = inst.selection.getNode(); + var f = document.forms[0]; + var onclick = dom.getAttrib(elm, 'onclick'); + + setFormValue('title', dom.getAttrib(elm, 'title')); + setFormValue('id', dom.getAttrib(elm, 'id')); + setFormValue('style', dom.getAttrib(elm, "style")); + setFormValue('dir', dom.getAttrib(elm, 'dir')); + setFormValue('lang', dom.getAttrib(elm, 'lang')); + setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : "")); + setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : "")); + setFormValue('onfocus', dom.getAttrib(elm, 'onfocus')); + setFormValue('onblur', dom.getAttrib(elm, 'onblur')); + setFormValue('onclick', onclick); + setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick')); + setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown')); + setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup')); + setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover')); + setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove')); + setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout')); + setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress')); + setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown')); + setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup')); + className = dom.getAttrib(elm, 'class'); + + addClassesToList('classlist', 'advlink_styles'); + selectByValue(f, 'classlist', className, true); + + TinyMCE_EditableSelects.init(); +} + +function setFormValue(name, value) { + if(value && document.forms[0].elements[name]){ + document.forms[0].elements[name].value = value; + } +} + +function insertAction() { + var inst = tinyMCEPopup.editor; + var elm = inst.selection.getNode(); + + setAllAttribs(elm); + tinyMCEPopup.execCommand("mceEndUndoLevel"); + tinyMCEPopup.close(); +} + +function setAttrib(elm, attrib, value) { + var formObj = document.forms[0]; + var valueElm = formObj.elements[attrib.toLowerCase()]; + var inst = tinyMCEPopup.editor; + var dom = inst.dom; + + if (typeof(value) == "undefined" || value == null) { + value = ""; + + if (valueElm) + value = valueElm.value; + } + + dom.setAttrib(elm, attrib.toLowerCase(), value); +} + +function setAllAttribs(elm) { + var f = document.forms[0]; + + setAttrib(elm, 'title'); + setAttrib(elm, 'id'); + setAttrib(elm, 'style'); + setAttrib(elm, 'class', getSelectValue(f, 'classlist')); + setAttrib(elm, 'dir'); + setAttrib(elm, 'lang'); + setAttrib(elm, 'tabindex'); + setAttrib(elm, 'accesskey'); + setAttrib(elm, 'onfocus'); + setAttrib(elm, 'onblur'); + setAttrib(elm, 'onclick'); + setAttrib(elm, 'ondblclick'); + setAttrib(elm, 'onmousedown'); + setAttrib(elm, 'onmouseup'); + setAttrib(elm, 'onmouseover'); + setAttrib(elm, 'onmousemove'); + setAttrib(elm, 'onmouseout'); + setAttrib(elm, 'onkeypress'); + setAttrib(elm, 'onkeydown'); + setAttrib(elm, 'onkeyup'); + + // Refresh in old MSIE +// if (tinyMCE.isMSIE5) +// elm.outerHTML = elm.outerHTML; +} + +function insertAttribute() { + tinyMCEPopup.close(); +} + +tinyMCEPopup.onInit.add(init); +tinyMCEPopup.requireLangPack(); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js new file mode 100644 index 0000000..009b715 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js @@ -0,0 +1,28 @@ +/** + * cite.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + SXE.initElementDialog('cite'); + if (SXE.currentAction == "update") { + SXE.showRemoveButton(); + } +} + +function insertCite() { + SXE.insertElement('cite'); + tinyMCEPopup.close(); +} + +function removeCite() { + SXE.removeElement('cite'); + tinyMCEPopup.close(); +} + +tinyMCEPopup.onInit.add(init); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js new file mode 100644 index 0000000..1f957dc --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js @@ -0,0 +1,53 @@ +/** + * del.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + SXE.initElementDialog('del'); + if (SXE.currentAction == "update") { + setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime')); + setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite')); + SXE.showRemoveButton(); + } +} + +function setElementAttribs(elm) { + setAllCommonAttribs(elm); + setAttrib(elm, 'datetime'); + setAttrib(elm, 'cite'); + elm.removeAttribute('data-mce-new'); +} + +function insertDel() { + var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'DEL'); + + if (elm == null) { + var s = SXE.inst.selection.getContent(); + if(s.length > 0) { + insertInlineElement('del'); + var elementArray = SXE.inst.dom.select('del[data-mce-new]'); + for (var i=0; i 0) { + tagName = element_name; + + insertInlineElement(element_name); + var elementArray = tinymce.grep(SXE.inst.dom.select(element_name)); + for (var i=0; i -1) ? true : false; +} + +SXE.removeClass = function(elm,cl) { + if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) { + return true; + } + var classNames = elm.className.split(" "); + var newClassNames = ""; + for (var x = 0, cnl = classNames.length; x < cnl; x++) { + if (classNames[x] != cl) { + newClassNames += (classNames[x] + " "); + } + } + elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end +} + +SXE.addClass = function(elm,cl) { + if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl; + return true; +} + +function insertInlineElement(en) { + var ed = tinyMCEPopup.editor, dom = ed.dom; + + ed.getDoc().execCommand('FontName', false, 'mceinline'); + tinymce.each(dom.select('span,font'), function(n) { + if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline') + dom.replace(dom.create(en, {'data-mce-new' : 1}), n, 1); + }); +} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js new file mode 100644 index 0000000..c4addfb --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js @@ -0,0 +1,53 @@ +/** + * ins.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + SXE.initElementDialog('ins'); + if (SXE.currentAction == "update") { + setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime')); + setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite')); + SXE.showRemoveButton(); + } +} + +function setElementAttribs(elm) { + setAllCommonAttribs(elm); + setAttrib(elm, 'datetime'); + setAttrib(elm, 'cite'); + elm.removeAttribute('data-mce-new'); +} + +function insertIns() { + var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'INS'); + + if (elm == null) { + var s = SXE.inst.selection.getContent(); + if(s.length > 0) { + insertInlineElement('ins'); + var elementArray = SXE.inst.dom.select('ins[data-mce-new]'); + for (var i=0; i + + + {#advanced_dlg.about_title} + + + + + + + +
                    +
                    +

                    {#advanced_dlg.about_title}

                    +

                    Version: ()

                    +

                    TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL + by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.

                    +

                    Copyright © 2003-2008, Moxiecode Systems AB, All rights reserved.

                    +

                    For more information about this software visit the TinyMCE website.

                    + +
                    + Got Moxie? +
                    +
                    + +
                    +
                    +

                    {#advanced_dlg.about_loaded}

                    + +
                    +
                    + +

                     

                    +
                    +
                    + +
                    +
                    +
                    +
                    + +
                    + +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm new file mode 100644 index 0000000..75c93b7 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm @@ -0,0 +1,26 @@ + + + + {#advanced_dlg.anchor_title} + + + + +
                    + + + + + + + + +
                    {#advanced_dlg.anchor_title}
                    + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm new file mode 100644 index 0000000..2c3b3f2 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm @@ -0,0 +1,51 @@ + + + + {#advanced_dlg.charmap_title} + + + + + + + + + + + + + + + +
                    + + + + + + + + + +
                     
                     
                    +
                    + + + + + + + + + + + + + + + + +
                     
                     
                     
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm new file mode 100644 index 0000000..ad1bb0f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm @@ -0,0 +1,74 @@ + + + + {#advanced_dlg.colorpicker_title} + + + + + + +
                    + + +
                    +
                    +
                    + {#advanced_dlg.colorpicker_picker_title} +
                    + + +
                    + +
                    + +
                    +
                    +
                    +
                    + +
                    +
                    + {#advanced_dlg.colorpicker_palette_title} +
                    + +
                    + +
                    +
                    +
                    + +
                    +
                    + {#advanced_dlg.colorpicker_named_title} +
                    + +
                    + +
                    + +
                    + {#advanced_dlg.colorpicker_name} +
                    +
                    +
                    +
                    + +
                    + + +
                    + +
                    + +
                    +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js new file mode 100644 index 0000000..ba8dd4c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js @@ -0,0 +1 @@ +(function(e){var d=e.DOM,b=e.dom.Event,h=e.extend,f=e.each,a=e.util.Cookie,g,c=e.explode;e.ThemeManager.requireLangPack("advanced");e.create("tinymce.themes.AdvancedTheme",{sizes:[8,10,12,14,18,24,36],controls:{bold:["bold_desc","Bold"],italic:["italic_desc","Italic"],underline:["underline_desc","Underline"],strikethrough:["striketrough_desc","Strikethrough"],justifyleft:["justifyleft_desc","JustifyLeft"],justifycenter:["justifycenter_desc","JustifyCenter"],justifyright:["justifyright_desc","JustifyRight"],justifyfull:["justifyfull_desc","JustifyFull"],bullist:["bullist_desc","InsertUnorderedList"],numlist:["numlist_desc","InsertOrderedList"],outdent:["outdent_desc","Outdent"],indent:["indent_desc","Indent"],cut:["cut_desc","Cut"],copy:["copy_desc","Copy"],paste:["paste_desc","Paste"],undo:["undo_desc","Undo"],redo:["redo_desc","Redo"],link:["link_desc","mceLink"],unlink:["unlink_desc","unlink"],image:["image_desc","mceImage"],cleanup:["cleanup_desc","mceCleanup"],help:["help_desc","mceHelp"],code:["code_desc","mceCodeEditor"],hr:["hr_desc","InsertHorizontalRule"],removeformat:["removeformat_desc","RemoveFormat"],sub:["sub_desc","subscript"],sup:["sup_desc","superscript"],forecolor:["forecolor_desc","ForeColor"],forecolorpicker:["forecolor_desc","mceForeColor"],backcolor:["backcolor_desc","HiliteColor"],backcolorpicker:["backcolor_desc","mceBackColor"],charmap:["charmap_desc","mceCharMap"],visualaid:["visualaid_desc","mceToggleVisualAid"],anchor:["anchor_desc","mceInsertAnchor"],newdocument:["newdocument_desc","mceNewDocument"],blockquote:["blockquote_desc","mceBlockQuote"]},stateControls:["bold","italic","underline","strikethrough","bullist","numlist","justifyleft","justifycenter","justifyright","justifyfull","sub","sup","blockquote"],init:function(j,k){var l=this,m,i,n;l.editor=j;l.url=k;l.onResolveName=new e.util.Dispatcher(this);j.forcedHighContrastMode=j.settings.detect_highcontrast&&l._isHighContrast();j.settings.skin=j.forcedHighContrastMode?"highcontrast":j.settings.skin;l.settings=m=h({theme_advanced_path:true,theme_advanced_toolbar_location:"bottom",theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,|,sub,sup,|,charmap",theme_advanced_blockformats:"p,address,pre,h1,h2,h3,h4,h5,h6",theme_advanced_toolbar_align:"center",theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1,theme_advanced_font_sizes:"1,2,3,4,5,6,7",theme_advanced_font_selector:"span",theme_advanced_show_current_color:0,readonly:j.settings.readonly},j.settings);if(!m.font_size_style_values){m.font_size_style_values="8pt,10pt,12pt,14pt,18pt,24pt,36pt"}if(e.is(m.theme_advanced_font_sizes,"string")){m.font_size_style_values=e.explode(m.font_size_style_values);m.font_size_classes=e.explode(m.font_size_classes||"");n={};j.settings.theme_advanced_font_sizes=m.theme_advanced_font_sizes;f(j.getParam("theme_advanced_font_sizes","","hash"),function(q,p){var o;if(p==q&&q>=1&&q<=7){p=q+" ("+l.sizes[q-1]+"pt)";o=m.font_size_classes[q-1];q=m.font_size_style_values[q-1]||(l.sizes[q-1]+"pt")}if(/^\s*\./.test(q)){o=q.replace(/\./g,"")}n[p]=o?{"class":o}:{fontSize:q}});m.theme_advanced_font_sizes=n}if((i=m.theme_advanced_path_location)&&i!="none"){m.theme_advanced_statusbar_location=m.theme_advanced_path_location}if(m.theme_advanced_statusbar_location=="none"){m.theme_advanced_statusbar_location=0}if(j.settings.content_css!==false){j.contentCSS.push(j.baseURI.toAbsolute(k+"/skins/"+j.settings.skin+"/content.css"))}j.onInit.add(function(){if(!j.settings.readonly){j.onNodeChange.add(l._nodeChanged,l);j.onKeyUp.add(l._updateUndoStatus,l);j.onMouseUp.add(l._updateUndoStatus,l);j.dom.bind(j.dom.getRoot(),"dragend",function(){l._updateUndoStatus(j)})}});j.onSetProgressState.add(function(q,o,r){var s,t=q.id,p;if(o){l.progressTimer=setTimeout(function(){s=q.getContainer();s=s.insertBefore(d.create("DIV",{style:"position:relative"}),s.firstChild);p=d.get(q.id+"_tbl");d.add(s,"div",{id:t+"_blocker","class":"mceBlocker",style:{width:p.clientWidth+2,height:p.clientHeight+2}});d.add(s,"div",{id:t+"_progress","class":"mceProgress",style:{left:p.clientWidth/2,top:p.clientHeight/2}})},r||0)}else{d.remove(t+"_blocker");d.remove(t+"_progress");clearTimeout(l.progressTimer)}});d.loadCSS(m.editor_css?j.documentBaseURI.toAbsolute(m.editor_css):k+"/skins/"+j.settings.skin+"/ui.css");if(m.skin_variant){d.loadCSS(k+"/skins/"+j.settings.skin+"/ui_"+m.skin_variant+".css")}},_isHighContrast:function(){var i,j=d.add(d.getRoot(),"div",{style:"background-color: rgb(171,239,86);"});i=(d.getStyle(j,"background-color",true)+"").toLowerCase().replace(/ /g,"");d.remove(j);return i!="rgb(171,239,86)"&&i!="#abef56"},createControl:function(l,i){var j,k;if(k=i.createControl(l)){return k}switch(l){case"styleselect":return this._createStyleSelect();case"formatselect":return this._createBlockFormats();case"fontselect":return this._createFontSelect();case"fontsizeselect":return this._createFontSizeSelect();case"forecolor":return this._createForeColorMenu();case"backcolor":return this._createBackColorMenu()}if((j=this.controls[l])){return i.createButton(l,{title:"advanced."+j[0],cmd:j[1],ui:j[2],value:j[3]})}},execCommand:function(k,j,l){var i=this["_"+k];if(i){i.call(this,j,l);return true}return false},_importClasses:function(k){var i=this.editor,j=i.controlManager.get("styleselect");if(j.getLength()==0){f(i.dom.getClasses(),function(n,l){var m="style_"+l;i.formatter.register(m,{inline:"span",attributes:{"class":n["class"]},selector:"*"});j.add(n["class"],m)})}},_createStyleSelect:function(m){var k=this,i=k.editor,j=i.controlManager,l;l=j.createListBox("styleselect",{title:"advanced.style_select",onselect:function(o){var p,n=[];f(l.items,function(q){n.push(q.value)});i.focus();i.undoManager.add();p=i.formatter.matchAll(n);if(!o||p[0]==o){if(p[0]){i.formatter.remove(p[0])}}else{i.formatter.apply(o)}i.undoManager.add();i.nodeChanged();return false}});i.onInit.add(function(){var o=0,n=i.getParam("style_formats");if(n){f(n,function(p){var q,r=0;f(p,function(){r++});if(r>1){q=p.name=p.name||"style_"+(o++);i.formatter.register(q,p);l.add(p.title,q)}else{l.add(p.title)}})}else{f(i.getParam("theme_advanced_styles","","hash"),function(r,q){var p;if(r){p="style_"+(o++);i.formatter.register(p,{inline:"span",classes:r,selector:"*"});l.add(k.editor.translate(q),p)}})}});if(l.getLength()==0){l.onPostRender.add(function(o,p){if(!l.NativeListBox){b.add(p.id+"_text","focus",k._importClasses,k);b.add(p.id+"_text","mousedown",k._importClasses,k);b.add(p.id+"_open","focus",k._importClasses,k);b.add(p.id+"_open","mousedown",k._importClasses,k)}else{b.add(p.id,"focus",k._importClasses,k)}})}return l},_createFontSelect:function(){var k,j=this,i=j.editor;k=i.controlManager.createListBox("fontselect",{title:"advanced.fontdefault",onselect:function(l){var m=k.items[k.selectedIndex];if(!l&&m){i.execCommand("FontName",false,m.value);return}i.execCommand("FontName",false,l);k.select(function(n){return l==n});if(m&&m.value==l){k.select(null)}return false}});if(k){f(i.getParam("theme_advanced_fonts",j.settings.theme_advanced_fonts,"hash"),function(m,l){k.add(i.translate(l),m,{style:m.indexOf("dings")==-1?"font-family:"+m:""})})}return k},_createFontSizeSelect:function(){var m=this,k=m.editor,n,l=0,j=[];n=k.controlManager.createListBox("fontsizeselect",{title:"advanced.font_size",onselect:function(i){var o=n.items[n.selectedIndex];if(!i&&o){o=o.value;if(o["class"]){k.formatter.toggle("fontsize_class",{value:o["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,o.fontSize)}return}if(i["class"]){k.focus();k.undoManager.add();k.formatter.toggle("fontsize_class",{value:i["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,i.fontSize)}n.select(function(p){return i==p});if(o&&(o.value.fontSize==i.fontSize||o.value["class"]==i["class"])){n.select(null)}return false}});if(n){f(m.settings.theme_advanced_font_sizes,function(o,i){var p=o.fontSize;if(p>=1&&p<=7){p=m.sizes[parseInt(p)-1]+"pt"}n.add(i,o,{style:"font-size:"+p,"class":"mceFontSize"+(l++)+(" "+(o["class"]||""))})})}return n},_createBlockFormats:function(){var k,i={p:"advanced.paragraph",address:"advanced.address",pre:"advanced.pre",h1:"advanced.h1",h2:"advanced.h2",h3:"advanced.h3",h4:"advanced.h4",h5:"advanced.h5",h6:"advanced.h6",div:"advanced.div",blockquote:"advanced.blockquote",code:"advanced.code",dt:"advanced.dt",dd:"advanced.dd",samp:"advanced.samp"},j=this;k=j.editor.controlManager.createListBox("formatselect",{title:"advanced.block",onselect:function(l){j.editor.execCommand("FormatBlock",false,l);return false}});if(k){f(j.editor.getParam("theme_advanced_blockformats",j.settings.theme_advanced_blockformats,"hash"),function(m,l){k.add(j.editor.translate(l!=m?l:i[m]),m,{"class":"mce_formatPreview mce_"+m})})}return k},_createForeColorMenu:function(){var m,j=this,k=j.settings,l={},i;if(k.theme_advanced_more_colors){l.more_colors_func=function(){j._mceColorPicker(0,{color:m.value,func:function(n){m.setColor(n)}})}}if(i=k.theme_advanced_text_colors){l.colors=i}if(k.theme_advanced_default_foreground_color){l.default_color=k.theme_advanced_default_foreground_color}l.title="advanced.forecolor_desc";l.cmd="ForeColor";l.scope=this;m=j.editor.controlManager.createColorSplitButton("forecolor",l);return m},_createBackColorMenu:function(){var m,j=this,k=j.settings,l={},i;if(k.theme_advanced_more_colors){l.more_colors_func=function(){j._mceColorPicker(0,{color:m.value,func:function(n){m.setColor(n)}})}}if(i=k.theme_advanced_background_colors){l.colors=i}if(k.theme_advanced_default_background_color){l.default_color=k.theme_advanced_default_background_color}l.title="advanced.backcolor_desc";l.cmd="HiliteColor";l.scope=this;m=j.editor.controlManager.createColorSplitButton("backcolor",l);return m},renderUI:function(k){var m,l,q,v=this,r=v.editor,w=v.settings,u,j,i;if(r.settings){r.settings.aria_label=w.aria_label+r.getLang("advanced.help_shortcut")}m=j=d.create("span",{role:"application","aria-labelledby":r.id+"_voice",id:r.id+"_parent","class":"mceEditor "+r.settings.skin+"Skin"+(w.skin_variant?" "+r.settings.skin+"Skin"+v._ufirst(w.skin_variant):"")});d.add(m,"span",{"class":"mceVoiceLabel",style:"display:none;",id:r.id+"_voice"},w.aria_label);if(!d.boxModel){m=d.add(m,"div",{"class":"mceOldBoxModel"})}m=u=d.add(m,"table",{role:"presentation",id:r.id+"_tbl","class":"mceLayout",cellSpacing:0,cellPadding:0});m=q=d.add(m,"tbody");switch((w.theme_advanced_layout_manager||"").toLowerCase()){case"rowlayout":l=v._rowLayout(w,q,k);break;case"customlayout":l=r.execCallback("theme_advanced_custom_layout",w,q,k,j);break;default:l=v._simpleLayout(w,q,k,j)}m=k.targetNode;i=u.rows;d.addClass(i[0],"mceFirst");d.addClass(i[i.length-1],"mceLast");f(d.select("tr",q),function(o){d.addClass(o.firstChild,"mceFirst");d.addClass(o.childNodes[o.childNodes.length-1],"mceLast")});if(d.get(w.theme_advanced_toolbar_container)){d.get(w.theme_advanced_toolbar_container).appendChild(j)}else{d.insertAfter(j,m)}b.add(r.id+"_path_row","click",function(n){n=n.target;if(n.nodeName=="A"){v._sel(n.className.replace(/^.*mcePath_([0-9]+).*$/,"$1"));return b.cancel(n)}});if(!r.getParam("accessibility_focus")){b.add(d.add(j,"a",{href:"#"},""),"focus",function(){tinyMCE.get(r.id).focus()})}if(w.theme_advanced_toolbar_location=="external"){k.deltaHeight=0}v.deltaHeight=k.deltaHeight;k.targetNode=null;r.onKeyDown.add(function(p,n){var s=121,o=122;if(n.altKey){if(n.keyCode===s){v.toolbarGroup.focus();return b.cancel(n)}else{if(n.keyCode===o){d.get(p.id+"_path_row").focus();return b.cancel(n)}}}});r.addShortcut("alt+0","","mceShortcuts",v);return{iframeContainer:l,editorContainer:r.id+"_parent",sizeContainer:u,deltaHeight:k.deltaHeight}},getInfo:function(){return{longname:"Advanced theme",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",version:e.majorVersion+"."+e.minorVersion}},resizeBy:function(i,j){var k=d.get(this.editor.id+"_ifr");this.resizeTo(k.clientWidth+i,k.clientHeight+j)},resizeTo:function(i,m,k){var j=this.editor,l=this.settings,n=d.get(j.id+"_tbl"),o=d.get(j.id+"_ifr");i=Math.max(l.theme_advanced_resizing_min_width||100,i);m=Math.max(l.theme_advanced_resizing_min_height||100,m);i=Math.min(l.theme_advanced_resizing_max_width||65535,i);m=Math.min(l.theme_advanced_resizing_max_height||65535,m);d.setStyle(n,"height","");d.setStyle(o,"height",m);if(l.theme_advanced_resize_horizontal){d.setStyle(n,"width","");d.setStyle(o,"width",i);if(i"));d.setHTML(l,q.join(""))},_addStatusBar:function(m,j){var k,v=this,p=v.editor,w=v.settings,i,q,u,l;k=d.add(m,"tr");k=l=d.add(k,"td",{"class":"mceStatusbar"});k=d.add(k,"div",{id:p.id+"_path_row",role:"group","aria-labelledby":p.id+"_path_voice"});if(w.theme_advanced_path){d.add(k,"span",{id:p.id+"_path_voice"},p.translate("advanced.path"));d.add(k,"span",{},": ")}else{d.add(k,"span",{}," ")}if(w.theme_advanced_resizing){d.add(l,"a",{id:p.id+"_resize",href:"javascript:;",onclick:"return false;","class":"mceResize"});if(w.theme_advanced_resizing_use_cookie){p.onPostRender.add(function(){var n=a.getHash("TinyMCE_"+p.id+"_size"),r=d.get(p.id+"_tbl");if(!n){return}v.resizeTo(n.cw,n.ch)})}p.onPostRender.add(function(){b.add(p.id+"_resize","click",function(n){n.preventDefault()});b.add(p.id+"_resize","mousedown",function(D){var t,r,s,o,C,z,A,F,n,E,x;function y(G){G.preventDefault();n=A+(G.screenX-C);E=F+(G.screenY-z);v.resizeTo(n,E)}function B(G){b.remove(d.doc,"mousemove",t);b.remove(p.getDoc(),"mousemove",r);b.remove(d.doc,"mouseup",s);b.remove(p.getDoc(),"mouseup",o);n=A+(G.screenX-C);E=F+(G.screenY-z);v.resizeTo(n,E,true)}D.preventDefault();C=D.screenX;z=D.screenY;x=d.get(v.editor.id+"_ifr");A=n=x.clientWidth;F=E=x.clientHeight;t=b.add(d.doc,"mousemove",y);r=b.add(p.getDoc(),"mousemove",y);s=b.add(d.doc,"mouseup",B);o=b.add(p.getDoc(),"mouseup",B)})})}j.deltaHeight-=21;k=m=null},_updateUndoStatus:function(j){var i=j.controlManager;i.setDisabled("undo",!j.undoManager.hasUndo()&&!j.typing);i.setDisabled("redo",!j.undoManager.hasRedo())},_nodeChanged:function(m,r,D,q,E){var y=this,C,F=0,x,G,z=y.settings,w,k,u,B,l,j,i;e.each(y.stateControls,function(n){r.setActive(n,m.queryCommandState(y.controls[n][1]))});function o(p){var s,n=E.parents,t=p;if(typeof(p)=="string"){t=function(v){return v.nodeName==p}}for(s=0;s0){y.statusKeyboardNavigation=new e.ui.KeyboardNavigation({root:m.id+"_path_row",items:d.select("a",C),excludeFromTabOrder:true,onCancel:function(){m.focus()}},d)}}},_sel:function(i){this.editor.execCommand("mceSelectNodeDepth",false,i)},_mceInsertAnchor:function(k,j){var i=this.editor;i.windowManager.open({url:this.url+"/anchor.htm",width:320+parseInt(i.getLang("advanced.anchor_delta_width",0)),height:90+parseInt(i.getLang("advanced.anchor_delta_height",0)),inline:true},{theme_url:this.url})},_mceCharMap:function(){var i=this.editor;i.windowManager.open({url:this.url+"/charmap.htm",width:550+parseInt(i.getLang("advanced.charmap_delta_width",0)),height:250+parseInt(i.getLang("advanced.charmap_delta_height",0)),inline:true},{theme_url:this.url})},_mceHelp:function(){var i=this.editor;i.windowManager.open({url:this.url+"/about.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceShortcuts:function(){var i=this.editor;i.windowManager.open({url:this.url+"/shortcuts.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceColorPicker:function(k,j){var i=this.editor;j=j||{};i.windowManager.open({url:this.url+"/color_picker.htm",width:375+parseInt(i.getLang("advanced.colorpicker_delta_width",0)),height:250+parseInt(i.getLang("advanced.colorpicker_delta_height",0)),close_previous:false,inline:true},{input_color:j.color,func:j.func,theme_url:this.url})},_mceCodeEditor:function(j,k){var i=this.editor;i.windowManager.open({url:this.url+"/source_editor.htm",width:parseInt(i.getParam("theme_advanced_source_editor_width",720)),height:parseInt(i.getParam("theme_advanced_source_editor_height",580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url})},_mceImage:function(j,k){var i=this.editor;if(i.dom.getAttrib(i.selection.getNode(),"class").indexOf("mceItem")!=-1){return}i.windowManager.open({url:this.url+"/image.htm",width:355+parseInt(i.getLang("advanced.image_delta_width",0)),height:275+parseInt(i.getLang("advanced.image_delta_height",0)),inline:true},{theme_url:this.url})},_mceLink:function(j,k){var i=this.editor;i.windowManager.open({url:this.url+"/link.htm",width:310+parseInt(i.getLang("advanced.link_delta_width",0)),height:200+parseInt(i.getLang("advanced.link_delta_height",0)),inline:true},{theme_url:this.url})},_mceNewDocument:function(){var i=this.editor;i.windowManager.confirm("advanced.newdocument",function(j){if(j){i.execCommand("mceSetContent",false,"")}})},_mceForeColor:function(){var i=this;this._mceColorPicker(0,{color:i.fgColor,func:function(j){i.fgColor=j;i.editor.execCommand("ForeColor",false,j)}})},_mceBackColor:function(){var i=this;this._mceColorPicker(0,{color:i.bgColor,func:function(j){i.bgColor=j;i.editor.execCommand("HiliteColor",false,j)}})},_ufirst:function(i){return i.substring(0,1).toUpperCase()+i.substring(1)}});e.ThemeManager.add("advanced",e.themes.AdvancedTheme)}(tinymce)); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js new file mode 100644 index 0000000..2bdef96 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js @@ -0,0 +1,1360 @@ +/** + * editor_template_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function(tinymce) { + var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode; + + // Tell it to load theme specific language pack(s) + tinymce.ThemeManager.requireLangPack('advanced'); + + tinymce.create('tinymce.themes.AdvancedTheme', { + sizes : [8, 10, 12, 14, 18, 24, 36], + + // Control name lookup, format: title, command + controls : { + bold : ['bold_desc', 'Bold'], + italic : ['italic_desc', 'Italic'], + underline : ['underline_desc', 'Underline'], + strikethrough : ['striketrough_desc', 'Strikethrough'], + justifyleft : ['justifyleft_desc', 'JustifyLeft'], + justifycenter : ['justifycenter_desc', 'JustifyCenter'], + justifyright : ['justifyright_desc', 'JustifyRight'], + justifyfull : ['justifyfull_desc', 'JustifyFull'], + bullist : ['bullist_desc', 'InsertUnorderedList'], + numlist : ['numlist_desc', 'InsertOrderedList'], + outdent : ['outdent_desc', 'Outdent'], + indent : ['indent_desc', 'Indent'], + cut : ['cut_desc', 'Cut'], + copy : ['copy_desc', 'Copy'], + paste : ['paste_desc', 'Paste'], + undo : ['undo_desc', 'Undo'], + redo : ['redo_desc', 'Redo'], + link : ['link_desc', 'mceLink'], + unlink : ['unlink_desc', 'unlink'], + image : ['image_desc', 'mceImage'], + cleanup : ['cleanup_desc', 'mceCleanup'], + help : ['help_desc', 'mceHelp'], + code : ['code_desc', 'mceCodeEditor'], + hr : ['hr_desc', 'InsertHorizontalRule'], + removeformat : ['removeformat_desc', 'RemoveFormat'], + sub : ['sub_desc', 'subscript'], + sup : ['sup_desc', 'superscript'], + forecolor : ['forecolor_desc', 'ForeColor'], + forecolorpicker : ['forecolor_desc', 'mceForeColor'], + backcolor : ['backcolor_desc', 'HiliteColor'], + backcolorpicker : ['backcolor_desc', 'mceBackColor'], + charmap : ['charmap_desc', 'mceCharMap'], + visualaid : ['visualaid_desc', 'mceToggleVisualAid'], + anchor : ['anchor_desc', 'mceInsertAnchor'], + newdocument : ['newdocument_desc', 'mceNewDocument'], + blockquote : ['blockquote_desc', 'mceBlockQuote'] + }, + + stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'], + + init : function(ed, url) { + var t = this, s, v, o; + + t.editor = ed; + t.url = url; + t.onResolveName = new tinymce.util.Dispatcher(this); + + ed.forcedHighContrastMode = ed.settings.detect_highcontrast && t._isHighContrast(); + ed.settings.skin = ed.forcedHighContrastMode ? 'highcontrast' : ed.settings.skin; + + // Default settings + t.settings = s = extend({ + theme_advanced_path : true, + theme_advanced_toolbar_location : 'bottom', + theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect", + theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code", + theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap", + theme_advanced_blockformats : "p,address,pre,h1,h2,h3,h4,h5,h6", + theme_advanced_toolbar_align : "center", + theme_advanced_fonts : "Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats", + theme_advanced_more_colors : 1, + theme_advanced_row_height : 23, + theme_advanced_resize_horizontal : 1, + theme_advanced_resizing_use_cookie : 1, + theme_advanced_font_sizes : "1,2,3,4,5,6,7", + theme_advanced_font_selector : "span", + theme_advanced_show_current_color: 0, + readonly : ed.settings.readonly + }, ed.settings); + + // Setup default font_size_style_values + if (!s.font_size_style_values) + s.font_size_style_values = "8pt,10pt,12pt,14pt,18pt,24pt,36pt"; + + if (tinymce.is(s.theme_advanced_font_sizes, 'string')) { + s.font_size_style_values = tinymce.explode(s.font_size_style_values); + s.font_size_classes = tinymce.explode(s.font_size_classes || ''); + + // Parse string value + o = {}; + ed.settings.theme_advanced_font_sizes = s.theme_advanced_font_sizes; + each(ed.getParam('theme_advanced_font_sizes', '', 'hash'), function(v, k) { + var cl; + + if (k == v && v >= 1 && v <= 7) { + k = v + ' (' + t.sizes[v - 1] + 'pt)'; + cl = s.font_size_classes[v - 1]; + v = s.font_size_style_values[v - 1] || (t.sizes[v - 1] + 'pt'); + } + + if (/^\s*\./.test(v)) + cl = v.replace(/\./g, ''); + + o[k] = cl ? {'class' : cl} : {fontSize : v}; + }); + + s.theme_advanced_font_sizes = o; + } + + if ((v = s.theme_advanced_path_location) && v != 'none') + s.theme_advanced_statusbar_location = s.theme_advanced_path_location; + + if (s.theme_advanced_statusbar_location == 'none') + s.theme_advanced_statusbar_location = 0; + + if (ed.settings.content_css !== false) + ed.contentCSS.push(ed.baseURI.toAbsolute(url + "/skins/" + ed.settings.skin + "/content.css")); + + // Init editor + ed.onInit.add(function() { + if (!ed.settings.readonly) { + ed.onNodeChange.add(t._nodeChanged, t); + ed.onKeyUp.add(t._updateUndoStatus, t); + ed.onMouseUp.add(t._updateUndoStatus, t); + ed.dom.bind(ed.dom.getRoot(), 'dragend', function() { + t._updateUndoStatus(ed); + }); + } + }); + + ed.onSetProgressState.add(function(ed, b, ti) { + var co, id = ed.id, tb; + + if (b) { + t.progressTimer = setTimeout(function() { + co = ed.getContainer(); + co = co.insertBefore(DOM.create('DIV', {style : 'position:relative'}), co.firstChild); + tb = DOM.get(ed.id + '_tbl'); + + DOM.add(co, 'div', {id : id + '_blocker', 'class' : 'mceBlocker', style : {width : tb.clientWidth + 2, height : tb.clientHeight + 2}}); + DOM.add(co, 'div', {id : id + '_progress', 'class' : 'mceProgress', style : {left : tb.clientWidth / 2, top : tb.clientHeight / 2}}); + }, ti || 0); + } else { + DOM.remove(id + '_blocker'); + DOM.remove(id + '_progress'); + clearTimeout(t.progressTimer); + } + }); + + DOM.loadCSS(s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : url + "/skins/" + ed.settings.skin + "/ui.css"); + + if (s.skin_variant) + DOM.loadCSS(url + "/skins/" + ed.settings.skin + "/ui_" + s.skin_variant + ".css"); + }, + + _isHighContrast : function() { + var actualColor, div = DOM.add(DOM.getRoot(), 'div', {'style': 'background-color: rgb(171,239,86);'}); + + actualColor = (DOM.getStyle(div, 'background-color', true) + '').toLowerCase().replace(/ /g, ''); + DOM.remove(div); + + return actualColor != 'rgb(171,239,86)' && actualColor != '#abef56'; + }, + + createControl : function(n, cf) { + var cd, c; + + if (c = cf.createControl(n)) + return c; + + switch (n) { + case "styleselect": + return this._createStyleSelect(); + + case "formatselect": + return this._createBlockFormats(); + + case "fontselect": + return this._createFontSelect(); + + case "fontsizeselect": + return this._createFontSizeSelect(); + + case "forecolor": + return this._createForeColorMenu(); + + case "backcolor": + return this._createBackColorMenu(); + } + + if ((cd = this.controls[n])) + return cf.createButton(n, {title : "advanced." + cd[0], cmd : cd[1], ui : cd[2], value : cd[3]}); + }, + + execCommand : function(cmd, ui, val) { + var f = this['_' + cmd]; + + if (f) { + f.call(this, ui, val); + return true; + } + + return false; + }, + + _importClasses : function(e) { + var ed = this.editor, ctrl = ed.controlManager.get('styleselect'); + + if (ctrl.getLength() == 0) { + each(ed.dom.getClasses(), function(o, idx) { + var name = 'style_' + idx; + + ed.formatter.register(name, { + inline : 'span', + attributes : {'class' : o['class']}, + selector : '*' + }); + + ctrl.add(o['class'], name); + }); + } + }, + + _createStyleSelect : function(n) { + var t = this, ed = t.editor, ctrlMan = ed.controlManager, ctrl; + + // Setup style select box + ctrl = ctrlMan.createListBox('styleselect', { + title : 'advanced.style_select', + onselect : function(name) { + var matches, formatNames = []; + + each(ctrl.items, function(item) { + formatNames.push(item.value); + }); + + ed.focus(); + ed.undoManager.add(); + + // Toggle off the current format + matches = ed.formatter.matchAll(formatNames); + if (!name || matches[0] == name) { + if (matches[0]) + ed.formatter.remove(matches[0]); + } else + ed.formatter.apply(name); + + ed.undoManager.add(); + ed.nodeChanged(); + + return false; // No auto select + } + }); + + // Handle specified format + ed.onInit.add(function() { + var counter = 0, formats = ed.getParam('style_formats'); + + if (formats) { + each(formats, function(fmt) { + var name, keys = 0; + + each(fmt, function() {keys++;}); + + if (keys > 1) { + name = fmt.name = fmt.name || 'style_' + (counter++); + ed.formatter.register(name, fmt); + ctrl.add(fmt.title, name); + } else + ctrl.add(fmt.title); + }); + } else { + each(ed.getParam('theme_advanced_styles', '', 'hash'), function(val, key) { + var name; + + if (val) { + name = 'style_' + (counter++); + + ed.formatter.register(name, { + inline : 'span', + classes : val, + selector : '*' + }); + + ctrl.add(t.editor.translate(key), name); + } + }); + } + }); + + // Auto import classes if the ctrl box is empty + if (ctrl.getLength() == 0) { + ctrl.onPostRender.add(function(ed, n) { + if (!ctrl.NativeListBox) { + Event.add(n.id + '_text', 'focus', t._importClasses, t); + Event.add(n.id + '_text', 'mousedown', t._importClasses, t); + Event.add(n.id + '_open', 'focus', t._importClasses, t); + Event.add(n.id + '_open', 'mousedown', t._importClasses, t); + } else + Event.add(n.id, 'focus', t._importClasses, t); + }); + } + + return ctrl; + }, + + _createFontSelect : function() { + var c, t = this, ed = t.editor; + + c = ed.controlManager.createListBox('fontselect', { + title : 'advanced.fontdefault', + onselect : function(v) { + var cur = c.items[c.selectedIndex]; + + if (!v && cur) { + ed.execCommand('FontName', false, cur.value); + return; + } + + ed.execCommand('FontName', false, v); + + // Fake selection, execCommand will fire a nodeChange and update the selection + c.select(function(sv) { + return v == sv; + }); + + if (cur && cur.value == v) { + c.select(null); + } + + return false; // No auto select + } + }); + + if (c) { + each(ed.getParam('theme_advanced_fonts', t.settings.theme_advanced_fonts, 'hash'), function(v, k) { + c.add(ed.translate(k), v, {style : v.indexOf('dings') == -1 ? 'font-family:' + v : ''}); + }); + } + + return c; + }, + + _createFontSizeSelect : function() { + var t = this, ed = t.editor, c, i = 0, cl = []; + + c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', onselect : function(v) { + var cur = c.items[c.selectedIndex]; + + if (!v && cur) { + cur = cur.value; + + if (cur['class']) { + ed.formatter.toggle('fontsize_class', {value : cur['class']}); + ed.undoManager.add(); + ed.nodeChanged(); + } else { + ed.execCommand('FontSize', false, cur.fontSize); + } + + return; + } + + if (v['class']) { + ed.focus(); + ed.undoManager.add(); + ed.formatter.toggle('fontsize_class', {value : v['class']}); + ed.undoManager.add(); + ed.nodeChanged(); + } else + ed.execCommand('FontSize', false, v.fontSize); + + // Fake selection, execCommand will fire a nodeChange and update the selection + c.select(function(sv) { + return v == sv; + }); + + if (cur && (cur.value.fontSize == v.fontSize || cur.value['class'] == v['class'])) { + c.select(null); + } + + return false; // No auto select + }}); + + if (c) { + each(t.settings.theme_advanced_font_sizes, function(v, k) { + var fz = v.fontSize; + + if (fz >= 1 && fz <= 7) + fz = t.sizes[parseInt(fz) - 1] + 'pt'; + + c.add(k, v, {'style' : 'font-size:' + fz, 'class' : 'mceFontSize' + (i++) + (' ' + (v['class'] || ''))}); + }); + } + + return c; + }, + + _createBlockFormats : function() { + var c, fmts = { + p : 'advanced.paragraph', + address : 'advanced.address', + pre : 'advanced.pre', + h1 : 'advanced.h1', + h2 : 'advanced.h2', + h3 : 'advanced.h3', + h4 : 'advanced.h4', + h5 : 'advanced.h5', + h6 : 'advanced.h6', + div : 'advanced.div', + blockquote : 'advanced.blockquote', + code : 'advanced.code', + dt : 'advanced.dt', + dd : 'advanced.dd', + samp : 'advanced.samp' + }, t = this; + + c = t.editor.controlManager.createListBox('formatselect', {title : 'advanced.block', onselect : function(v) { + t.editor.execCommand('FormatBlock', false, v); + return false; + }}); + + if (c) { + each(t.editor.getParam('theme_advanced_blockformats', t.settings.theme_advanced_blockformats, 'hash'), function(v, k) { + c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v}); + }); + } + + return c; + }, + + _createForeColorMenu : function() { + var c, t = this, s = t.settings, o = {}, v; + + if (s.theme_advanced_more_colors) { + o.more_colors_func = function() { + t._mceColorPicker(0, { + color : c.value, + func : function(co) { + c.setColor(co); + } + }); + }; + } + + if (v = s.theme_advanced_text_colors) + o.colors = v; + + if (s.theme_advanced_default_foreground_color) + o.default_color = s.theme_advanced_default_foreground_color; + + o.title = 'advanced.forecolor_desc'; + o.cmd = 'ForeColor'; + o.scope = this; + + c = t.editor.controlManager.createColorSplitButton('forecolor', o); + + return c; + }, + + _createBackColorMenu : function() { + var c, t = this, s = t.settings, o = {}, v; + + if (s.theme_advanced_more_colors) { + o.more_colors_func = function() { + t._mceColorPicker(0, { + color : c.value, + func : function(co) { + c.setColor(co); + } + }); + }; + } + + if (v = s.theme_advanced_background_colors) + o.colors = v; + + if (s.theme_advanced_default_background_color) + o.default_color = s.theme_advanced_default_background_color; + + o.title = 'advanced.backcolor_desc'; + o.cmd = 'HiliteColor'; + o.scope = this; + + c = t.editor.controlManager.createColorSplitButton('backcolor', o); + + return c; + }, + + renderUI : function(o) { + var n, ic, tb, t = this, ed = t.editor, s = t.settings, sc, p, nl; + + if (ed.settings) { + ed.settings.aria_label = s.aria_label + ed.getLang('advanced.help_shortcut'); + } + + // TODO: ACC Should have an aria-describedby attribute which is user-configurable to describe what this field is actually for. + // Maybe actually inherit it from the original textara? + n = p = DOM.create('span', {role : 'application', 'aria-labelledby' : ed.id + '_voice', id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '')}); + DOM.add(n, 'span', {'class': 'mceVoiceLabel', 'style': 'display:none;', id: ed.id + '_voice'}, s.aria_label); + + if (!DOM.boxModel) + n = DOM.add(n, 'div', {'class' : 'mceOldBoxModel'}); + + n = sc = DOM.add(n, 'table', {role : "presentation", id : ed.id + '_tbl', 'class' : 'mceLayout', cellSpacing : 0, cellPadding : 0}); + n = tb = DOM.add(n, 'tbody'); + + switch ((s.theme_advanced_layout_manager || '').toLowerCase()) { + case "rowlayout": + ic = t._rowLayout(s, tb, o); + break; + + case "customlayout": + ic = ed.execCallback("theme_advanced_custom_layout", s, tb, o, p); + break; + + default: + ic = t._simpleLayout(s, tb, o, p); + } + + n = o.targetNode; + + // Add classes to first and last TRs + nl = sc.rows; + DOM.addClass(nl[0], 'mceFirst'); + DOM.addClass(nl[nl.length - 1], 'mceLast'); + + // Add classes to first and last TDs + each(DOM.select('tr', tb), function(n) { + DOM.addClass(n.firstChild, 'mceFirst'); + DOM.addClass(n.childNodes[n.childNodes.length - 1], 'mceLast'); + }); + + if (DOM.get(s.theme_advanced_toolbar_container)) + DOM.get(s.theme_advanced_toolbar_container).appendChild(p); + else + DOM.insertAfter(p, n); + + Event.add(ed.id + '_path_row', 'click', function(e) { + e = e.target; + + if (e.nodeName == 'A') { + t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1')); + + return Event.cancel(e); + } + }); +/* + if (DOM.get(ed.id + '_path_row')) { + Event.add(ed.id + '_tbl', 'mouseover', function(e) { + var re; + + e = e.target; + + if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) { + re = DOM.get(ed.id + '_path_row'); + t.lastPath = re.innerHTML; + DOM.setHTML(re, e.parentNode.title); + } + }); + + Event.add(ed.id + '_tbl', 'mouseout', function(e) { + if (t.lastPath) { + DOM.setHTML(ed.id + '_path_row', t.lastPath); + t.lastPath = 0; + } + }); + } +*/ + + if (!ed.getParam('accessibility_focus')) + Event.add(DOM.add(p, 'a', {href : '#'}, ''), 'focus', function() {tinyMCE.get(ed.id).focus();}); + + if (s.theme_advanced_toolbar_location == 'external') + o.deltaHeight = 0; + + t.deltaHeight = o.deltaHeight; + o.targetNode = null; + + ed.onKeyDown.add(function(ed, evt) { + var DOM_VK_F10 = 121, DOM_VK_F11 = 122; + + if (evt.altKey) { + if (evt.keyCode === DOM_VK_F10) { + t.toolbarGroup.focus(); + return Event.cancel(evt); + } else if (evt.keyCode === DOM_VK_F11) { + DOM.get(ed.id + '_path_row').focus(); + return Event.cancel(evt); + } + } + }); + + // alt+0 is the UK recommended shortcut for accessing the list of access controls. + ed.addShortcut('alt+0', '', 'mceShortcuts', t); + + return { + iframeContainer : ic, + editorContainer : ed.id + '_parent', + sizeContainer : sc, + deltaHeight : o.deltaHeight + }; + }, + + getInfo : function() { + return { + longname : 'Advanced theme', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + version : tinymce.majorVersion + "." + tinymce.minorVersion + } + }, + + resizeBy : function(dw, dh) { + var e = DOM.get(this.editor.id + '_ifr'); + + this.resizeTo(e.clientWidth + dw, e.clientHeight + dh); + }, + + resizeTo : function(w, h, store) { + var ed = this.editor, s = this.settings, e = DOM.get(ed.id + '_tbl'), ifr = DOM.get(ed.id + '_ifr'); + + // Boundery fix box + w = Math.max(s.theme_advanced_resizing_min_width || 100, w); + h = Math.max(s.theme_advanced_resizing_min_height || 100, h); + w = Math.min(s.theme_advanced_resizing_max_width || 0xFFFF, w); + h = Math.min(s.theme_advanced_resizing_max_height || 0xFFFF, h); + + // Resize iframe and container + DOM.setStyle(e, 'height', ''); + DOM.setStyle(ifr, 'height', h); + + if (s.theme_advanced_resize_horizontal) { + DOM.setStyle(e, 'width', ''); + DOM.setStyle(ifr, 'width', w); + + // Make sure that the size is never smaller than the over all ui + if (w < e.clientWidth) { + w = e.clientWidth; + DOM.setStyle(ifr, 'width', e.clientWidth); + } + } + + // Store away the size + if (store && s.theme_advanced_resizing_use_cookie) { + Cookie.setHash("TinyMCE_" + ed.id + "_size", { + cw : w, + ch : h + }); + } + }, + + destroy : function() { + var id = this.editor.id; + + Event.clear(id + '_resize'); + Event.clear(id + '_path_row'); + Event.clear(id + '_external_close'); + }, + + // Internal functions + + _simpleLayout : function(s, tb, o, p) { + var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c; + + if (s.readonly) { + n = DOM.add(tb, 'tr'); + n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); + return ic; + } + + // Create toolbar container at top + if (lo == 'top') + t._addToolbars(tb, o); + + // Create external toolbar + if (lo == 'external') { + n = c = DOM.create('div', {style : 'position:relative'}); + n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'}); + DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'}); + n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0}); + etb = DOM.add(n, 'tbody'); + + if (p.firstChild.className == 'mceOldBoxModel') + p.firstChild.appendChild(c); + else + p.insertBefore(c, p.firstChild); + + t._addToolbars(etb, o); + + ed.onMouseUp.add(function() { + var e = DOM.get(ed.id + '_external'); + DOM.show(e); + + DOM.hide(lastExtID); + + var f = Event.add(ed.id + '_external_close', 'click', function() { + DOM.hide(ed.id + '_external'); + Event.remove(ed.id + '_external_close', 'click', f); + }); + + DOM.show(e); + DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1); + + // Fixes IE rendering bug + DOM.hide(e); + DOM.show(e); + e.style.filter = ''; + + lastExtID = ed.id + '_external'; + + e = null; + }); + } + + if (sl == 'top') + t._addStatusBar(tb, o); + + // Create iframe container + if (!s.theme_advanced_toolbar_container) { + n = DOM.add(tb, 'tr'); + n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); + } + + // Create toolbar container at bottom + if (lo == 'bottom') + t._addToolbars(tb, o); + + if (sl == 'bottom') + t._addStatusBar(tb, o); + + return ic; + }, + + _rowLayout : function(s, tb, o) { + var t = this, ed = t.editor, dc, da, cf = ed.controlManager, n, ic, to, a; + + dc = s.theme_advanced_containers_default_class || ''; + da = s.theme_advanced_containers_default_align || 'center'; + + each(explode(s.theme_advanced_containers || ''), function(c, i) { + var v = s['theme_advanced_container_' + c] || ''; + + switch (c.toLowerCase()) { + case 'mceeditor': + n = DOM.add(tb, 'tr'); + n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); + break; + + case 'mceelementpath': + t._addStatusBar(tb, o); + break; + + default: + a = (s['theme_advanced_container_' + c + '_align'] || da).toLowerCase(); + a = 'mce' + t._ufirst(a); + + n = DOM.add(DOM.add(tb, 'tr'), 'td', { + 'class' : 'mceToolbar ' + (s['theme_advanced_container_' + c + '_class'] || dc) + ' ' + a || da + }); + + to = cf.createToolbar("toolbar" + i); + t._addControls(v, to); + DOM.setHTML(n, to.renderHTML()); + o.deltaHeight -= s.theme_advanced_row_height; + } + }); + + return ic; + }, + + _addControls : function(v, tb) { + var t = this, s = t.settings, di, cf = t.editor.controlManager; + + if (s.theme_advanced_disable && !t._disabled) { + di = {}; + + each(explode(s.theme_advanced_disable), function(v) { + di[v] = 1; + }); + + t._disabled = di; + } else + di = t._disabled; + + each(explode(v), function(n) { + var c; + + if (di && di[n]) + return; + + // Compatiblity with 2.x + if (n == 'tablecontrols') { + each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"], function(n) { + n = t.createControl(n, cf); + + if (n) + tb.add(n); + }); + + return; + } + + c = t.createControl(n, cf); + + if (c) + tb.add(c); + }); + }, + + _addToolbars : function(c, o) { + var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a, toolbarGroup; + + toolbarGroup = cf.createToolbarGroup('toolbargroup', { + 'name': ed.getLang('advanced.toolbar'), + 'tab_focus_toolbar':ed.getParam('theme_advanced_tab_focus_toolbar') + }); + + t.toolbarGroup = toolbarGroup; + + a = s.theme_advanced_toolbar_align.toLowerCase(); + a = 'mce' + t._ufirst(a); + + n = DOM.add(DOM.add(c, 'tr', {role: 'presentation'}), 'td', {'class' : 'mceToolbar ' + a, "role":"presentation"}); + + // Create toolbar and add the controls + for (i=1; (v = s['theme_advanced_buttons' + i]); i++) { + tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i}); + + if (s['theme_advanced_buttons' + i + '_add']) + v += ',' + s['theme_advanced_buttons' + i + '_add']; + + if (s['theme_advanced_buttons' + i + '_add_before']) + v = s['theme_advanced_buttons' + i + '_add_before'] + ',' + v; + + t._addControls(v, tb); + toolbarGroup.add(tb); + + o.deltaHeight -= s.theme_advanced_row_height; + } + h.push(toolbarGroup.renderHTML()); + h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '')); + DOM.setHTML(n, h.join('')); + }, + + _addStatusBar : function(tb, o) { + var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td; + + n = DOM.add(tb, 'tr'); + n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'}); + n = DOM.add(n, 'div', {id : ed.id + '_path_row', 'role': 'group', 'aria-labelledby': ed.id + '_path_voice'}); + if (s.theme_advanced_path) { + DOM.add(n, 'span', {id: ed.id + '_path_voice'}, ed.translate('advanced.path')); + DOM.add(n, 'span', {}, ': '); + } else { + DOM.add(n, 'span', {}, ' '); + } + + + if (s.theme_advanced_resizing) { + DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize'}); + + if (s.theme_advanced_resizing_use_cookie) { + ed.onPostRender.add(function() { + var o = Cookie.getHash("TinyMCE_" + ed.id + "_size"), c = DOM.get(ed.id + '_tbl'); + + if (!o) + return; + + t.resizeTo(o.cw, o.ch); + }); + } + + ed.onPostRender.add(function() { + Event.add(ed.id + '_resize', 'click', function(e) { + e.preventDefault(); + }); + + Event.add(ed.id + '_resize', 'mousedown', function(e) { + var mouseMoveHandler1, mouseMoveHandler2, + mouseUpHandler1, mouseUpHandler2, + startX, startY, startWidth, startHeight, width, height, ifrElm; + + function resizeOnMove(e) { + e.preventDefault(); + + width = startWidth + (e.screenX - startX); + height = startHeight + (e.screenY - startY); + + t.resizeTo(width, height); + }; + + function endResize(e) { + // Stop listening + Event.remove(DOM.doc, 'mousemove', mouseMoveHandler1); + Event.remove(ed.getDoc(), 'mousemove', mouseMoveHandler2); + Event.remove(DOM.doc, 'mouseup', mouseUpHandler1); + Event.remove(ed.getDoc(), 'mouseup', mouseUpHandler2); + + width = startWidth + (e.screenX - startX); + height = startHeight + (e.screenY - startY); + t.resizeTo(width, height, true); + }; + + e.preventDefault(); + + // Get the current rect size + startX = e.screenX; + startY = e.screenY; + ifrElm = DOM.get(t.editor.id + '_ifr'); + startWidth = width = ifrElm.clientWidth; + startHeight = height = ifrElm.clientHeight; + + // Register envent handlers + mouseMoveHandler1 = Event.add(DOM.doc, 'mousemove', resizeOnMove); + mouseMoveHandler2 = Event.add(ed.getDoc(), 'mousemove', resizeOnMove); + mouseUpHandler1 = Event.add(DOM.doc, 'mouseup', endResize); + mouseUpHandler2 = Event.add(ed.getDoc(), 'mouseup', endResize); + }); + }); + } + + o.deltaHeight -= 21; + n = tb = null; + }, + + _updateUndoStatus : function(ed) { + var cm = ed.controlManager; + + cm.setDisabled('undo', !ed.undoManager.hasUndo() && !ed.typing); + cm.setDisabled('redo', !ed.undoManager.hasRedo()); + }, + + _nodeChanged : function(ed, cm, n, co, ob) { + var t = this, p, de = 0, v, c, s = t.settings, cl, fz, fn, fc, bc, formatNames, matches; + + tinymce.each(t.stateControls, function(c) { + cm.setActive(c, ed.queryCommandState(t.controls[c][1])); + }); + + function getParent(name) { + var i, parents = ob.parents, func = name; + + if (typeof(name) == 'string') { + func = function(node) { + return node.nodeName == name; + }; + } + + for (i = 0; i < parents.length; i++) { + if (func(parents[i])) + return parents[i]; + } + }; + + cm.setActive('visualaid', ed.hasVisual); + t._updateUndoStatus(ed); + cm.setDisabled('outdent', !ed.queryCommandState('Outdent')); + + p = getParent('A'); + if (c = cm.get('link')) { + if (!p || !p.name) { + c.setDisabled(!p && co); + c.setActive(!!p); + } + } + + if (c = cm.get('unlink')) { + c.setDisabled(!p && co); + c.setActive(!!p && !p.name); + } + + if (c = cm.get('anchor')) { + c.setActive(!co && !!p && p.name); + } + + p = getParent('IMG'); + if (c = cm.get('image')) + c.setActive(!co && !!p && n.className.indexOf('mceItem') == -1); + + if (c = cm.get('styleselect')) { + t._importClasses(); + + formatNames = []; + each(c.items, function(item) { + formatNames.push(item.value); + }); + + matches = ed.formatter.matchAll(formatNames); + c.select(matches[0]); + } + + if (c = cm.get('formatselect')) { + p = getParent(DOM.isBlock); + + if (p) + c.select(p.nodeName.toLowerCase()); + } + + // Find out current fontSize, fontFamily and fontClass + getParent(function(n) { + if (n.nodeName === 'SPAN') { + if (!cl && n.className) + cl = n.className; + } + + if (ed.dom.is(n, s.theme_advanced_font_selector)) { + if (!fz && n.style.fontSize) + fz = n.style.fontSize; + + if (!fn && n.style.fontFamily) + fn = n.style.fontFamily.replace(/[\"\']+/g, '').replace(/^([^,]+).*/, '$1').toLowerCase(); + + if (!fc && n.style.color) + fc = n.style.color; + + if (!bc && n.style.backgroundColor) + bc = n.style.backgroundColor; + } + + return false; + }); + + if (c = cm.get('fontselect')) { + c.select(function(v) { + return v.replace(/^([^,]+).*/, '$1').toLowerCase() == fn; + }); + } + + // Select font size + if (c = cm.get('fontsizeselect')) { + // Use computed style + if (s.theme_advanced_runtime_fontsize && !fz && !cl) + fz = ed.dom.getStyle(n, 'fontSize', true); + + c.select(function(v) { + if (v.fontSize && v.fontSize === fz) + return true; + + if (v['class'] && v['class'] === cl) + return true; + }); + } + + if (s.theme_advanced_show_current_color) { + function updateColor(controlId, color) { + if (c = cm.get(controlId)) { + if (!color) + color = c.settings.default_color; + if (color !== c.value) { + c.displayColor(color); + } + } + } + updateColor('forecolor', fc); + updateColor('backcolor', bc); + } + + if (s.theme_advanced_show_current_color) { + function updateColor(controlId, color) { + if (c = cm.get(controlId)) { + if (!color) + color = c.settings.default_color; + if (color !== c.value) { + c.displayColor(color); + } + } + }; + + updateColor('forecolor', fc); + updateColor('backcolor', bc); + } + + if (s.theme_advanced_path && s.theme_advanced_statusbar_location) { + p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'}); + + if (t.statusKeyboardNavigation) { + t.statusKeyboardNavigation.destroy(); + t.statusKeyboardNavigation = null; + } + + DOM.setHTML(p, ''); + + getParent(function(n) { + var na = n.nodeName.toLowerCase(), u, pi, ti = ''; + + if (n.getAttribute('data-mce-bogus')) + return; + + // Ignore non element and hidden elements + if (n.nodeType != 1 || n.nodeName === 'BR' || (DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved'))) + return; + + // Handle prefix + if (tinymce.isIE && n.scopeName !== 'HTML') + na = n.scopeName + ':' + na; + + // Remove internal prefix + na = na.replace(/mce\:/g, ''); + + // Handle node name + switch (na) { + case 'b': + na = 'strong'; + break; + + case 'i': + na = 'em'; + break; + + case 'img': + if (v = DOM.getAttrib(n, 'src')) + ti += 'src: ' + v + ' '; + + break; + + case 'a': + if (v = DOM.getAttrib(n, 'name')) { + ti += 'name: ' + v + ' '; + na += '#' + v; + } + + if (v = DOM.getAttrib(n, 'href')) + ti += 'href: ' + v + ' '; + + break; + + case 'font': + if (v = DOM.getAttrib(n, 'face')) + ti += 'font: ' + v + ' '; + + if (v = DOM.getAttrib(n, 'size')) + ti += 'size: ' + v + ' '; + + if (v = DOM.getAttrib(n, 'color')) + ti += 'color: ' + v + ' '; + + break; + + case 'span': + if (v = DOM.getAttrib(n, 'style')) + ti += 'style: ' + v + ' '; + + break; + } + + if (v = DOM.getAttrib(n, 'id')) + ti += 'id: ' + v + ' '; + + if (v = n.className) { + v = v.replace(/\b\s*(webkit|mce|Apple-)\w+\s*\b/g, '') + + if (v) { + ti += 'class: ' + v + ' '; + + if (DOM.isBlock(n) || na == 'img' || na == 'span') + na += '.' + v; + } + } + + na = na.replace(/(html:)/g, ''); + na = {name : na, node : n, title : ti}; + t.onResolveName.dispatch(t, na); + ti = na.title; + na = na.name; + + //u = "javascript:tinymce.EditorManager.get('" + ed.id + "').theme._sel('" + (de++) + "');"; + pi = DOM.create('a', {'href' : "javascript:;", role: 'button', onmousedown : "return false;", title : ti, 'class' : 'mcePath_' + (de++)}, na); + + if (p.hasChildNodes()) { + p.insertBefore(DOM.create('span', {'aria-hidden': 'true'}, '\u00a0\u00bb '), p.firstChild); + p.insertBefore(pi, p.firstChild); + } else + p.appendChild(pi); + }, ed.getBody()); + + if (DOM.select('a', p).length > 0) { + t.statusKeyboardNavigation = new tinymce.ui.KeyboardNavigation({ + root: ed.id + "_path_row", + items: DOM.select('a', p), + excludeFromTabOrder: true, + onCancel: function() { + ed.focus(); + } + }, DOM); + } + } + }, + + // Commands gets called by execCommand + + _sel : function(v) { + this.editor.execCommand('mceSelectNodeDepth', false, v); + }, + + _mceInsertAnchor : function(ui, v) { + var ed = this.editor; + + ed.windowManager.open({ + url : this.url + '/anchor.htm', + width : 320 + parseInt(ed.getLang('advanced.anchor_delta_width', 0)), + height : 90 + parseInt(ed.getLang('advanced.anchor_delta_height', 0)), + inline : true + }, { + theme_url : this.url + }); + }, + + _mceCharMap : function() { + var ed = this.editor; + + ed.windowManager.open({ + url : this.url + '/charmap.htm', + width : 550 + parseInt(ed.getLang('advanced.charmap_delta_width', 0)), + height : 250 + parseInt(ed.getLang('advanced.charmap_delta_height', 0)), + inline : true + }, { + theme_url : this.url + }); + }, + + _mceHelp : function() { + var ed = this.editor; + + ed.windowManager.open({ + url : this.url + '/about.htm', + width : 480, + height : 380, + inline : true + }, { + theme_url : this.url + }); + }, + + _mceShortcuts : function() { + var ed = this.editor; + ed.windowManager.open({ + url: this.url + '/shortcuts.htm', + width: 480, + height: 380, + inline: true + }, { + theme_url: this.url + }); + }, + + _mceColorPicker : function(u, v) { + var ed = this.editor; + + v = v || {}; + + ed.windowManager.open({ + url : this.url + '/color_picker.htm', + width : 375 + parseInt(ed.getLang('advanced.colorpicker_delta_width', 0)), + height : 250 + parseInt(ed.getLang('advanced.colorpicker_delta_height', 0)), + close_previous : false, + inline : true + }, { + input_color : v.color, + func : v.func, + theme_url : this.url + }); + }, + + _mceCodeEditor : function(ui, val) { + var ed = this.editor; + + ed.windowManager.open({ + url : this.url + '/source_editor.htm', + width : parseInt(ed.getParam("theme_advanced_source_editor_width", 720)), + height : parseInt(ed.getParam("theme_advanced_source_editor_height", 580)), + inline : true, + resizable : true, + maximizable : true + }, { + theme_url : this.url + }); + }, + + _mceImage : function(ui, val) { + var ed = this.editor; + + // Internal image object like a flash placeholder + if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1) + return; + + ed.windowManager.open({ + url : this.url + '/image.htm', + width : 355 + parseInt(ed.getLang('advanced.image_delta_width', 0)), + height : 275 + parseInt(ed.getLang('advanced.image_delta_height', 0)), + inline : true + }, { + theme_url : this.url + }); + }, + + _mceLink : function(ui, val) { + var ed = this.editor; + + ed.windowManager.open({ + url : this.url + '/link.htm', + width : 310 + parseInt(ed.getLang('advanced.link_delta_width', 0)), + height : 200 + parseInt(ed.getLang('advanced.link_delta_height', 0)), + inline : true + }, { + theme_url : this.url + }); + }, + + _mceNewDocument : function() { + var ed = this.editor; + + ed.windowManager.confirm('advanced.newdocument', function(s) { + if (s) + ed.execCommand('mceSetContent', false, ''); + }); + }, + + _mceForeColor : function() { + var t = this; + + this._mceColorPicker(0, { + color: t.fgColor, + func : function(co) { + t.fgColor = co; + t.editor.execCommand('ForeColor', false, co); + } + }); + }, + + _mceBackColor : function() { + var t = this; + + this._mceColorPicker(0, { + color: t.bgColor, + func : function(co) { + t.bgColor = co; + t.editor.execCommand('HiliteColor', false, co); + } + }); + }, + + _ufirst : function(s) { + return s.substring(0, 1).toUpperCase() + s.substring(1); + } + }); + + tinymce.ThemeManager.add('advanced', tinymce.themes.AdvancedTheme); +}(tinymce)); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/image.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/image.htm new file mode 100644 index 0000000..b8ba729 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/image.htm @@ -0,0 +1,80 @@ + + + + {#advanced_dlg.image_title} + + + + + + +
                    + + +
                    +
                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + + + + +
                     
                    + x +
                    +
                    +
                    + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg new file mode 100644 index 0000000..b4c542d Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif new file mode 100644 index 0000000..cb192e6 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif new file mode 100644 index 0000000..e46de53 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif new file mode 100644 index 0000000..410c7ad Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif new file mode 100644 index 0000000..acdf408 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif new file mode 100644 index 0000000..3b04991 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/realmedia.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/realmedia.gif new file mode 100644 index 0000000..fdfe0b9 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/realmedia.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif new file mode 100644 index 0000000..5f235df Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/trans.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/trans.gif new file mode 100644 index 0000000..3884865 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/trans.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif new file mode 100644 index 0000000..3570104 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif new file mode 100644 index 0000000..ab50f2d Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js new file mode 100644 index 0000000..5b35845 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js @@ -0,0 +1,73 @@ +tinyMCEPopup.requireLangPack(); + +function init() { + var ed, tcont; + + tinyMCEPopup.resizeToInnerSize(); + ed = tinyMCEPopup.editor; + + // Give FF some time + window.setTimeout(insertHelpIFrame, 10); + + tcont = document.getElementById('plugintablecontainer'); + document.getElementById('plugins_tab').style.display = 'none'; + + var html = ""; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + + tinymce.each(ed.plugins, function(p, n) { + var info; + + if (!p.getInfo) + return; + + html += ''; + + info = p.getInfo(); + + if (info.infourl != null && info.infourl != '') + html += ''; + else + html += ''; + + if (info.authorurl != null && info.authorurl != '') + html += ''; + else + html += ''; + + html += ''; + html += ''; + + document.getElementById('plugins_tab').style.display = ''; + + }); + + html += ''; + html += '
                    ' + ed.getLang('advanced_dlg.about_plugin') + '' + ed.getLang('advanced_dlg.about_author') + '' + ed.getLang('advanced_dlg.about_version') + '
                    ' + info.longname + '' + info.longname + '' + info.author + '' + info.author + '' + info.version + '
                    '; + + tcont.innerHTML = html; + + tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion; + tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate; +} + +function insertHelpIFrame() { + var html; + + if (tinyMCEPopup.getParam('docs_url')) { + html = ''; + document.getElementById('iframecontainer').innerHTML = html; + document.getElementById('help_tab').style.display = 'block'; + document.getElementById('help_tab').setAttribute("aria-hidden", "false"); + } +} + +tinyMCEPopup.onInit.add(init); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js new file mode 100644 index 0000000..e528e4f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js @@ -0,0 +1,42 @@ +tinyMCEPopup.requireLangPack(); + +var AnchorDialog = { + init : function(ed) { + var action, elm, f = document.forms[0]; + + this.editor = ed; + elm = ed.dom.getParent(ed.selection.getNode(), 'A'); + v = ed.dom.getAttrib(elm, 'name'); + + if (v) { + this.action = 'update'; + f.anchorName.value = v; + } + + f.insert.value = ed.getLang(elm ? 'update' : 'insert'); + }, + + update : function() { + var ed = this.editor, elm, name = document.forms[0].anchorName.value; + + if (!name || !/^[a-z][a-z0-9\-\_:\.]*$/i.test(name)) { + tinyMCEPopup.alert('advanced_dlg.anchor_invalid'); + return; + } + + tinyMCEPopup.restoreSelection(); + + if (this.action != 'update') + ed.selection.collapse(1); + + elm = ed.dom.getParent(ed.selection.getNode(), 'A'); + if (elm) + elm.name = name; + else + ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : name, 'class' : 'mceItemAnchor'}, '')); + + tinyMCEPopup.close(); + } +}; + +tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js new file mode 100644 index 0000000..1cead6d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js @@ -0,0 +1,355 @@ +/** + * charmap.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +tinyMCEPopup.requireLangPack(); + +var charmap = [ + [' ', ' ', true, 'no-break space'], + ['&', '&', true, 'ampersand'], + ['"', '"', true, 'quotation mark'], +// finance + ['¢', '¢', true, 'cent sign'], + ['€', '€', true, 'euro sign'], + ['£', '£', true, 'pound sign'], + ['¥', '¥', true, 'yen sign'], +// signs + ['©', '©', true, 'copyright sign'], + ['®', '®', true, 'registered sign'], + ['™', '™', true, 'trade mark sign'], + ['‰', '‰', true, 'per mille sign'], + ['µ', 'µ', true, 'micro sign'], + ['·', '·', true, 'middle dot'], + ['•', '•', true, 'bullet'], + ['…', '…', true, 'three dot leader'], + ['′', '′', true, 'minutes / feet'], + ['″', '″', true, 'seconds / inches'], + ['§', '§', true, 'section sign'], + ['¶', '¶', true, 'paragraph sign'], + ['ß', 'ß', true, 'sharp s / ess-zed'], +// quotations + ['‹', '‹', true, 'single left-pointing angle quotation mark'], + ['›', '›', true, 'single right-pointing angle quotation mark'], + ['«', '«', true, 'left pointing guillemet'], + ['»', '»', true, 'right pointing guillemet'], + ['‘', '‘', true, 'left single quotation mark'], + ['’', '’', true, 'right single quotation mark'], + ['“', '“', true, 'left double quotation mark'], + ['”', '”', true, 'right double quotation mark'], + ['‚', '‚', true, 'single low-9 quotation mark'], + ['„', '„', true, 'double low-9 quotation mark'], + ['<', '<', true, 'less-than sign'], + ['>', '>', true, 'greater-than sign'], + ['≤', '≤', true, 'less-than or equal to'], + ['≥', '≥', true, 'greater-than or equal to'], + ['–', '–', true, 'en dash'], + ['—', '—', true, 'em dash'], + ['¯', '¯', true, 'macron'], + ['‾', '‾', true, 'overline'], + ['¤', '¤', true, 'currency sign'], + ['¦', '¦', true, 'broken bar'], + ['¨', '¨', true, 'diaeresis'], + ['¡', '¡', true, 'inverted exclamation mark'], + ['¿', '¿', true, 'turned question mark'], + ['ˆ', 'ˆ', true, 'circumflex accent'], + ['˜', '˜', true, 'small tilde'], + ['°', '°', true, 'degree sign'], + ['−', '−', true, 'minus sign'], + ['±', '±', true, 'plus-minus sign'], + ['÷', '÷', true, 'division sign'], + ['⁄', '⁄', true, 'fraction slash'], + ['×', '×', true, 'multiplication sign'], + ['¹', '¹', true, 'superscript one'], + ['²', '²', true, 'superscript two'], + ['³', '³', true, 'superscript three'], + ['¼', '¼', true, 'fraction one quarter'], + ['½', '½', true, 'fraction one half'], + ['¾', '¾', true, 'fraction three quarters'], +// math / logical + ['ƒ', 'ƒ', true, 'function / florin'], + ['∫', '∫', true, 'integral'], + ['∑', '∑', true, 'n-ary sumation'], + ['∞', '∞', true, 'infinity'], + ['√', '√', true, 'square root'], + ['∼', '∼', false,'similar to'], + ['≅', '≅', false,'approximately equal to'], + ['≈', '≈', true, 'almost equal to'], + ['≠', '≠', true, 'not equal to'], + ['≡', '≡', true, 'identical to'], + ['∈', '∈', false,'element of'], + ['∉', '∉', false,'not an element of'], + ['∋', '∋', false,'contains as member'], + ['∏', '∏', true, 'n-ary product'], + ['∧', '∧', false,'logical and'], + ['∨', '∨', false,'logical or'], + ['¬', '¬', true, 'not sign'], + ['∩', '∩', true, 'intersection'], + ['∪', '∪', false,'union'], + ['∂', '∂', true, 'partial differential'], + ['∀', '∀', false,'for all'], + ['∃', '∃', false,'there exists'], + ['∅', '∅', false,'diameter'], + ['∇', '∇', false,'backward difference'], + ['∗', '∗', false,'asterisk operator'], + ['∝', '∝', false,'proportional to'], + ['∠', '∠', false,'angle'], +// undefined + ['´', '´', true, 'acute accent'], + ['¸', '¸', true, 'cedilla'], + ['ª', 'ª', true, 'feminine ordinal indicator'], + ['º', 'º', true, 'masculine ordinal indicator'], + ['†', '†', true, 'dagger'], + ['‡', '‡', true, 'double dagger'], +// alphabetical special chars + ['À', 'À', true, 'A - grave'], + ['Á', 'Á', true, 'A - acute'], + ['Â', 'Â', true, 'A - circumflex'], + ['Ã', 'Ã', true, 'A - tilde'], + ['Ä', 'Ä', true, 'A - diaeresis'], + ['Å', 'Å', true, 'A - ring above'], + ['Æ', 'Æ', true, 'ligature AE'], + ['Ç', 'Ç', true, 'C - cedilla'], + ['È', 'È', true, 'E - grave'], + ['É', 'É', true, 'E - acute'], + ['Ê', 'Ê', true, 'E - circumflex'], + ['Ë', 'Ë', true, 'E - diaeresis'], + ['Ì', 'Ì', true, 'I - grave'], + ['Í', 'Í', true, 'I - acute'], + ['Î', 'Î', true, 'I - circumflex'], + ['Ï', 'Ï', true, 'I - diaeresis'], + ['Ð', 'Ð', true, 'ETH'], + ['Ñ', 'Ñ', true, 'N - tilde'], + ['Ò', 'Ò', true, 'O - grave'], + ['Ó', 'Ó', true, 'O - acute'], + ['Ô', 'Ô', true, 'O - circumflex'], + ['Õ', 'Õ', true, 'O - tilde'], + ['Ö', 'Ö', true, 'O - diaeresis'], + ['Ø', 'Ø', true, 'O - slash'], + ['Œ', 'Œ', true, 'ligature OE'], + ['Š', 'Š', true, 'S - caron'], + ['Ù', 'Ù', true, 'U - grave'], + ['Ú', 'Ú', true, 'U - acute'], + ['Û', 'Û', true, 'U - circumflex'], + ['Ü', 'Ü', true, 'U - diaeresis'], + ['Ý', 'Ý', true, 'Y - acute'], + ['Ÿ', 'Ÿ', true, 'Y - diaeresis'], + ['Þ', 'Þ', true, 'THORN'], + ['à', 'à', true, 'a - grave'], + ['á', 'á', true, 'a - acute'], + ['â', 'â', true, 'a - circumflex'], + ['ã', 'ã', true, 'a - tilde'], + ['ä', 'ä', true, 'a - diaeresis'], + ['å', 'å', true, 'a - ring above'], + ['æ', 'æ', true, 'ligature ae'], + ['ç', 'ç', true, 'c - cedilla'], + ['è', 'è', true, 'e - grave'], + ['é', 'é', true, 'e - acute'], + ['ê', 'ê', true, 'e - circumflex'], + ['ë', 'ë', true, 'e - diaeresis'], + ['ì', 'ì', true, 'i - grave'], + ['í', 'í', true, 'i - acute'], + ['î', 'î', true, 'i - circumflex'], + ['ï', 'ï', true, 'i - diaeresis'], + ['ð', 'ð', true, 'eth'], + ['ñ', 'ñ', true, 'n - tilde'], + ['ò', 'ò', true, 'o - grave'], + ['ó', 'ó', true, 'o - acute'], + ['ô', 'ô', true, 'o - circumflex'], + ['õ', 'õ', true, 'o - tilde'], + ['ö', 'ö', true, 'o - diaeresis'], + ['ø', 'ø', true, 'o slash'], + ['œ', 'œ', true, 'ligature oe'], + ['š', 'š', true, 's - caron'], + ['ù', 'ù', true, 'u - grave'], + ['ú', 'ú', true, 'u - acute'], + ['û', 'û', true, 'u - circumflex'], + ['ü', 'ü', true, 'u - diaeresis'], + ['ý', 'ý', true, 'y - acute'], + ['þ', 'þ', true, 'thorn'], + ['ÿ', 'ÿ', true, 'y - diaeresis'], + ['Α', 'Α', true, 'Alpha'], + ['Β', 'Β', true, 'Beta'], + ['Γ', 'Γ', true, 'Gamma'], + ['Δ', 'Δ', true, 'Delta'], + ['Ε', 'Ε', true, 'Epsilon'], + ['Ζ', 'Ζ', true, 'Zeta'], + ['Η', 'Η', true, 'Eta'], + ['Θ', 'Θ', true, 'Theta'], + ['Ι', 'Ι', true, 'Iota'], + ['Κ', 'Κ', true, 'Kappa'], + ['Λ', 'Λ', true, 'Lambda'], + ['Μ', 'Μ', true, 'Mu'], + ['Ν', 'Ν', true, 'Nu'], + ['Ξ', 'Ξ', true, 'Xi'], + ['Ο', 'Ο', true, 'Omicron'], + ['Π', 'Π', true, 'Pi'], + ['Ρ', 'Ρ', true, 'Rho'], + ['Σ', 'Σ', true, 'Sigma'], + ['Τ', 'Τ', true, 'Tau'], + ['Υ', 'Υ', true, 'Upsilon'], + ['Φ', 'Φ', true, 'Phi'], + ['Χ', 'Χ', true, 'Chi'], + ['Ψ', 'Ψ', true, 'Psi'], + ['Ω', 'Ω', true, 'Omega'], + ['α', 'α', true, 'alpha'], + ['β', 'β', true, 'beta'], + ['γ', 'γ', true, 'gamma'], + ['δ', 'δ', true, 'delta'], + ['ε', 'ε', true, 'epsilon'], + ['ζ', 'ζ', true, 'zeta'], + ['η', 'η', true, 'eta'], + ['θ', 'θ', true, 'theta'], + ['ι', 'ι', true, 'iota'], + ['κ', 'κ', true, 'kappa'], + ['λ', 'λ', true, 'lambda'], + ['μ', 'μ', true, 'mu'], + ['ν', 'ν', true, 'nu'], + ['ξ', 'ξ', true, 'xi'], + ['ο', 'ο', true, 'omicron'], + ['π', 'π', true, 'pi'], + ['ρ', 'ρ', true, 'rho'], + ['ς', 'ς', true, 'final sigma'], + ['σ', 'σ', true, 'sigma'], + ['τ', 'τ', true, 'tau'], + ['υ', 'υ', true, 'upsilon'], + ['φ', 'φ', true, 'phi'], + ['χ', 'χ', true, 'chi'], + ['ψ', 'ψ', true, 'psi'], + ['ω', 'ω', true, 'omega'], +// symbols + ['ℵ', 'ℵ', false,'alef symbol'], + ['ϖ', 'ϖ', false,'pi symbol'], + ['ℜ', 'ℜ', false,'real part symbol'], + ['ϑ','ϑ', false,'theta symbol'], + ['ϒ', 'ϒ', false,'upsilon - hook symbol'], + ['℘', '℘', false,'Weierstrass p'], + ['ℑ', 'ℑ', false,'imaginary part'], +// arrows + ['←', '←', true, 'leftwards arrow'], + ['↑', '↑', true, 'upwards arrow'], + ['→', '→', true, 'rightwards arrow'], + ['↓', '↓', true, 'downwards arrow'], + ['↔', '↔', true, 'left right arrow'], + ['↵', '↵', false,'carriage return'], + ['⇐', '⇐', false,'leftwards double arrow'], + ['⇑', '⇑', false,'upwards double arrow'], + ['⇒', '⇒', false,'rightwards double arrow'], + ['⇓', '⇓', false,'downwards double arrow'], + ['⇔', '⇔', false,'left right double arrow'], + ['∴', '∴', false,'therefore'], + ['⊂', '⊂', false,'subset of'], + ['⊃', '⊃', false,'superset of'], + ['⊄', '⊄', false,'not a subset of'], + ['⊆', '⊆', false,'subset of or equal to'], + ['⊇', '⊇', false,'superset of or equal to'], + ['⊕', '⊕', false,'circled plus'], + ['⊗', '⊗', false,'circled times'], + ['⊥', '⊥', false,'perpendicular'], + ['⋅', '⋅', false,'dot operator'], + ['⌈', '⌈', false,'left ceiling'], + ['⌉', '⌉', false,'right ceiling'], + ['⌊', '⌊', false,'left floor'], + ['⌋', '⌋', false,'right floor'], + ['⟨', '〈', false,'left-pointing angle bracket'], + ['⟩', '〉', false,'right-pointing angle bracket'], + ['◊', '◊', true, 'lozenge'], + ['♠', '♠', true, 'black spade suit'], + ['♣', '♣', true, 'black club suit'], + ['♥', '♥', true, 'black heart suit'], + ['♦', '♦', true, 'black diamond suit'], + [' ', ' ', false,'en space'], + [' ', ' ', false,'em space'], + [' ', ' ', false,'thin space'], + ['‌', '‌', false,'zero width non-joiner'], + ['‍', '‍', false,'zero width joiner'], + ['‎', '‎', false,'left-to-right mark'], + ['‏', '‏', false,'right-to-left mark'], + ['­', '­', false,'soft hyphen'] +]; + +tinyMCEPopup.onInit.add(function() { + tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML()); + addKeyboardNavigation(); +}); + +function addKeyboardNavigation(){ + var tableElm, cells, settings; + + cells = tinyMCEPopup.dom.select(".charmaplink", "charmapgroup"); + + settings ={ + root: "charmapgroup", + items: cells + }; + + tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', settings, tinyMCEPopup.dom); +} + +function renderCharMapHTML() { + var charsPerRow = 20, tdWidth=20, tdHeight=20, i; + var html = '
                    '+ + ''; + var cols=-1; + + for (i=0; i' + + '' + + charmap[i][1] + + ''; + if ((cols+1) % charsPerRow == 0) + html += ''; + } + } + + if (cols % charsPerRow > 0) { + var padd = charsPerRow - (cols % charsPerRow); + for (var i=0; i '; + } + + html += '
                    '; + html = html.replace(/<\/tr>/g, ''); + + return html; +} + +function insertChar(chr) { + tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';'); + + // Refocus in window + if (tinyMCEPopup.isWindow) + window.focus(); + + tinyMCEPopup.editor.focus(); + tinyMCEPopup.close(); +} + +function previewChar(codeA, codeB, codeN) { + var elmA = document.getElementById('codeA'); + var elmB = document.getElementById('codeB'); + var elmV = document.getElementById('codeV'); + var elmN = document.getElementById('codeN'); + + if (codeA=='#160;') { + elmV.innerHTML = '__'; + } else { + elmV.innerHTML = '&' + codeA; + } + + elmB.innerHTML = '&' + codeA; + elmA.innerHTML = '&' + codeB; + elmN.innerHTML = codeN; +} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js new file mode 100644 index 0000000..7decac5 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js @@ -0,0 +1,329 @@ +tinyMCEPopup.requireLangPack(); + +var detail = 50, strhex = "0123456789ABCDEF", i, isMouseDown = false, isMouseOver = false; + +var colors = [ + "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033", + "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099", + "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff", + "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033", + "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399", + "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff", + "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333", + "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399", + "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff", + "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633", + "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699", + "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff", + "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633", + "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999", + "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff", + "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933", + "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999", + "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff", + "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33", + "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99", + "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff", + "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33", + "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99", + "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff", + "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33", + "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99", + "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff" +]; + +var named = { + '#F0F8FF':'Alice Blue','#FAEBD7':'Antique White','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige', + '#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'Blanched Almond','#0000FF':'Blue','#8A2BE2':'Blue Violet','#A52A2A':'Brown', + '#DEB887':'Burly Wood','#5F9EA0':'Cadet Blue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'Cornflower Blue', + '#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'Dark Blue','#008B8B':'Dark Cyan','#B8860B':'Dark Golden Rod', + '#A9A9A9':'Dark Gray','#A9A9A9':'Dark Grey','#006400':'Dark Green','#BDB76B':'Dark Khaki','#8B008B':'Dark Magenta','#556B2F':'Dark Olive Green', + '#FF8C00':'Darkorange','#9932CC':'Dark Orchid','#8B0000':'Dark Red','#E9967A':'Dark Salmon','#8FBC8F':'Dark Sea Green','#483D8B':'Dark Slate Blue', + '#2F4F4F':'Dark Slate Gray','#2F4F4F':'Dark Slate Grey','#00CED1':'Dark Turquoise','#9400D3':'Dark Violet','#FF1493':'Deep Pink','#00BFFF':'Deep Sky Blue', + '#696969':'Dim Gray','#696969':'Dim Grey','#1E90FF':'Dodger Blue','#B22222':'Fire Brick','#FFFAF0':'Floral White','#228B22':'Forest Green', + '#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'Ghost White','#FFD700':'Gold','#DAA520':'Golden Rod','#808080':'Gray','#808080':'Grey', + '#008000':'Green','#ADFF2F':'Green Yellow','#F0FFF0':'Honey Dew','#FF69B4':'Hot Pink','#CD5C5C':'Indian Red','#4B0082':'Indigo','#FFFFF0':'Ivory', + '#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'Lavender Blush','#7CFC00':'Lawn Green','#FFFACD':'Lemon Chiffon','#ADD8E6':'Light Blue', + '#F08080':'Light Coral','#E0FFFF':'Light Cyan','#FAFAD2':'Light Golden Rod Yellow','#D3D3D3':'Light Gray','#D3D3D3':'Light Grey','#90EE90':'Light Green', + '#FFB6C1':'Light Pink','#FFA07A':'Light Salmon','#20B2AA':'Light Sea Green','#87CEFA':'Light Sky Blue','#778899':'Light Slate Gray','#778899':'Light Slate Grey', + '#B0C4DE':'Light Steel Blue','#FFFFE0':'Light Yellow','#00FF00':'Lime','#32CD32':'Lime Green','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon', + '#66CDAA':'Medium Aqua Marine','#0000CD':'Medium Blue','#BA55D3':'Medium Orchid','#9370D8':'Medium Purple','#3CB371':'Medium Sea Green','#7B68EE':'Medium Slate Blue', + '#00FA9A':'Medium Spring Green','#48D1CC':'Medium Turquoise','#C71585':'Medium Violet Red','#191970':'Midnight Blue','#F5FFFA':'Mint Cream','#FFE4E1':'Misty Rose','#FFE4B5':'Moccasin', + '#FFDEAD':'Navajo White','#000080':'Navy','#FDF5E6':'Old Lace','#808000':'Olive','#6B8E23':'Olive Drab','#FFA500':'Orange','#FF4500':'Orange Red','#DA70D6':'Orchid', + '#EEE8AA':'Pale Golden Rod','#98FB98':'Pale Green','#AFEEEE':'Pale Turquoise','#D87093':'Pale Violet Red','#FFEFD5':'Papaya Whip','#FFDAB9':'Peach Puff', + '#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'Powder Blue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'Rosy Brown','#4169E1':'Royal Blue', + '#8B4513':'Saddle Brown','#FA8072':'Salmon','#F4A460':'Sandy Brown','#2E8B57':'Sea Green','#FFF5EE':'Sea Shell','#A0522D':'Sienna','#C0C0C0':'Silver', + '#87CEEB':'Sky Blue','#6A5ACD':'Slate Blue','#708090':'Slate Gray','#708090':'Slate Grey','#FFFAFA':'Snow','#00FF7F':'Spring Green', + '#4682B4':'Steel Blue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet', + '#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'White Smoke','#FFFF00':'Yellow','#9ACD32':'Yellow Green' +}; + +var namedLookup = {}; + +function init() { + var inputColor = convertRGBToHex(tinyMCEPopup.getWindowArg('input_color')), key, value; + + tinyMCEPopup.resizeToInnerSize(); + + generatePicker(); + generateWebColors(); + generateNamedColors(); + + if (inputColor) { + changeFinalColor(inputColor); + + col = convertHexToRGB(inputColor); + + if (col) + updateLight(col.r, col.g, col.b); + } + + for (key in named) { + value = named[key]; + namedLookup[value.replace(/\s+/, '').toLowerCase()] = key.replace(/#/, '').toLowerCase(); + } +} + +function toHexColor(color) { + var matches, red, green, blue, toInt = parseInt; + + function hex(value) { + value = parseInt(value).toString(16); + + return value.length > 1 ? value : '0' + value; // Padd with leading zero + }; + + color = color.replace(/[\s#]+/g, '').toLowerCase(); + color = namedLookup[color] || color; + matches = /^rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)|([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})|([a-f0-9])([a-f0-9])([a-f0-9])$/.exec(color); + + if (matches) { + if (matches[1]) { + red = toInt(matches[1]); + green = toInt(matches[2]); + blue = toInt(matches[3]); + } else if (matches[4]) { + red = toInt(matches[4], 16); + green = toInt(matches[5], 16); + blue = toInt(matches[6], 16); + } else if (matches[7]) { + red = toInt(matches[7] + matches[7], 16); + green = toInt(matches[8] + matches[8], 16); + blue = toInt(matches[9] + matches[9], 16); + } + + return '#' + hex(red) + hex(green) + hex(blue); + } + + return ''; +} + +function insertAction() { + var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func'); + + tinyMCEPopup.restoreSelection(); + + if (f) + f(toHexColor(color)); + + tinyMCEPopup.close(); +} + +function showColor(color, name) { + if (name) + document.getElementById("colorname").innerHTML = name; + + document.getElementById("preview").style.backgroundColor = color; + document.getElementById("color").value = color.toUpperCase(); +} + +function convertRGBToHex(col) { + var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi"); + + if (!col) + return col; + + var rgb = col.replace(re, "$1,$2,$3").split(','); + if (rgb.length == 3) { + r = parseInt(rgb[0]).toString(16); + g = parseInt(rgb[1]).toString(16); + b = parseInt(rgb[2]).toString(16); + + r = r.length == 1 ? '0' + r : r; + g = g.length == 1 ? '0' + g : g; + b = b.length == 1 ? '0' + b : b; + + return "#" + r + g + b; + } + + return col; +} + +function convertHexToRGB(col) { + if (col.indexOf('#') != -1) { + col = col.replace(new RegExp('[^0-9A-F]', 'gi'), ''); + + r = parseInt(col.substring(0, 2), 16); + g = parseInt(col.substring(2, 4), 16); + b = parseInt(col.substring(4, 6), 16); + + return {r : r, g : g, b : b}; + } + + return null; +} + +function generatePicker() { + var el = document.getElementById('light'), h = '', i; + + for (i = 0; i < detail; i++){ + h += '
                    '; + } + + el.innerHTML = h; +} + +function generateWebColors() { + var el = document.getElementById('webcolors'), h = '', i; + + if (el.className == 'generated') + return; + + // TODO: VoiceOver doesn't seem to support legend as a label referenced by labelledby. + h += '
                    ' + + ''; + + for (i=0; i' + + ''; + if (tinyMCEPopup.editor.forcedHighContrastMode) { + h += ''; + } + h += ''; + h += ''; + if ((i+1) % 18 == 0) + h += ''; + } + + h += '
                    '; + + el.innerHTML = h; + el.className = 'generated'; + + paintCanvas(el); + enableKeyboardNavigation(el.firstChild); +} + +function paintCanvas(el) { + tinyMCEPopup.getWin().tinymce.each(tinyMCEPopup.dom.select('canvas.mceColorSwatch', el), function(canvas) { + var context; + if (canvas.getContext && (context = canvas.getContext("2d"))) { + context.fillStyle = canvas.getAttribute('data-color'); + context.fillRect(0, 0, 10, 10); + } + }); +} +function generateNamedColors() { + var el = document.getElementById('namedcolors'), h = '', n, v, i = 0; + + if (el.className == 'generated') + return; + + for (n in named) { + v = named[n]; + h += ''; + if (tinyMCEPopup.editor.forcedHighContrastMode) { + h += ''; + } + h += ''; + h += ''; + i++; + } + + el.innerHTML = h; + el.className = 'generated'; + + paintCanvas(el); + enableKeyboardNavigation(el); +} + +function enableKeyboardNavigation(el) { + tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', { + root: el, + items: tinyMCEPopup.dom.select('a', el) + }, tinyMCEPopup.dom); +} + +function dechex(n) { + return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16); +} + +function computeColor(e) { + var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB; + + x = e.offsetX ? e.offsetX : (e.target ? e.clientX - e.target.x : 0); + y = e.offsetY ? e.offsetY : (e.target ? e.clientY - e.target.y : 0); + + partWidth = document.getElementById('colors').width / 6; + partDetail = detail / 2; + imHeight = document.getElementById('colors').height; + + r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255; + g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255 + (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth); + b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth); + + coef = (imHeight - y) / imHeight; + r = 128 + (r - 128) * coef; + g = 128 + (g - 128) * coef; + b = 128 + (b - 128) * coef; + + changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b)); + updateLight(r, g, b); +} + +function updateLight(r, g, b) { + var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color; + + for (i=0; i=0) && (i'); + }, + + init : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor; + + // Setup browse button + document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image'); + if (isVisible('srcbrowser')) + document.getElementById('src').style.width = '180px'; + + e = ed.selection.getNode(); + + this.fillFileList('image_list', 'tinyMCEImageList'); + + if (e.nodeName == 'IMG') { + f.src.value = ed.dom.getAttrib(e, 'src'); + f.alt.value = ed.dom.getAttrib(e, 'alt'); + f.border.value = this.getAttrib(e, 'border'); + f.vspace.value = this.getAttrib(e, 'vspace'); + f.hspace.value = this.getAttrib(e, 'hspace'); + f.width.value = ed.dom.getAttrib(e, 'width'); + f.height.value = ed.dom.getAttrib(e, 'height'); + f.insert.value = ed.getLang('update'); + this.styleVal = ed.dom.getAttrib(e, 'style'); + selectByValue(f, 'image_list', f.src.value); + selectByValue(f, 'align', this.getAttrib(e, 'align')); + this.updateStyle(); + } + }, + + fillFileList : function(id, l) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + l = window[l]; + + if (l && l.length > 0) { + lst.options[lst.options.length] = new Option('', ''); + + tinymce.each(l, function(o) { + lst.options[lst.options.length] = new Option(o[0], o[1]); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + update : function() { + var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el; + + tinyMCEPopup.restoreSelection(); + + if (f.src.value === '') { + if (ed.selection.getNode().nodeName == 'IMG') { + ed.dom.remove(ed.selection.getNode()); + ed.execCommand('mceRepaint'); + } + + tinyMCEPopup.close(); + return; + } + + if (!ed.settings.inline_styles) { + args = tinymce.extend(args, { + vspace : nl.vspace.value, + hspace : nl.hspace.value, + border : nl.border.value, + align : getSelectValue(f, 'align') + }); + } else + args.style = this.styleVal; + + tinymce.extend(args, { + src : f.src.value.replace(/ /g, '%20'), + alt : f.alt.value, + width : f.width.value, + height : f.height.value + }); + + el = ed.selection.getNode(); + + if (el && el.nodeName == 'IMG') { + ed.dom.setAttribs(el, args); + tinyMCEPopup.editor.execCommand('mceRepaint'); + tinyMCEPopup.editor.focus(); + } else { + ed.execCommand('mceInsertContent', false, '', {skip_undo : 1}); + ed.dom.setAttribs('__mce_tmp', args); + ed.dom.setAttrib('__mce_tmp', 'id', ''); + ed.undoManager.add(); + } + + tinyMCEPopup.close(); + }, + + updateStyle : function() { + var dom = tinyMCEPopup.dom, st, v, f = document.forms[0]; + + if (tinyMCEPopup.editor.settings.inline_styles) { + st = tinyMCEPopup.dom.parseStyle(this.styleVal); + + // Handle align + v = getSelectValue(f, 'align'); + if (v) { + if (v == 'left' || v == 'right') { + st['float'] = v; + delete st['vertical-align']; + } else { + st['vertical-align'] = v; + delete st['float']; + } + } else { + delete st['float']; + delete st['vertical-align']; + } + + // Handle border + v = f.border.value; + if (v || v == '0') { + if (v == '0') + st['border'] = '0'; + else + st['border'] = v + 'px solid black'; + } else + delete st['border']; + + // Handle hspace + v = f.hspace.value; + if (v) { + delete st['margin']; + st['margin-left'] = v + 'px'; + st['margin-right'] = v + 'px'; + } else { + delete st['margin-left']; + delete st['margin-right']; + } + + // Handle vspace + v = f.vspace.value; + if (v) { + delete st['margin']; + st['margin-top'] = v + 'px'; + st['margin-bottom'] = v + 'px'; + } else { + delete st['margin-top']; + delete st['margin-bottom']; + } + + // Merge + st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st), 'img'); + this.styleVal = dom.serializeStyle(st, 'img'); + } + }, + + getAttrib : function(e, at) { + var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2; + + if (ed.settings.inline_styles) { + switch (at) { + case 'align': + if (v = dom.getStyle(e, 'float')) + return v; + + if (v = dom.getStyle(e, 'vertical-align')) + return v; + + break; + + case 'hspace': + v = dom.getStyle(e, 'margin-left') + v2 = dom.getStyle(e, 'margin-right'); + if (v && v == v2) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + + case 'vspace': + v = dom.getStyle(e, 'margin-top') + v2 = dom.getStyle(e, 'margin-bottom'); + if (v && v == v2) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + + case 'border': + v = 0; + + tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) { + sv = dom.getStyle(e, 'border-' + sv + '-width'); + + // False or not the same as prev + if (!sv || (sv != v && v !== 0)) { + v = 0; + return false; + } + + if (sv) + v = sv; + }); + + if (v) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + } + } + + if (v = dom.getAttrib(e, at)) + return v; + + return ''; + }, + + resetImageData : function() { + var f = document.forms[0]; + + f.width.value = f.height.value = ""; + }, + + updateImageData : function() { + var f = document.forms[0], t = ImageDialog; + + if (f.width.value == "") + f.width.value = t.preloadImg.width; + + if (f.height.value == "") + f.height.value = t.preloadImg.height; + }, + + getImageData : function() { + var f = document.forms[0]; + + this.preloadImg = new Image(); + this.preloadImg.onload = this.updateImageData; + this.preloadImg.onerror = this.resetImageData; + this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value); + } +}; + +ImageDialog.preInit(); +tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js new file mode 100644 index 0000000..53ff409 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js @@ -0,0 +1,153 @@ +tinyMCEPopup.requireLangPack(); + +var LinkDialog = { + preInit : function() { + var url; + + if (url = tinyMCEPopup.getParam("external_link_list_url")) + document.write(''); + }, + + init : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor; + + // Setup browse button + document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link'); + if (isVisible('hrefbrowser')) + document.getElementById('href').style.width = '180px'; + + this.fillClassList('class_list'); + this.fillFileList('link_list', 'tinyMCELinkList'); + this.fillTargetList('target_list'); + + if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) { + f.href.value = ed.dom.getAttrib(e, 'href'); + f.linktitle.value = ed.dom.getAttrib(e, 'title'); + f.insert.value = ed.getLang('update'); + selectByValue(f, 'link_list', f.href.value); + selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target')); + selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class')); + } + }, + + update : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor, e, b, href = f.href.value.replace(/ /g, '%20'); + + tinyMCEPopup.restoreSelection(); + e = ed.dom.getParent(ed.selection.getNode(), 'A'); + + // Remove element if there is no href + if (!f.href.value) { + if (e) { + b = ed.selection.getBookmark(); + ed.dom.remove(e, 1); + ed.selection.moveToBookmark(b); + tinyMCEPopup.execCommand("mceEndUndoLevel"); + tinyMCEPopup.close(); + return; + } + } + + // Create new anchor elements + if (e == null) { + ed.getDoc().execCommand("unlink", false, null); + tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1}); + + tinymce.each(ed.dom.select("a"), function(n) { + if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') { + e = n; + + ed.dom.setAttribs(e, { + href : href, + title : f.linktitle.value, + target : f.target_list ? getSelectValue(f, "target_list") : null, + 'class' : f.class_list ? getSelectValue(f, "class_list") : null + }); + } + }); + } else { + ed.dom.setAttribs(e, { + href : href, + title : f.linktitle.value, + target : f.target_list ? getSelectValue(f, "target_list") : null, + 'class' : f.class_list ? getSelectValue(f, "class_list") : null + }); + } + + // Don't move caret if selection was image + if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') { + ed.focus(); + ed.selection.select(e); + ed.selection.collapse(0); + tinyMCEPopup.storeSelection(); + } + + tinyMCEPopup.execCommand("mceEndUndoLevel"); + tinyMCEPopup.close(); + }, + + checkPrefix : function(n) { + if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email'))) + n.value = 'mailto:' + n.value; + + if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external'))) + n.value = 'http://' + n.value; + }, + + fillFileList : function(id, l) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + l = window[l]; + + if (l && l.length > 0) { + lst.options[lst.options.length] = new Option('', ''); + + tinymce.each(l, function(o) { + lst.options[lst.options.length] = new Option(o[0], o[1]); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + fillClassList : function(id) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + if (v = tinyMCEPopup.getParam('theme_advanced_styles')) { + cl = []; + + tinymce.each(v.split(';'), function(v) { + var p = v.split('='); + + cl.push({'title' : p[0], 'class' : p[1]}); + }); + } else + cl = tinyMCEPopup.editor.dom.getClasses(); + + if (cl.length > 0) { + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); + + tinymce.each(cl, function(o) { + lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + fillTargetList : function(id) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v; + + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self'); + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank'); + + if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) { + tinymce.each(v.split(','), function(v) { + v = v.split('='); + lst.options[lst.options.length] = new Option(v[0], v[1]); + }); + } + } +}; + +LinkDialog.preInit(); +tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js new file mode 100644 index 0000000..84546ad --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js @@ -0,0 +1,56 @@ +tinyMCEPopup.requireLangPack(); +tinyMCEPopup.onInit.add(onLoadInit); + +function saveContent() { + tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true}); + tinyMCEPopup.close(); +} + +function onLoadInit() { + tinyMCEPopup.resizeToInnerSize(); + + // Remove Gecko spellchecking + if (tinymce.isGecko) + document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck"); + + document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true}); + + if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) { + setWrap('soft'); + document.getElementById('wraped').checked = true; + } + + resizeInputs(); +} + +function setWrap(val) { + var v, n, s = document.getElementById('htmlSource'); + + s.wrap = val; + + if (!tinymce.isIE) { + v = s.value; + n = s.cloneNode(false); + n.setAttribute("wrap", val); + s.parentNode.replaceChild(n, s); + n.value = v; + } +} + +function toggleWordWrap(elm) { + if (elm.checked) + setWrap('soft'); + else + setWrap('off'); +} + +function resizeInputs() { + var vp = tinyMCEPopup.dom.getViewPort(window), el; + + el = document.getElementById('htmlSource'); + + if (el) { + el.style.width = (vp.w - 20) + 'px'; + el.style.height = (vp.h - 65) + 'px'; + } +} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de.js new file mode 100644 index 0000000..321e787 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de.js @@ -0,0 +1,63 @@ +tinyMCE.addI18n('de.advanced',{ +style_select:"Format", +font_size:"Schriftgr\u00F6\u00DFe", +fontdefault:"Schriftart", +block:"Vorlage", +paragraph:"Absatz", +div:"Zusammenh\u00E4ngender Bereich", +address:"Adresse", +pre:"Rohdaten", +h1:"\u00DCberschrift 1", +h2:"\u00DCberschrift 2", +h3:"\u00DCberschrift 3", +h4:"\u00DCberschrift 4", +h5:"\u00DCberschrift 5", +h6:"\u00DCberschrift 6", +blockquote:"Zitatblock", +code:"Code", +samp:"Beispiel", +dt:"Definitionsbegriff", +dd:"Definitionsbeschreibung", +bold_desc:"Fett (Strg+B)", +italic_desc:"Kursiv (Strg+I)", +underline_desc:"Unterstrichen (Strg+U)", +striketrough_desc:"Durchgestrichen", +justifyleft_desc:"Links ausgerichtet", +justifycenter_desc:"Mittig ausgerichtet", +justifyright_desc:"Rechts ausgerichtet", +justifyfull_desc:"Blocksatz", +bullist_desc:"Unsortierte Liste", +numlist_desc:"Sortierte Liste", +outdent_desc:"Ausr\u00FCcken", +indent_desc:"Einr\u00FCcken", +undo_desc:"R\u00FCckg\u00E4ngig (Strg+Z)", +redo_desc:"Wiederholen (Strg+Y)", +link_desc:"Link einf\u00FCgen/ver\u00E4ndern", +unlink_desc:"Link entfernen", +image_desc:"Bild einf\u00FCgen/ver\u00E4ndern", +cleanup_desc:"Quellcode aufr\u00E4umen", +code_desc:"HTML-Quellcode bearbeiten", +sub_desc:"Tiefgestellt", +sup_desc:"Hochgestellt", +hr_desc:"Trennlinie einf\u00FCgen", +removeformat_desc:"Formatierungen zur\u00FCcksetzen", +custom1_desc:"Benutzerdefinierte Beschreibung", +forecolor_desc:"Textfarbe", +backcolor_desc:"Hintergrundfarbe", +charmap_desc:"Sonderzeichen einf\u00FCgen", +visualaid_desc:"Hilfslinien und unsichtbare Elemente ein-/ausblenden", +anchor_desc:"Anker einf\u00FCgen/ver\u00E4ndern", +cut_desc:"Ausschneiden", +copy_desc:"Kopieren", +paste_desc:"Einf\u00FCgen", +image_props_desc:"Bildeigenschaften", +newdocument_desc:"Neues Dokument", +help_desc:"Hilfe", +blockquote_desc:"Zitatblock", +clipboard_msg:"Kopieren, Ausschneiden und Einf\u00FCgen sind im Mozilla Firefox nicht m\u00F6glich.\r\nWollen Sie mehr \u00FCber dieses Problem erfahren?", +path:"Pfad", +newdocument:"Wollen Sie wirklich den ganzen Inhalt l\u00F6schen?", +toolbar_focus:"Zur Werkzeugleiste springen: Alt+Q; Zum Editor springen: Alt-Z; Zum Elementpfad springen: Alt-X", +more_colors:"Weitere Farben", +anchor_delta_width:"13" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de_dlg.js new file mode 100644 index 0000000..353b05e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/de_dlg.js @@ -0,0 +1,51 @@ +tinyMCE.addI18n('de.advanced_dlg',{ +about_title:"\u00DCber TinyMCE", +about_general:"\u00DCber\u2026", +about_help:"Hilfe", +about_license:"Lizenzbedingungen", +about_plugins:"Plugins", +about_plugin:"Plugin", +about_author:"Urheber", +about_version:"Version", +about_loaded:"Geladene Plugins", +anchor_title:"Anker einf\u00FCgen/ver\u00E4ndern", +anchor_name:"Name des Ankers", +code_title:"HTML-Quellcode bearbeiten", +code_wordwrap:"Automatischer Zeilenumbruch", +colorpicker_title:"Farbe", +colorpicker_picker_tab:"Farbwahl", +colorpicker_picker_title:"Farbwahl", +colorpicker_palette_tab:"Palette", +colorpicker_palette_title:"Farbpalette", +colorpicker_named_tab:"Benannte Farben", +colorpicker_named_title:"Benannte Farben", +colorpicker_color:"Farbe:", +colorpicker_name:"Name:", +charmap_title:"Sonderzeichen", +image_title:"Bild einf\u00FCgen/bearbeiten", +image_src:"Adresse", +image_alt:"Alternativtext", +image_list:"Bilderliste", +image_border:"Rahmen", +image_dimensions:"Ausma\u00DFe", +image_vspace:"Vertikaler Abstand", +image_hspace:"Horizontaler Abstand", +image_align:"Ausrichtung", +image_align_baseline:"Zeile", +image_align_top:"Oben", +image_align_middle:"Mittig", +image_align_bottom:"Unten", +image_align_texttop:"Oben im Text", +image_align_textbottom:"Unten im Text", +image_align_left:"Links", +image_align_right:"Rechts", +link_title:"Link einf\u00FCgen/bearbeiten", +link_url:"Adresse", +link_target:"Fenster", +link_target_same:"Im selben Fenster \u00F6ffnen", +link_target_blank:"Neues Fenster \u00F6ffnen", +link_titlefield:"Titel", +link_is_email:"Diese Adresse scheint eine E-Mail-Adresse zu sein. M\u00F6chten Sie das dazu ben\u00F6tigte mailto: voranstellen?", +link_is_external:"Diese Adresse scheint ein externer Link zu sein. M\u00F6chten Sie das dazu ben\u00F6tigte http:// voranstellen?", +link_list:"Linkliste" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js new file mode 100644 index 0000000..fbf2989 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js @@ -0,0 +1,68 @@ +tinyMCE.addI18n('en.advanced',{ +style_select:"Styles", +font_size:"Font size", +fontdefault:"Font family", +block:"Format", +paragraph:"Paragraph", +div:"Div", +address:"Address", +pre:"Preformatted", +h1:"Heading 1", +h2:"Heading 2", +h3:"Heading 3", +h4:"Heading 4", +h5:"Heading 5", +h6:"Heading 6", +blockquote:"Blockquote", +code:"Code", +samp:"Code sample", +dt:"Definition term ", +dd:"Definition description", +bold_desc:"Bold (Ctrl+B)", +italic_desc:"Italic (Ctrl+I)", +underline_desc:"Underline (Ctrl+U)", +striketrough_desc:"Strikethrough", +justifyleft_desc:"Align left", +justifycenter_desc:"Align center", +justifyright_desc:"Align right", +justifyfull_desc:"Align full", +bullist_desc:"Unordered list", +numlist_desc:"Ordered list", +outdent_desc:"Outdent", +indent_desc:"Indent", +undo_desc:"Undo (Ctrl+Z)", +redo_desc:"Redo (Ctrl+Y)", +link_desc:"Insert/edit link", +unlink_desc:"Unlink", +image_desc:"Insert/edit image", +cleanup_desc:"Cleanup messy code", +code_desc:"Edit HTML Source", +sub_desc:"Subscript", +sup_desc:"Superscript", +hr_desc:"Insert horizontal ruler", +removeformat_desc:"Remove formatting", +custom1_desc:"Your custom description here", +forecolor_desc:"Select text color", +backcolor_desc:"Select background color", +charmap_desc:"Insert custom character", +visualaid_desc:"Toggle guidelines/invisible elements", +anchor_desc:"Insert/edit anchor", +cut_desc:"Cut", +copy_desc:"Copy", +paste_desc:"Paste", +image_props_desc:"Image properties", +newdocument_desc:"New document", +help_desc:"Help", +blockquote_desc:"Blockquote", +clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\r\nDo you want more information about this issue?", +path:"Path", +newdocument:"Are you sure you want clear all contents?", +toolbar_focus:"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X", +more_colors:"More colors", + +// Accessibility Strings +shortcuts_desc:'Accessibility Help', +help_shortcut:'. Press ALT F10 for toolbar. Press ALT 0 for help.', +rich_text_area:"Rich Text Area", +toolbar:"Toolbar" +}); diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js new file mode 100644 index 0000000..0a459be --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js @@ -0,0 +1,54 @@ +tinyMCE.addI18n('en.advanced_dlg',{ +about_title:"About TinyMCE", +about_general:"About", +about_help:"Help", +about_license:"License", +about_plugins:"Plugins", +about_plugin:"Plugin", +about_author:"Author", +about_version:"Version", +about_loaded:"Loaded plugins", +anchor_title:"Insert/edit anchor", +anchor_name:"Anchor name", +anchor_invalid:"Please specify a valid anchor name.", +code_title:"HTML Source Editor", +code_wordwrap:"Word wrap", +colorpicker_title:"Select a color", +colorpicker_picker_tab:"Picker", +colorpicker_picker_title:"Color picker", +colorpicker_palette_tab:"Palette", +colorpicker_palette_title:"Palette colors", +colorpicker_named_tab:"Named", +colorpicker_named_title:"Named colors", +colorpicker_color:"Color:", +colorpicker_name:"Name:", +charmap_title:"Select custom character", +image_title:"Insert/edit image", +image_src:"Image URL", +image_alt:"Image description", +image_list:"Image list", +image_border:"Border", +image_dimensions:"Dimensions", +image_vspace:"Vertical space", +image_hspace:"Horizontal space", +image_align:"Alignment", +image_align_baseline:"Baseline", +image_align_top:"Top", +image_align_middle:"Middle", +image_align_bottom:"Bottom", +image_align_texttop:"Text top", +image_align_textbottom:"Text bottom", +image_align_left:"Left", +image_align_right:"Right", +link_title:"Insert/edit link", +link_url:"Link URL", +link_target:"Target", +link_target_same:"Open link in the same window", +link_target_blank:"Open link in a new window", +link_titlefield:"Title", +link_is_email:"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?", +link_is_external:"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?", +link_list:"Link list", +accessibility_help:"Accessibility Help", +accessibility_usage_title:"General Usage" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo.js new file mode 100644 index 0000000..f7eb40e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.advanced',{"underline_desc":"Substrekita (Ctrl U)","italic_desc":"Kursiva (Ctrl I)","bold_desc":"Grasa (Ctrl B)",dd:"Priskribo de la difino",dt:"Enhavo de la difino",samp:"Specimeno de kodo",code:"Kodo",blockquote:"Blokcita\u0135o",h6:"Titolo 6",h5:"Titolo 5",h4:"Titolo 4",h3:"Titolo 3",h2:"Titolo 2",h1:"Titolo 1",pre:"Anta\u016dformatita",address:"Adreso",div:"Div",paragraph:"Paragrafo",block:"Formatado",fontdefault:"Tiparo","font_size":"Grandeco","style_select":"Stiloj","more_colors":"Pliaj koloroj","toolbar_focus":"Iri al iloj - Alt Q, Iri al redaktilo - Alt-Z, Iri al la adreso de la elemento - Alt-X",newdocument:"\u0108u vi certas ke vi volas forvi\u015di \u0109ion?",path:"Adreso","clipboard_msg":"Kopii/eltondi/alglui ne estas disponebla en Mozilla nek Firefox. \u0108u vi volas pliajn informojn pri \u0109i tiu problemo?","blockquote_desc":"Blokcita\u0135o","help_desc":"Helpo","newdocument_desc":"Nova dokumento","image_props_desc":"Atributoj de bildo","paste_desc":"Alglui","copy_desc":"Kopii","cut_desc":"Eltondi","anchor_desc":"Enmeti/redakti ankron","visualaid_desc":"Alterni gvidilojn/nevideblajn elementojn","charmap_desc":"Enmeti specialajn signojn","backcolor_desc":"Elekti koloron de fono","forecolor_desc":"Elekti koloron de teksto","custom1_desc":"Enmetu \u0109i tie vian tajloritan priskribon","removeformat_desc":"Forigi formaton","hr_desc":"Enmeti horizontalan disigilon","sup_desc":"Supre","sub_desc":"Sube","code_desc":"Redakti fontokodon","cleanup_desc":"Senrubigi mal\u011dustan kodon","image_desc":"Enmeti/redakti bildon","unlink_desc":"Forigi ligilon","link_desc":"Enmeti/redakti ligilon","redo_desc":"Refari (Ctrl Y)","undo_desc":"Malfari (Ctrl Z)","indent_desc":"Pligrandigi krommar\u011denon","outdent_desc":"Malpligrandigi krommar\u011denon","numlist_desc":"Numerado","bullist_desc":"Buloj","justifyfull_desc":"\u011cisrandigi","justifyright_desc":"Dekstre liniigi","justifycenter_desc":"Centrigi","justifyleft_desc":"Maldekstre liniigi","striketrough_desc":"Strekita","anchor_delta_height":"","anchor_delta_width":"","charmap_delta_height":"","charmap_delta_width":"","colorpicker_delta_height":"","colorpicker_delta_width":"","link_delta_height":"","link_delta_width":"","image_delta_height":"","image_delta_width":""}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo_dlg.js new file mode 100644 index 0000000..8564f7e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/eo_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.advanced_dlg',{"link_list":"Listo de ligiloj","link_is_external":"La entajpita adreso \u015dajne kondukas al ekstera ligilo. \u0108u vi volas aldoni la necesan prefikson http://?","link_is_email":"La entajpita adreso \u015dajnas retpo\u015dtadreso. \u0108u vi volas aldoni la necesan prefikson mailto:?","link_titlefield":"Titolo","link_target_blank":"Malfermi ligilon en novan fenestron","link_target_same":"Malfermi ligilon en la saman fenestron","link_target":"Celo","link_url":"Adreso de ligilo","link_title":"Enmeti/redakti ligilon","image_align_right":"Dekstre","image_align_left":"Maldekstre","image_align_textbottom":"Tekstosubo","image_align_texttop":"Tekstosupro","image_align_bottom":"Sube","image_align_middle":"Meze","image_align_top":"Supre","image_align_baseline":"Sur tekstlinio","image_align":"Liniigo","image_hspace":"Horizontala spaco","image_vspace":"Vertikala spaco","image_dimensions":"Dimensioj","image_alt":"Priskribo de bildo","image_list":"Listo de bildo","image_border":"Bordero","image_src":"Adreso de bildo","image_title":"Enmeti/redakti bildon","charmap_title":"Elekti tajloritajn signojn","colorpicker_name":"Nomo:","colorpicker_color":"Koloro:","colorpicker_named_title":"Tajloritaj Koloroj","colorpicker_named_tab":"Tajloritaj","colorpicker_palette_title":"Kolorpaletro","colorpicker_palette_tab":"Paletro","colorpicker_picker_title":"Kolorredaktilo","colorpicker_picker_tab":"Redaktilo","colorpicker_title":"Elektu koloron","code_wordwrap":"A\u016dtomata linisalto","code_title":"HTML-Redaktilo","anchor_name":"Nomo de ankro","anchor_title":"Enmeti/redakti ankron","about_loaded":"Instalitaj kromprogramoj","about_version":"Versio","about_author":"A\u016dtoro","about_plugin":"Kromprogramo","about_plugins":"Kromprogramoj","about_license":"Permesilo","about_help":"Helpo","about_general":"Pri","about_title":"Pri TinyMCE","anchor_invalid":"Bonvole, uzu validan nomon por la ankro."}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es.js new file mode 100644 index 0000000..1f13ecc --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es.js @@ -0,0 +1,62 @@ +tinyMCE.addI18n('es.advanced',{ +style_select:"Estilos", +font_size:"Tama\u00F1o", +fontdefault:"Fuente", +block:"Formato", +paragraph:"P\u00E1rrafo", +div:"Div", +address:"Direcci\u00F3n", +pre:"Preformateado", +h1:"Encabezado 1", +h2:"Encabezado 2", +h3:"Encabezado 3", +h4:"Encabezado 4", +h5:"Encabezado 5", +h6:"Encabezado 6", +blockquote:"Cita", +code:"C\u00F3digo", +samp:"Ejemplo de c\u00F3digo", +dt:"T\u00E9rmino de definici\u00F3n", +dd:"Descripci\u00F3n de definici\u00F3n", +bold_desc:"Negrita (Ctrl+B)", +italic_desc:"Cursiva (Ctrl+I)", +underline_desc:"Subrayado (Ctrl+U)", +striketrough_desc:"Tachado", +justifyleft_desc:"Alinear a la izquierda", +justifycenter_desc:"Alinear al centro", +justifyright_desc:"Alinear a la derecha", +justifyfull_desc:"Justificar", +bullist_desc:"Lista desordenada", +numlist_desc:"Lista ordenada", +outdent_desc:"Reducir sangr\u00EDa", +indent_desc:"Aumentar sangr\u00EDa", +undo_desc:"Deshacer (Ctrl+Z)", +redo_desc:"Rehacer (Ctrl+Y)", +link_desc:"Insertar/editar hiperv\u00EDnculo", +unlink_desc:"Quitar hiperv\u00EDnculo", +image_desc:"Insertar/editar imagen", +cleanup_desc:"Limpiar c\u00F3digo basura", +code_desc:"Editar c\u00F3digo HTML", +sub_desc:"Sub\u00EDndice", +sup_desc:"Super\u00EDndice", +hr_desc:"Insertar regla horizontal", +removeformat_desc:"Limpiar formato", +custom1_desc:"Su descripci\u00F3n personal aqu\u00ED", +forecolor_desc:"Elegir color del texto", +backcolor_desc:"Elegir color de fondo", +charmap_desc:"Insertar caracteres personalizados", +visualaid_desc:"Mostrar/ocultar l\u00EDnea de gu\u00EDa/elementos invisibles", +anchor_desc:"Insertar/editar ancla", +cut_desc:"Cortar", +copy_desc:"Copiar", +paste_desc:"Pegar", +image_props_desc:"Propiedades de imagen", +newdocument_desc:"Nuevo documento", +help_desc:"Ayuda", +blockquote_desc:"Cita", +clipboard_msg:"Copiar/Cortar/Pegar no se encuentra disponible en Mozilla y Firefox.\n \u00BFQuiere m\u00E1s informaci\u00F3n sobre este tema?", +path:"Ruta", +newdocument:" \u00BFSeguro que desea limpiar todo el contenido?", +toolbar_focus:"Ir a los botones de herramientas - Alt+Q, Ir al editor - Alt-Z, Ir a la ruta del elemento - Alt-X", +more_colors:"M\u00E1s colores" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es_dlg.js new file mode 100644 index 0000000..db43b8d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/es_dlg.js @@ -0,0 +1,51 @@ +tinyMCE.addI18n('es.advanced_dlg',{ +about_title:"Acerca de TinyMCE", +about_general:"Acerca de ", +about_help:"Ayuda", +about_license:"Licencia", +about_plugins:"Complementos", +about_plugin:"Complemento", +about_author:"Autor", +about_version:"Versi\u00F3n", +about_loaded:"Complementos cargados", +anchor_title:"Insertar/editar ancla", +anchor_name:"Nombre del ancla", +code_title:"Editor del c\u00F3digo fuente HTML", +code_wordwrap:"Ajustar al margen", +colorpicker_title:"Elegir color", +colorpicker_picker_tab:"Selector", +colorpicker_picker_title:"Paleta de color", +colorpicker_palette_tab:"Paleta", +colorpicker_palette_title:"Paleta de colores", +colorpicker_named_tab:"Nombrados", +colorpicker_named_title:"Colores nombrados", +colorpicker_color:"Color:", +colorpicker_name:"Nombre:", +charmap_title:"Elegir caracter personalizado", +image_title:"Insertar/editar imagen", +image_src:"URL de la Imagen", +image_alt:"Descripci\u00F3n de la Imagen", +image_list:"Lista de la Imagen", +image_border:"Borde", +image_dimensions:"Dimensi\u00F3n", +image_vspace:"Espacio vertical", +image_hspace:"Espacio horizontal", +image_align:"Alineaci\u00F3n", +image_align_baseline:"L\u00EDnea base", +image_align_top:"Arriba", +image_align_middle:"Medio", +image_align_bottom:"Debajo", +image_align_texttop:"Texto arriba", +image_align_textbottom:"Texto debajo", +image_align_left:"Izquierda", +image_align_right:"Derecha", +link_title:"Insertar/editar hiperv\u00EDnculo", +link_url:"URL del hiperv\u00EDnculo", +link_target:"Destino", +link_target_same:"Abrir v\u00EDnculo en la misma ventana", +link_target_blank:"Abrir v\u00EDnculo en una ventana nueva", +link_titlefield:"T\u00EDtulo", +link_is_email:"La URL que introdujo parece ser una direcci\u00F3n de email, \u00BFdesea agregar el prefijo mailto: necesario?", +link_is_external:"La URL que introdujo parece ser un v\u00EDnculo externo, \u00BFdesea agregar el prefijo http:// necesario?", +link_list:"Lista de hiperv\u00EDnculos" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr.js new file mode 100644 index 0000000..933cebc --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr.js @@ -0,0 +1,65 @@ +tinyMCE.addI18n('fr.advanced',{ +style_select:"Styles", +font_size:"Taille police", +fontdefault:"Police", +block:"Format", +paragraph:"Paragraphe", +div:"Div", +address:"Adresse", +pre:"Pr\u00E9format\u00E9", +h1:"Titre 1", +h2:"Titre 2", +h3:"Titre 3", +h4:"Titre 4", +h5:"Titre 5", +h6:"Titre 6", +blockquote:"Citation", +code:"Code", +samp:"Exemple de code", +dt:"Terme \u00E0 d\u00E9finir", +dd:"D\u00E9finition du terme", +bold_desc:"Gras (Ctrl+B)", +italic_desc:"Italique (Ctrl+I)", +underline_desc:"Soulign\u00E9 (Ctrl+U)", +striketrough_desc:"Barr\u00E9", +justifyleft_desc:"Align\u00E9 \u00E0 gauche", +justifycenter_desc:"Centr\u00E9", +justifyright_desc:"Align\u00E9 \u00E0 droite", +justifyfull_desc:"Justifi\u00E9", +bullist_desc:"Liste \u00E0 puces", +numlist_desc:"Liste num\u00E9rot\u00E9e", +outdent_desc:"Retirer l'indentation", +indent_desc:"Indenter", +undo_desc:"Annuler (Ctrl+Z)", +redo_desc:"R\u00E9tablir (Ctrl+Y)", +link_desc:"Ins\u00E9rer/\u00C9diter le lien", +unlink_desc:"D\u00E9lier", +image_desc:"Ins\u00E9rer/\u00C9diter l'image", +cleanup_desc:"Nettoyer le code", +code_desc:"\u00C9diter source HTML", +sub_desc:"Indice", +sup_desc:"Exposant", +hr_desc:"Ins\u00E9rer trait horizontal", +removeformat_desc:"Enlever formatage", +custom1_desc:"Votre description personnalis\u00E9e ici", +forecolor_desc:"Choisir la couleur du texte", +backcolor_desc:"Choisir la couleur de surlignage", +charmap_desc:"Ins\u00E9rer caract\u00E8res sp\u00E9ciaux", +visualaid_desc:"Activer/d\u00E9sactiver les guides et les \u00E9l\u00E9ments invisibles", +anchor_desc:"Ins\u00E9rer/\u00C9diter une ancre", +cut_desc:"Couper", +copy_desc:"Copier", +paste_desc:"Coller", +image_props_desc:"Propri\u00E9t\u00E9s de l'image", +newdocument_desc:"Nouveau document", +help_desc:"Aide", +blockquote_desc:"Citation", +clipboard_msg:"Copier/Couper/Coller n'est pas disponible sous Mozilla et sous Firefox.\nVoulez-vous plus d'information sur ce probl\u00E8me?", +path:"Chemin", +newdocument:"\u00CAtes-vous s\u00FBr de vouloir effacer l'enti\u00E8ret\u00E9 du document?", +toolbar_focus:"Aller aux boutons de l'\u00E9diteur - Alt+Q, Aller \u00E0 l'\u00E9diteur - Alt-Z, Aller au chemin de l'\u00E9l\u00E9ment - Alt-X", +more_colors:"Plus de couleurs", +image_delta_width:"20", +image_delta_height:"5", +link_delta_width:"6" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr_dlg.js new file mode 100644 index 0000000..ceb3cdb --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr_dlg.js @@ -0,0 +1,51 @@ +tinyMCE.addI18n('fr.advanced_dlg',{ +about_title:"\u00C0 propos de TinyMCE", +about_general:"\u00C0 propos", +about_help:"Aide", +about_license:"Licence", +about_plugins:"Plugins", +about_plugin:"Plugin", +about_author:"Auteur", +about_version:"Version", +about_loaded:"Plugins charg\u00E9s", +anchor_title:"Ins\u00E9rer/\u00C9diter une ancre", +anchor_name:"Nom de l'ancre", +code_title:"\u00C9diteur de la source HTML", +code_wordwrap:"Rupture de ligne", +colorpicker_title:"Choisir une couleur", +colorpicker_picker_tab:"Nuancier", +colorpicker_picker_title:"Nuancier", +colorpicker_palette_tab:"Palette", +colorpicker_palette_title:"Couleurs de la palette", +colorpicker_named_tab:"Noms", +colorpicker_named_title:"Couleurs nomm\u00E9es", +colorpicker_color:"Couleur:", +colorpicker_name:"Nom:", +charmap_title:"Choisir le caract\u00E8re \u00E0 ins\u00E9rer", +image_title:"Ins\u00E9rer/\u00C9diter une image", +image_src:"URL de l'image", +image_alt:"Description de l'image", +image_list:"Liste d'images", +image_border:"Bordure", +image_dimensions:"Dimensions", +image_vspace:"Espacement vertical", +image_hspace:"Espacement horizontal", +image_align:"Alignement", +image_align_baseline:"Base", +image_align_top:"Sommet", +image_align_middle:"Milieu", +image_align_bottom:"Bas", +image_align_texttop:"Haut du texte", +image_align_textbottom:"Bas du texte", +image_align_left:"Gauche", +image_align_right:"Droite", +link_title:"Ins\u00E9rer/\u00C9diter un lien", +link_url:"URL du lien", +link_target:"Cible", +link_target_same:"Ouvrir dans la m\u00EAme fen\u00EAtre", +link_target_blank:"Ouvrir dans une nouvelle fen\u00EAtre", +link_titlefield:"Titre", +link_is_email:"L'URL que vous avez entr\u00E9 semble \u00EAtre une adresse e-mail, voulez-vous ajouter le pr\u00E9fixe mailto:?", +link_is_external:"L'URL que vous avez saisi semble \u00EAtre une adresse web externe. Voulez-vous ajouter le pr\u00E9fixe http://?", +link_list:"Liste de liens" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/hy.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/hy.js new file mode 120000 index 0000000..78e6f7f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/hy.js @@ -0,0 +1 @@ +en.js \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it.js new file mode 100644 index 0000000..af84c79 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it.js @@ -0,0 +1 @@ +tinyMCE.addI18n('it.advanced',{"underline_desc":"Sottolineato (Ctrl+U)","italic_desc":"Corsivo (Ctrl+I)","bold_desc":"Grassetto (Ctrl+B)",dd:"Descrizione definizione",dt:"Termine definizione",samp:"Esempio codice",code:"Codice",blockquote:"Testo quotato",h6:"Intestazione 6",h5:"Intestazione 5",h4:"Intestazione 4",h3:"Intestazione 3",h2:"Intestazione 2",h1:"Intestazione 1",pre:"Preformattato",address:"Indirizzo",div:"Div",paragraph:"Paragrafo",block:"Formato",fontdefault:"Famiglia carattere","font_size":"Grandezza carattere","style_select":"Stili","anchor_delta_height":"anchor_delta_height","anchor_delta_width":"anchor_delta_width","charmap_delta_height":"charmap_delta_height","charmap_delta_width":"charmap_delta_width","colorpicker_delta_height":"colorpicker_delta_height","colorpicker_delta_width":"colorpicker_delta_width","link_delta_height":"link_delta_height","link_delta_width":"link_delta_width","image_delta_height":"image_delta_height","image_delta_width":"image_delta_width","more_colors":"Colori aggiuntivi","toolbar_focus":"Vai ai pulsanti strumento - Alt+Q, Vai all\'editor - Alt-Z, Vai al percorso dell\'elemento - Alt-X",newdocument:"Sei sicuro di voler cancellare tutti i contenuti?",path:"Percorso","clipboard_msg":"Copia/Taglia/Incolla non \u00e8 disponibile in Mozilla e Firefox..\nSi desidera avere maggiori informazioni su questo problema?","blockquote_desc":"Testo quotato","help_desc":"Aiuto","newdocument_desc":"Nuovo documento","image_props_desc":"Propriet\u00e0 immagine","paste_desc":"Incolla","copy_desc":"Copia","cut_desc":"Taglia","anchor_desc":"Inserisci/modifica ancora","visualaid_desc":"Mostra/nascondi linee guida/elementi invisibili","charmap_desc":"Inserisci carattere speciale","backcolor_desc":"Seleziona colore sfondo","forecolor_desc":"Seleziona colore testo","custom1_desc":"La tua descrizione personalizzata qui","removeformat_desc":"Rimuovi formattazione","hr_desc":"Inserisci riga orizzontale","sup_desc":"Apice","sub_desc":"Pedice","code_desc":"Modifica sorgente HTML","cleanup_desc":"Pulisci codice disordinato","image_desc":"Inserisci/modifica immagine","unlink_desc":"Togli collegamento","link_desc":"Inserisci/modifica collegamento","redo_desc":"Ripristina (Ctrl+Y)","undo_desc":"Annulla (Ctrl+Z)","indent_desc":"Sposta verso interno","outdent_desc":"Sposta verso esterno","numlist_desc":"Lista ordinata","bullist_desc":"Lista non ordinata","justifyfull_desc":"Giustifica","justifyright_desc":"Allinea a destra","justifycenter_desc":"Centra","justifyleft_desc":"Allinea a sinistra","striketrough_desc":"Barrato","help_shortcut":"Premi ALT-F10 Per la barra degli strumenti. Premi ALT-0 per l\'aiuto","rich_text_area":"Rich Text Area","shortcuts_desc":"Aiuto accessibilit\u00e0",toolbar:"Barra degli strumenti"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it_dlg.js new file mode 100644 index 0000000..55df2dc --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/it_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('it.advanced_dlg',{"link_list":"Lista link","link_is_external":"L\'URL inserito sembra essere un link esterno. Aggiungere il necessario prefisso http:// ?","link_is_email":"L\'URL inserito sembra essere un indirizzo email. Aggiungere il necessario prefisso mailto: ?","link_titlefield":"Titolo","link_target_blank":"Apri link in una nuova finestra","link_target_same":"Apri link nella stessa finestra","link_target":"Target","link_url":"URL link","link_title":"Inserisci/modifica collegamento","image_align_right":"A destra","image_align_left":"A sinistra","image_align_textbottom":"In basso al testo","image_align_texttop":"In alto al testo","image_align_bottom":"In basso","image_align_middle":"In mezzo","image_align_top":"In alto","image_align_baseline":"Alla base","image_align":"Allineamentot","image_hspace":"Spaziatura orizz.","image_vspace":"Spaziatura vert.","image_dimensions":"Dimensioni","image_alt":"Descrizione","image_list":"Lista immagini","image_border":"Bordo","image_src":"URL immagine","image_title":"Inserisci/modifica immagine","charmap_title":"Seleziona carattere speciale","colorpicker_name":"Nome:","colorpicker_color":"Colore:","colorpicker_named_title":"Colori per nome","colorpicker_named_tab":"Per nome","colorpicker_palette_title":"Tavolozza dei colori","colorpicker_palette_tab":"Tavolozza","colorpicker_picker_title":"Selettore colori","colorpicker_picker_tab":"Selettore","colorpicker_title":"Seleziona un colore","code_wordwrap":"A capo automatico","code_title":"Editor sorgente HTML","anchor_name":"Nome ancora","anchor_title":"Inserisci/modifica ancora","about_loaded":"Plugin caricati","about_version":"Versione","about_author":"Autore","about_plugin":"Plugin","about_plugins":"Plugins","about_license":"Licenza","about_help":"Aiuto","about_general":"Informazioni","about_title":"Informazioni su TinyMCE","charmap_usage":"Utilizza le freccie sinistra e destra per navigare.","anchor_invalid":"Specificare un nome di ancora valido.","accessibility_help":"Guida accessibilit\u00e0","accessibility_usage_title":"Uso generale"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja.js new file mode 100644 index 0000000..f6a39af --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja.js @@ -0,0 +1,62 @@ +tinyMCE.addI18n('ja.advanced',{ +style_select:"\u30B9\u30BF\u30A4\u30EB", +font_size:"\u30D5\u30A9\u30F3\u30C8\u30B5\u30A4\u30BA", +fontdefault:"\u30D5\u30A9\u30F3\u30C8", +block:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8", +paragraph:"\u6BB5\u843D", +div:"Div", +address:"\u4F4F\u6240", +pre:"\u6574\u5F62\u6E08\u307F", +h1:"\u898B\u51FA\u30571", +h2:"\u898B\u51FA\u30572", +h3:"\u898B\u51FA\u30573", +h4:"\u898B\u51FA\u30574", +h5:"\u898B\u51FA\u30575", +h6:"\u898B\u51FA\u30576", +blockquote:"\u5F15\u7528", +code:"\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9", +samp:"\u30B3\u30FC\u30C9\u30B5\u30F3\u30D7\u30EB", +dt:"\u8A9E\u53E5\u5B9A\u7FA9", +dd:"\u8A9E\u53E5\u8AAC\u660E", +bold_desc:"\u592A\u5B57 (Ctrl+B)", +italic_desc:"\u659C\u4F53 (Ctrl+I)", +underline_desc:"\u4E0B\u7DDA (Ctrl+U)", +striketrough_desc:"\u6253\u6D88\u3057\u7DDA", +justifyleft_desc:"\u5DE6\u63C3\u3048", +justifycenter_desc:"\u4E2D\u592E\u63C3\u3048", +justifyright_desc:"\u53F3\u63C3\u3048", +justifyfull_desc:"\u5747\u7B49\u5272\u4ED8", +bullist_desc:"\u756A\u53F7\u306A\u3057\u30EA\u30B9\u30C8", +numlist_desc:"\u756A\u53F7\u3064\u304D\u30EA\u30B9\u30C8", +outdent_desc:"\u30A4\u30F3\u30C7\u30F3\u30C8\u89E3\u9664", +indent_desc:"\u30A4\u30F3\u30C7\u30F3\u30C8", +undo_desc:"\u5143\u306B\u623B\u3059 (Ctrl+Z)", +redo_desc:"\u3084\u308A\u76F4\u3059 (Ctrl+Y)", +link_desc:"\u30EA\u30F3\u30AF\u306E\u633F\u5165/\u7DE8\u96C6", +unlink_desc:"\u30EA\u30F3\u30AF\u89E3\u9664", +image_desc:"\u753B\u50CF\u306E\u633F\u5165/\u7DE8\u96C6", +cleanup_desc:"\u30B3\u30FC\u30C9\u6574\u5F62", +code_desc:"HTML\u30BD\u30FC\u30B9\u7DE8\u96C6", +sub_desc:"\u4E0B\u4ED8\u304D", +sup_desc:"\u4E0A\u4ED8\u304D", +hr_desc:"\u6C34\u5E73\u7DDA", +removeformat_desc:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u89E3\u9664", +custom1_desc:"\u8AAC\u660E\u6587\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002", +forecolor_desc:"\u6587\u5B57\u8272", +backcolor_desc:"\u80CC\u666F\u8272", +charmap_desc:"\u7279\u6B8A\u6587\u5B57", +visualaid_desc:"\u30AC\u30A4\u30C9\u30E9\u30A4\u30F3\u3068\u975E\u8868\u793A\u9805\u76EE\u306E\u8868\u793A\u5207\u66FF", +anchor_desc:"\u30A2\u30F3\u30AB\u30FC\u306E\u633F\u5165/\u7DE8\u96C6", +cut_desc:"\u5207\u308A\u53D6\u308A", +copy_desc:"\u30B3\u30D4\u30FC", +paste_desc:"\u8CBC\u308A\u4ED8\u3051", +image_props_desc:"\u753B\u50CF\u306E\u30D7\u30ED\u30D1\u30C6\u30A3", +newdocument_desc:"\u65B0\u898F\u4F5C\u6210", +help_desc:"\u30D8\u30EB\u30D7", +blockquote_desc:"\u5F15\u7528", +clipboard_msg:"\u30B3\u30D4\u30FC/\u5207\u308A\u53D6\u308A/\u8CBC\u308A\u4ED8\u3051\u306FMozilla\u53CA\u3073Firefox\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n\u8A73\u7D30\u306F\u3053\u3061\u3089", +path:"\u30D1\u30B9", +newdocument:"\u7DE8\u96C6\u4E2D\u306E\u30C7\u30FC\u30BF\u3092\u7834\u68C4\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F", +toolbar_focus:"\u30C4\u30FC\u30EB\u30DC\u30BF\u30F3\u3078\u30B8\u30E3\u30F3\u30D7 - Alt+Q, \u30A8\u30C7\u30A3\u30BF\u306B\u30B8\u30E3\u30F3\u30D7 - Alt-Z, \u30A8\u30EC\u30E1\u30F3\u30C8\u30D1\u30B9\u3078\u30B8\u30E3\u30F3\u30D7 - Alt-X", +more_colors:"\u305D\u306E\u4ED6\u306E\u8272" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja_dlg.js new file mode 100644 index 0000000..37728eb --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja_dlg.js @@ -0,0 +1,51 @@ +tinyMCE.addI18n('ja.advanced_dlg',{ +about_title:"TinyMCE\u306B\u3064\u3044\u3066", +about_general:"\u8A73\u7D30", +about_help:"\u30D8\u30EB\u30D7", +about_license:"\u30E9\u30A4\u30BB\u30F3\u30B9", +about_plugins:"\u30D7\u30E9\u30B0\u30A4\u30F3", +about_plugin:"\u30D7\u30E9\u30B0\u30A4\u30F3", +about_author:"\u4F5C\u8005", +about_version:"\u30D0\u30FC\u30B8\u30E7\u30F3", +about_loaded:"\u8AAD\u8FBC\u6E08\u307F\u30D7\u30E9\u30B0\u30A4\u30F3", +anchor_title:"\u30A2\u30F3\u30AB\u30FC\u306E\u633F\u5165/\u7DE8\u96C6", +anchor_name:"\u30A2\u30F3\u30AB\u30FC\u540D", +code_title:"HTML\u30BD\u30FC\u30B9\u30A8\u30C7\u30A3\u30BF", +code_wordwrap:"\u6298\u308A\u8FD4\u3057", +colorpicker_title:"\u8272\u306E\u9078\u629E", +colorpicker_picker_tab:"\u30AB\u30E9\u30FC\u30D4\u30C3\u30AB\u30FC", +colorpicker_picker_title:"\u30AB\u30E9\u30FC\u30D4\u30C3\u30AB\u30FC", +colorpicker_palette_tab:"\u30D1\u30EC\u30C3\u30C8", +colorpicker_palette_title:"\u30D1\u30EC\u30C3\u30C8", +colorpicker_named_tab:"\u65E2\u5B9A\u8272", +colorpicker_named_title:"\u65E2\u5B9A\u8272", +colorpicker_color:"\u30AB\u30E9\u30FC:", +colorpicker_name:"\u540D\u524D:", +charmap_title:"\u7279\u6B8A\u6587\u5B57", +image_title:"\u753B\u50CF\u306E\u633F\u5165/\u7DE8\u96C6", +image_src:"\u753B\u50CFURL", +image_alt:"\u753B\u50CF\u306E\u8AAC\u660E", +image_list:"\u4E00\u89A7\u304B\u3089\u9078\u3076", +image_border:"\u67A0\u7DDA", +image_dimensions:"\u30B5\u30A4\u30BA", +image_vspace:"\u4E0A\u4E0B\u4F59\u767D", +image_hspace:"\u5DE6\u53F3\u4F59\u767D", +image_align:"\u914D\u7F6E", +image_align_baseline:"Baseline", +image_align_top:"Top", +image_align_middle:"Middle", +image_align_bottom:"Bottom", +image_align_texttop:"Text top", +image_align_textbottom:"Text bottom", +image_align_left:"Left", +image_align_right:"Right", +link_title:"\u30EA\u30F3\u30AF\u306E\u633F\u5165/\u7DE8\u96C6", +link_url:"\u30EA\u30F3\u30AFURL", +link_target:"\u30BF\u30FC\u30B2\u30C3\u30C8", +link_target_same:"\u540C\u3058\u30A6\u30A4\u30F3\u30C9\u30A6\u3067\u958B\u304F", +link_target_blank:"\u65B0\u3057\u3044\u30A6\u30A4\u30F3\u30C9\u30A6\u3067\u958B\u304F", +link_titlefield:"\u30BF\u30A4\u30C8\u30EB", +link_is_email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F\u3002\u30EA\u30F3\u30AF\u306Bmailto:\u3092\u4ED8\u52A0\u3057\u307E\u3059\u304B\uFF1F", +link_is_external:"\u30EA\u30F3\u30AF\u306Bhttp://\u3092\u4ED8\u52A0\u3057\u307E\u3059\u304B\uFF1F", +link_list:"\u4E00\u89A7\u304B\u3089\u9078\u3076" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl.js new file mode 100644 index 0000000..1e67ec9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl.js @@ -0,0 +1,62 @@ +tinyMCE.addI18n('nl.advanced',{ +style_select:"Stijlen", +font_size:"Tekengrootte", +fontdefault:"Lettertype", +block:"Opmaak", +paragraph:"Alinea", +div:"Div", +address:"Adres", +pre:"Vaste opmaak", +h1:"Kop 1", +h2:"Kop 2", +h3:"Kop 3", +h4:"Kop 4", +h5:"Kop 5", +h6:"Kop 6", +blockquote:"Citaat", +code:"Code", +samp:"Codevoorbeeld", +dt:"Definitieterm", +dd:"Definitiebeschrijving", +bold_desc:"Vet (Ctrl+B)", +italic_desc:"Cursief (Ctrl+I)", +underline_desc:"Onderstrepen (Ctrl+U)", +striketrough_desc:"Doorhalen", +justifyleft_desc:"Links uitlijnen", +justifycenter_desc:"Centreren", +justifyright_desc:"Rechts uitlijnen", +justifyfull_desc:"Uitvullen", +bullist_desc:"Opsommingstekens", +numlist_desc:"Nummering", +outdent_desc:"Inspringing verkleinen", +indent_desc:"Inspringing vergroten", +undo_desc:"Ongedaan maken (Ctrl+Z)", +redo_desc:"Herhalen (Ctrl+Y)", +link_desc:"Link invoegen/bewerken", +unlink_desc:"Link verwijderen", +image_desc:"Afbeelding invoegen/bewerken", +cleanup_desc:"Code opruimen", +code_desc:"HTML bron bewerken", +sub_desc:"Subscript", +sup_desc:"Superscript", +hr_desc:"Scheidingslijn invoegen", +removeformat_desc:"Opmaak verwijderen", +custom1_desc:"Uw eigen beschrijving hier", +forecolor_desc:"Tekstkleur", +backcolor_desc:"Tekstmarkeringskleur", +charmap_desc:"Symbool invoegen", +visualaid_desc:"Hulplijnen weergeven", +anchor_desc:"Anker invoegen/bewerken", +cut_desc:"Knippen", +copy_desc:"Kopi\u00EBren", +paste_desc:"Plakken", +image_props_desc:"Afbeeldingseigenschappen", +newdocument_desc:"Nieuw document", +help_desc:"Help", +blockquote_desc:"Citaat", +clipboard_msg:"Kopi\u00EBren/knippen/plakken is niet beschikbaar in Mozilla en Firefox.\nWilt u meer informatie over deze beperking?", +path:"Pad", +newdocument:"Weet u zeker dat u alle inhoud wilt wissen?", +toolbar_focus:"Spring naar werkbalk - Alt+Q, Spring naar tekst - Alt-Z, Spring naar elementpad - Alt-X", +more_colors:"Meer kleuren" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl_dlg.js new file mode 100644 index 0000000..46300ab --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/nl_dlg.js @@ -0,0 +1,51 @@ +tinyMCE.addI18n('nl.advanced_dlg',{ +about_title:"Over TinyMCE", +about_general:"Info", +about_help:"Help", +about_license:"Licentie", +about_plugins:"Invoegtoepassingen", +about_plugin:"Invoegtoepassing", +about_author:"Auteur", +about_version:"Versie", +about_loaded:"Geladen Invoegtoepassingen", +anchor_title:"Anker invoegen/bewerken", +anchor_name:"Ankernaam", +code_title:"HTML Bron", +code_wordwrap:"Automatische terugloop", +colorpicker_title:"Kleuren", +colorpicker_picker_tab:"Alle kleuren", +colorpicker_picker_title:"Alle kleuren", +colorpicker_palette_tab:"Palet", +colorpicker_palette_title:"Paletkleuren", +colorpicker_named_tab:"Benoemd", +colorpicker_named_title:"Benoemde kleuren", +colorpicker_color:"Kleur:", +colorpicker_name:"Naam:", +charmap_title:"Symbolen", +image_title:"Afbeelding invoegen/bewerken", +image_src:"Bestand/URL", +image_alt:"Beschrijving", +image_list:"Lijst", +image_border:"Rand", +image_dimensions:"Afmetingen", +image_vspace:"Verticale ruimte", +image_hspace:"Horizontale ruimte", +image_align:"Uitlijning", +image_align_baseline:"Basislijn", +image_align_top:"Boven", +image_align_middle:"Midden", +image_align_bottom:"Onder", +image_align_texttop:"Bovenkant tekst", +image_align_textbottom:"Onderkant tekst", +image_align_left:"Links", +image_align_right:"Rechts", +link_title:"Link invoegen/bewerken", +link_url:"URL", +link_target:"Doel", +link_target_same:"Link in hetzelfde venster openen", +link_target_blank:"Link in een nieuw venster openen", +link_titlefield:"Titel", +link_is_email:"De ingevoerde URL lijkt op een e-mailadres. Wilt u de vereiste mailto: tekst voorvoegen?", +link_is_external:"De ingevoerde URL lijkt op een externe link. Wilt u de vereiste http:// tekst voorvoegen?", +link_list:"Link lijst" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt.js new file mode 100644 index 0000000..18123ab --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt.js @@ -0,0 +1,62 @@ +tinyMCE.addI18n('pt.advanced',{ +style_select:"Estilos", +font_size:"Tamanho", +fontdefault:"Tipo de fonte", +block:"Formata\u00E7\u00E3o", +paragraph:"Par\u00E1grafo", +div:"Div", +address:"Endere\u00E7o", +pre:"Pr\u00E9-formatado", +h1:"T\u00EDtulo 1", +h2:"T\u00EDtulo 2", +h3:"T\u00EDtulo 3", +h4:"T\u00EDtulo 4", +h5:"T\u00EDtulo 5", +h6:"T\u00EDtulo 6", +blockquote:"Cita\u00E7\u00E3o em bloco", +code:"C\u00F3digo", +samp:"Amostra de c\u00F3digo", +dt:"Termo da defini\u00E7\u00E3o", +dd:"Descri\u00E7\u00E3o da defini\u00E7\u00E3o", +bold_desc:"Negrito (Ctrl+B)", +italic_desc:"It\u00E1lico (Ctrl+I)", +underline_desc:"Sublinhado (Ctrl+U)", +striketrough_desc:"Riscado", +justifyleft_desc:"Alinhar \u00E0 esquerda", +justifycenter_desc:"Centrar", +justifyright_desc:"Alinhar \u00E0 direita", +justifyfull_desc:"Justificar", +bullist_desc:"Marcadores", +numlist_desc:"Numera\u00E7\u00E3o", +outdent_desc:"Diminuir avan\u00E7o", +indent_desc:"Aumentar avan\u00E7o", +undo_desc:"Desfazer (Ctrl+Z)", +redo_desc:"Refazer (Ctrl+Y)", +link_desc:"Inserir/editar hyperlink", +unlink_desc:"Remover hyperlink", +image_desc:"Inserir/editar imagem", +cleanup_desc:"Limpar c\u00F3digo incorreto", +code_desc:"Editar c\u00F3digo fonte", +sub_desc:"Inferior \u00E0 linha", +sup_desc:"Superior \u00E0 linha", +hr_desc:"Inserir separador horizontal", +removeformat_desc:"Remover formata\u00E7\u00E3o", +custom1_desc:"Insira aqui a sua descri\u00E7\u00E3o personalizada", +forecolor_desc:"Selecionar a cor do texto", +backcolor_desc:"Selecionar a cor de fundo", +charmap_desc:"Inserir caracteres especiais", +visualaid_desc:"Alternar guias/elementos invis\u00EDveis", +anchor_desc:"Inserir/editar \u00E2ncora", +cut_desc:"Cortar", +copy_desc:"Copiar", +paste_desc:"Colar", +image_props_desc:"Propriedades da imagem", +newdocument_desc:"Novo documento", +help_desc:"Ajuda", +blockquote_desc:"Cita\u00E7\u00E3o em bloco", +clipboard_msg:"Copiar/cortar/colar n\u00E3o est\u00E1 dispon\u00EDvel no Mozilla e Firefox. Deseja mais informa\u00E7\u00F5es sobre este problema?", +path:"Endere\u00E7o", +newdocument:"Tem a certeza que deseja apagar tudo?", +toolbar_focus:"Ir para as ferramentas - Alt+Q, Ir para o editor - Alt-Z, Ir para o endere\u00E7o do elemento - Alt-X", +more_colors:"Mais cores" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt_dlg.js new file mode 100644 index 0000000..074269d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/pt_dlg.js @@ -0,0 +1,51 @@ +tinyMCE.addI18n('pt.advanced_dlg',{ +about_title:"Sobre o TinyMCE", +about_general:"Sobre", +about_help:"Ajuda", +about_license:"Licen\u00E7a", +about_plugins:"Plugins", +about_plugin:"Plugin", +about_author:"Autor", +about_version:"Vers\u00E3o", +about_loaded:"Plugins Instalados", +anchor_title:"Inserir/editar \u00E2ncora", +anchor_name:"Nome da \u00E2ncora", +code_title:"Editor HTML", +code_wordwrap:"Quebra autom\u00E1tica de linha", +colorpicker_title:"Selecione uma cor", +colorpicker_picker_tab:"Editor", +colorpicker_picker_title:"Editor de Cores", +colorpicker_palette_tab:"Paleta", +colorpicker_palette_title:"Paleta de Cores", +colorpicker_named_tab:"Personalizadas", +colorpicker_named_title:"Cores Personalizadas", +colorpicker_color:"Cor:", +colorpicker_name:"Nome:", +charmap_title:"Selecionar caracteres personalizados", +image_title:"Inserir/editar imagem", +image_src:"Endere\u00E7o da imagem", +image_alt:"Descri\u00E7\u00E3o da imagem", +image_list:"Lista de imagens", +image_border:"Limites", +image_dimensions:"Dimens\u00F5es", +image_vspace:"Espa\u00E7o Vertical", +image_hspace:"Espa\u00E7o Horizontal", +image_align:"Alinhamento", +image_align_baseline:"Sobre a linha de texto", +image_align_top:"Topo", +image_align_middle:"Meio", +image_align_bottom:"Abaixo", +image_align_texttop:"Topo do texto", +image_align_textbottom:"Base do texto", +image_align_left:"Esquerda", +image_align_right:"Direita", +link_title:"Inserir/editar hyperlink", +link_url:"URL do hyperink", +link_target:"Alvo", +link_target_same:"Abrir hyperlink na mesma janela", +link_target_blank:"Abrir hyperlink em nova janela", +link_titlefield:"T\u00EDtulo", +link_is_email:"A URL digitada parece ser um endere\u00E7o de e-mail. Deseja acrescentar o prefixo necess\u00E1rio mailto:?", +link_is_external:"A URL digitada parece conduzir a um link externo. Deseja acrescentar o prefixo necess\u00E1rio http://?", +link_list:"Lista de Links" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru.js new file mode 100644 index 0000000..2a10541 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru.js @@ -0,0 +1,62 @@ +tinyMCE.addI18n('ru.advanced',{ +style_select:"\u0421\u0442\u0438\u043B\u0438", +font_size:"\u0420\u0430\u0437\u043C\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430", +fontdefault:"\u0428\u0440\u0438\u0444\u0442", +block:"\u0424\u043E\u0440\u043C\u0430\u0442", +paragraph:"\u0410\u0431\u0437\u0430\u0446", +div:"Div", +address:"\u0421\u0442\u0438\u043B\u044C \u0430\u0434\u0440\u0435\u0441\u0430", +pre:"\u041F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439", +h1:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 1", +h2:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 2", +h3:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 3", +h4:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 4", +h5:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 5", +h6:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 6", +blockquote:"\u0426\u0438\u0442\u0430\u0442\u0430", +code:"\u041A\u043E\u0434", +samp:"\u041F\u0440\u0438\u043C\u0435\u0440 \u043A\u043E\u0434\u0430", +dt:"\u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u0442\u0435\u0440\u043C\u0438\u043D", +dd:"\u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435", +bold_desc:"\u0416\u0438\u0440\u043D\u044B\u0439 (Ctrl + B)", +italic_desc:"\u041A\u0443\u0440\u0441\u0438\u0432 (Ctrl + I)", +underline_desc:"\u041F\u043E\u0434\u0447\u0435\u0440\u043A\u043D\u0443\u0442\u044B\u0439 (Ctrl + U)", +striketrough_desc:"\u0417\u0430\u0447\u0435\u0440\u043A\u043D\u0443\u0442\u044B\u0439", +justifyleft_desc:"\u041F\u043E \u043B\u0435\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E", +justifycenter_desc:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443", +justifyright_desc:"\u041F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E", +justifyfull_desc:"\u041F\u043E \u0448\u0438\u0440\u0438\u043D\u0435", +bullist_desc:"\u0421\u043F\u0438\u0441\u043E\u043A", +numlist_desc:"\u041D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A", +outdent_desc:"\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F", +indent_desc:"\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F", +undo_desc:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C (Ctrl + Z)", +redo_desc:"\u0412\u0435\u0440\u043D\u0443\u0442\u044C (Ctrl + Y)", +link_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C / \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443", +unlink_desc:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443", +image_desc:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435", +cleanup_desc:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u043B\u0438\u0448\u043D\u0438\u0439 \u043A\u043E\u0434", +code_desc:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C HTML \u043A\u043E\u0434", +sub_desc:"\u041D\u0438\u0436\u043D\u0438\u0439 \u0438\u043D\u0434\u0435\u043A\u0441", +sup_desc:"\u0412\u0435\u0440\u0445\u043D\u0438\u0439 \u0438\u043D\u0434\u0435\u043A\u0441", +hr_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C", +removeformat_desc:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435", +custom1_desc:"\u0412\u0430\u0448 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0434\u0435\u0441\u044C", +forecolor_desc:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0446\u0432\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u0430", +backcolor_desc:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0446\u0432\u0435\u0442 \u0444\u043E\u043D\u0430", +charmap_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0438\u043C\u0432\u043E\u043B", +visualaid_desc:"Toggle guidelines / invisible elements", +anchor_desc:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u044F\u043A\u043E\u0440\u044C", +cut_desc:"\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C", +copy_desc:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C", +paste_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C", +image_props_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F", +newdocument_desc:"\u041D\u043E\u0432\u044B\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442", +help_desc:"\u041F\u043E\u043C\u043E\u0449\u044C", +blockquote_desc:"\u0426\u0438\u0442\u0430\u0442\u0430", +clipboard_msg:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C / \u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C / \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C (\u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u0432 Mozilla \u0438 Firefox) \ n \u0412\u0430\u043C \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u043D\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E\u0431 \u044D\u0442\u043E\u043C?", +path:"\u041F\u0443\u0442\u044C", +newdocument:"\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0432\u0441\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C?", +toolbar_focus:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u043F\u0430\u043D\u0435\u043B\u044C \u043A\u043D\u043E\u043F\u043E\u043A - Alt + Q, \u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0443 - Alt-Z, \u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u043F\u0443\u0442\u0438 - Alt-X", +more_colors:"\u0411\u043E\u043B\u044C\u0448\u0435 \u0446\u0432\u0435\u0442\u043E\u0432" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru_dlg.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru_dlg.js new file mode 100644 index 0000000..8168a42 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/langs/ru_dlg.js @@ -0,0 +1,51 @@ +tinyMCE.addI18n('ru.advanced_dlg',{ +about_title:"\u041E \u043F\u0440\u043E\u0434\u0443\u043A\u0442\u0435 TinyMCE", +about_general:"\u041E \u043F\u0440\u043E\u0434\u0443\u043A\u0442\u0435 ...", +about_help:"\u041F\u043E\u043C\u043E\u0449\u044C", +about_license:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F", +about_plugins:"\u041F\u043B\u0430\u0433\u0438\u043D\u044B", +about_plugin:"\u041F\u043B\u0430\u0433\u0438\u043D", +about_author:"\u0410\u0432\u0442\u043E\u0440", +about_version:"\u0412\u0435\u0440\u0441\u0438\u044F", +about_loaded:"\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 \u043F\u043B\u0430\u0433\u0438\u043D\u044B", +anchor_title:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u044F\u043A\u043E\u0440\u044C", +anchor_name:"\u0418\u043C\u044F \u044F\u043A\u043E\u0440\u044F", +code_title:"\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 HTML \u043A\u043E\u0434\u0430", +code_wordwrap:"\u041F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u044C \u0441\u043B\u043E\u0432\u0430", +colorpicker_title:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0446\u0432\u0435\u0442", +colorpicker_picker_tab:"\u041F\u0438\u043F\u0435\u0442\u043A\u0430", +colorpicker_picker_title:"\u041F\u0438\u043F\u0435\u0442\u043A\u0430 \u0446\u0432\u0435\u0442\u0430", +colorpicker_palette_tab:"\u041F\u0430\u043B\u0438\u0442\u0440\u0430", +colorpicker_palette_title:"\u041F\u0430\u043B\u0438\u0442\u0440\u0430 \u0446\u0432\u0435\u0442\u043E\u0432", +colorpicker_named_tab:"\u041F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E", +colorpicker_named_title:"\u041F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E", +colorpicker_color:"\u0426\u0432\u0435\u0442:", +colorpicker_name:"\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435:", +charmap_title:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B", +image_title:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435", +image_src:"\u0410\u0434\u0440\u0435\u0441", +image_alt:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435", +image_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439", +image_border:"\u0413\u0440\u0430\u043D\u0438\u0446\u0430", +image_dimensions:"\u0420\u0430\u0437\u043C\u0435\u0440\u044B", +image_vspace:"\u0412\u0435\u0440\u0442. \u043E\u0442\u0441\u0442\u0443\u043F\u043B\u0435\u043D\u0438\u0435", +image_hspace:"\u0413\u043E\u0440\u0438\u0437. \u043E\u0442\u0441\u0442\u0443\u043F\u043B\u0435\u043D\u0438\u0435", +image_align:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435", +image_align_baseline:"\u041F\u043E \u0431\u0430\u0437\u043E\u0432\u043E\u0439 \u043B\u0438\u043D\u0438\u0438", +image_align_top:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E", +image_align_middle:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443", +image_align_bottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E", +image_align_texttop:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E \u0442\u0435\u043A\u0441\u0442\u0430", +image_align_textbottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E \u0442\u0435\u043A\u0441\u0442\u0430", +image_align_left:"\u041F\u043E \u043B\u0435\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E", +image_align_right:"\u041F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E", +link_title:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443", +link_url:"\u0410\u0434\u0440\u0435\u0441 \u0441\u0441\u044B\u043B\u043A\u0438", +link_target:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 ...", +link_target_same:"\u044D\u0442\u043E\u043C \u0436\u0435 \u043E\u043A\u043D\u0435", +link_target_blank:"\u043D\u043E\u0432\u043E\u043C \u043E\u043A\u043D\u0435", +link_titlefield:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A", +link_is_email:"\u0412\u0432\u0435\u0434\u0435\u043D\u043D\u044B\u0439 URL \u043F\u043E\u0445\u043E\u0436 \u043D\u0430 email \u0430\u0434\u0440\u0435\u0441, \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0439 \u043F\u0440\u0435\u0444\u0438\u043A\u0441 mailto:?", +link_is_external:"\u0412\u0432\u0435\u0434\u0435\u043D\u043D\u044B\u0439 URL \u043F\u043E\u0445\u043E\u0436 \u043D\u0430 \u0432\u043D\u0435\u0448\u043D\u044E\u044E \u0441\u0441\u044B\u043B\u043A\u0443, \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0439 \u043F\u0440\u0435\u0444\u0438\u043A\u0441 http://?", +link_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0441\u0441\u044B\u043B\u043E\u043A" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/link.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/link.htm new file mode 100644 index 0000000..5d9dea9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/link.htm @@ -0,0 +1,57 @@ + + + + {#advanced_dlg.link_title} + + + + + + + +
                    + + +
                    +
                    + + + + + + + + + + + + + + + + + + + + + +
                    + + + + +
                     
                    +
                    +
                    + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm new file mode 100644 index 0000000..20ec2f5 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm @@ -0,0 +1,47 @@ + + + + {#advanced_dlg.accessibility_help} + + + + +

                    {#advanced_dlg.accessibility_usage_title}

                    +

                    Toolbars

                    +

                    Press ALT-F10 to move focus to the toolbars. Navigate through the buttons using the arrow keys. + Press enter to activate a button and return focus to the editor. + Press escape to return focus to the editor without performing any actions.

                    + +

                    Status Bar

                    +

                    To access the editor status bar, press ALT-F11. Use the left and right arrow keys to navigate between elements in the path. + Press enter or space to select an element. Press escape to return focus to the editor without changing the selection.

                    + +

                    Context Menu

                    +

                    Press shift-F10 to activate the context menu. Use the up and down arrow keys to move between menu items. To open sub-menus press the right arrow key. + To close submenus press the left arrow key. Press escape to close the context menu.

                    + +

                    Keyboard Shortcuts

                    + + + + + + + + + + + + + + + + + + + + + +
                    KeystrokeFunction
                    Control-BBold
                    Control-IItalic
                    Control-ZUndo
                    Control-YRedo
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css new file mode 100644 index 0000000..0363466 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css @@ -0,0 +1,47 @@ +body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;} +body {background:#FFF;} +body.mceForceColors {background:#FFF; color:#000;} +body.mceBrowserDefaults {background:transparent; color:inherit; font-size:inherit; font-family:inherit;} +h1 {font-size: 2em} +h2 {font-size: 1.5em} +h3 {font-size: 1.17em} +h4 {font-size: 1em} +h5 {font-size: .83em} +h6 {font-size: .75em} +.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} +a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(img/items.gif) no-repeat 0 0;} +span.mceItemNbsp {background: #DDD} +td.mceSelected, th.mceSelected {background-color:#3399ff !important} +img {border:0;} +table {cursor:default} +table td, table th {cursor:text} +ins {border-bottom:1px solid green; text-decoration: none; color:green} +del {color:red; text-decoration:line-through} +cite {border-bottom:1px dashed blue} +acronym {border-bottom:1px dotted #CCC; cursor:help} +abbr {border-bottom:1px dashed #CCC; cursor:help} + +/* IE */ +* html body { +scrollbar-3dlight-color:#F0F0EE; +scrollbar-arrow-color:#676662; +scrollbar-base-color:#F0F0EE; +scrollbar-darkshadow-color:#DDD; +scrollbar-face-color:#E0E0DD; +scrollbar-highlight-color:#F0F0EE; +scrollbar-shadow-color:#F0F0EE; +scrollbar-track-color:#F5F5F5; +} + +img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} +font[face=mceinline] {font-family:inherit !important} + +.mceItemMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc} +.mceItemShockWave {background-image:url(../../img/shockwave.gif)} +.mceItemFlash {background-image:url(../../img/flash.gif)} +.mceItemQuickTime {background-image:url(../../img/quicktime.gif)} +.mceItemWindowsMedia {background-image:url(../../img/windowsmedia.gif)} +.mceItemRealMedia {background-image:url(../../img/realmedia.gif)} +.mceItemVideo {background-image:url(../../img/video.gif)} +.mceItemIframe {background-image:url(../../img/iframe.gif)} +.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../../img/pagebreak.gif) no-repeat center top;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css new file mode 100644 index 0000000..f012226 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css @@ -0,0 +1,117 @@ +/* Generic */ +body { +font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; +scrollbar-3dlight-color:#F0F0EE; +scrollbar-arrow-color:#676662; +scrollbar-base-color:#F0F0EE; +scrollbar-darkshadow-color:#DDDDDD; +scrollbar-face-color:#E0E0DD; +scrollbar-highlight-color:#F0F0EE; +scrollbar-shadow-color:#F0F0EE; +scrollbar-track-color:#F5F5F5; +background:#F0F0EE; +padding:0; +margin:8px 8px 0 8px; +} + +html {background:#F0F0EE;} +td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +textarea {resize:none;outline:none;} +a:link, a:visited {color:black;} +a:hover {color:#2B6FB6;} +.nowrap {white-space: nowrap} + +/* Forms */ +fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} +legend {color:#2B6FB6; font-weight:bold;} +label.msg {display:none;} +label.invalid {color:#EE0000; display:inline;} +input.invalid {border:1px solid #EE0000;} +input {background:#FFF; border:1px solid #CCC;} +input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +input, select, textarea {border:1px solid #808080;} +input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} +input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} +.input_noborder {border:0;} + +/* Buttons */ +#insert, #cancel, input.button, .updateButton { +border:0; margin:0; padding:0; +font-weight:bold; +width:94px; height:26px; +background:url(img/buttons.png) 0 -26px; +cursor:pointer; +padding-bottom:2px; +float:left; +} + +#insert {background:url(img/buttons.png) 0 -52px} +#cancel {background:url(img/buttons.png) 0 0; float:right} + +/* Browse */ +a.pickcolor, a.browse {text-decoration:none} +a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} +.mceOldBoxModel a.browse span {width:22px; height:20px;} +a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} +a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} +a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} +.mceOldBoxModel a.pickcolor span {width:21px; height:17px;} +a.pickcolor:hover span {background-color:#B2BBD0;} +a.pickcolor:hover span.disabled {} + +/* Charmap */ +table.charmap {border:1px solid #AAA; text-align:center} +td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} +#charmap a {display:block; color:#000; text-decoration:none; border:0} +#charmap a:hover {background:#CCC;color:#2B6FB6} +#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} +#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} + +/* Source */ +.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} +.mceActionPanel {margin-top:5px;} + +/* Tabs classes */ +.tabs {width:100%; height:18px; line-height:normal; background:url(img/tabs.gif) repeat-x 0 -72px;} +.tabs ul {margin:0; padding:0; list-style:none;} +.tabs li {float:left; background:url(img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;} +.tabs li.current {background:url(img/tabs.gif) no-repeat 0 -18px; margin-right:2px;} +.tabs span {float:left; display:block; background:url(img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;} +.tabs .current span {background:url(img/tabs.gif) no-repeat right -54px;} +.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} +.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} + +/* Panels */ +.panel_wrapper div.panel {display:none;} +.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} +.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;} + +/* Columns */ +.column {float:left;} +.properties {width:100%;} +.properties .column1 {} +.properties .column2 {text-align:left;} + +/* Titles */ +h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} +h3 {font-size:14px;} +.title {font-size:12px; font-weight:bold; color:#2B6FB6;} + +/* Dialog specific */ +#link .panel_wrapper, #link div.current {height:125px;} +#image .panel_wrapper, #image div.current {height:200px;} +#plugintable thead {font-weight:bold; background:#DDD;} +#plugintable, #about #plugintable td {border:1px solid #919B9C;} +#plugintable {width:96%; margin-top:10px;} +#pluginscontainer {height:290px; overflow:auto;} +#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;} +#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} +#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} +#colorpicker #light div {overflow:hidden;} +#colorpicker #previewblock {float:right; padding-left:10px; height:20px;} +#colorpicker .panel_wrapper div.current {height:175px;} +#colorpicker #namedcolors {width:150px;} +#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} +#colorpicker #colornamecontainer {margin-top:5px;} +#colorpicker #picker_panel fieldset {margin:auto;width:325px;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png new file mode 100644 index 0000000..7dd5841 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif new file mode 100644 index 0000000..2eafd79 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif new file mode 100644 index 0000000..85e31df Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif new file mode 100644 index 0000000..adfdddc Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif new file mode 100644 index 0000000..5bb90fd Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif new file mode 100644 index 0000000..ce4be63 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css new file mode 100644 index 0000000..556b510 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css @@ -0,0 +1,213 @@ +/* Reset */ +.defaultSkin table, .defaultSkin tbody, .defaultSkin a, .defaultSkin img, .defaultSkin tr, .defaultSkin div, .defaultSkin td, .defaultSkin iframe, .defaultSkin span, .defaultSkin *, .defaultSkin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left} +.defaultSkin a:hover, .defaultSkin a:link, .defaultSkin a:visited, .defaultSkin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000} +.defaultSkin table td {vertical-align:middle} + +/* Containers */ +.defaultSkin table {direction:ltr;background:transparent} +.defaultSkin iframe {display:block;} +.defaultSkin .mceToolbar {height:26px} +.defaultSkin .mceLeft {text-align:left} +.defaultSkin .mceRight {text-align:right} + +/* External */ +.defaultSkin .mceExternalToolbar {position:absolute; border:1px solid #CCC; border-bottom:0; display:none;} +.defaultSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;} +.defaultSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0} + +/* Layout */ +.defaultSkin table.mceLayout {border:0; border-left:1px solid #CCC; border-right:1px solid #CCC} +.defaultSkin table.mceLayout tr.mceFirst td {border-top:1px solid #CCC} +.defaultSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #CCC} +.defaultSkin table.mceToolbar, .defaultSkin tr.mceFirst .mceToolbar tr td, .defaultSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0;} +.defaultSkin td.mceToolbar {background:#F0F0EE; padding-top:1px; vertical-align:top} +.defaultSkin .mceIframeContainer {border-top:1px solid #CCC; border-bottom:1px solid #CCC} +.defaultSkin .mceStatusbar {background:#F0F0EE; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; display:block; height:20px} +.defaultSkin .mceStatusbar div {float:left; margin:2px} +.defaultSkin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize; outline:0} +.defaultSkin .mceStatusbar a:hover {text-decoration:underline} +.defaultSkin table.mceToolbar {margin-left:3px} +.defaultSkin span.mceIcon, .defaultSkin img.mceIcon {display:block; width:20px; height:20px} +.defaultSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} +.defaultSkin td.mceCenter {text-align:center;} +.defaultSkin td.mceCenter table {margin:0 auto; text-align:left;} +.defaultSkin td.mceRight table {margin:0 0 0 auto;} + +/* Button */ +.defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px} +.defaultSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0} +.defaultSkin a.mceButtonActive, .defaultSkin a.mceButtonSelected {border:1px solid #0A246A; background-color:#C2CBE0} +.defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +.defaultSkin .mceButtonLabeled {width:auto} +.defaultSkin .mceButtonLabeled span.mceIcon {float:left} +.defaultSkin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica} +.defaultSkin .mceButtonDisabled .mceButtonLabel {color:#888} + +/* Separator */ +.defaultSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:2px 2px 0 4px} + +/* ListBox */ +.defaultSkin .mceListBox, .defaultSkin .mceListBox a {display:block} +.defaultSkin .mceListBox .mceText {padding-left:4px; width:70px; text-align:left; border:1px solid #CCC; border-right:0; background:#FFF; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden} +.defaultSkin .mceListBox .mceOpen {width:9px; height:20px; background:url(../../img/icons.gif) -741px 0; margin-right:2px; border:1px solid #CCC;} +.defaultSkin table.mceListBoxEnabled:hover .mceText, .defaultSkin .mceListBoxHover .mceText, .defaultSkin .mceListBoxSelected .mceText {border:1px solid #A2ABC0; border-right:0; background:#FFF} +.defaultSkin table.mceListBoxEnabled:hover .mceOpen, .defaultSkin .mceListBoxHover .mceOpen, .defaultSkin .mceListBoxSelected .mceOpen {background-color:#FFF; border:1px solid #A2ABC0} +.defaultSkin .mceListBoxDisabled a.mceText {color:gray; background-color:transparent;} +.defaultSkin .mceListBoxMenu {overflow:auto; overflow-x:hidden} +.defaultSkin .mceOldBoxModel .mceListBox .mceText {height:22px} +.defaultSkin .mceOldBoxModel .mceListBox .mceOpen {width:11px; height:22px;} +.defaultSkin select.mceNativeListBox {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:7pt; background:#F0F0EE; border:1px solid gray; margin-right:2px;} + +/* SplitButton */ +.defaultSkin .mceSplitButton {width:32px; height:20px; direction:ltr} +.defaultSkin .mceSplitButton a, .defaultSkin .mceSplitButton span {height:20px; display:block} +.defaultSkin .mceSplitButton a.mceAction {width:20px; border:1px solid #F0F0EE; border-right:0;} +.defaultSkin .mceSplitButton span.mceAction {width:20px; background-image:url(../../img/icons.gif);} +.defaultSkin .mceSplitButton a.mceOpen {width:9px; background:url(../../img/icons.gif) -741px 0; border:1px solid #F0F0EE;} +.defaultSkin .mceSplitButton span.mceOpen {display:none} +.defaultSkin table.mceSplitButtonEnabled:hover a.mceAction, .defaultSkin .mceSplitButtonHover a.mceAction, .defaultSkin .mceSplitButtonSelected a.mceAction {border:1px solid #0A246A; border-right:0; background-color:#B2BBD0} +.defaultSkin table.mceSplitButtonEnabled:hover a.mceOpen, .defaultSkin .mceSplitButtonHover a.mceOpen, .defaultSkin .mceSplitButtonSelected a.mceOpen {background-color:#B2BBD0; border:1px solid #0A246A;} +.defaultSkin .mceSplitButtonDisabled .mceAction, .defaultSkin .mceSplitButtonDisabled a.mceOpen {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +.defaultSkin .mceSplitButtonActive a.mceAction {border:1px solid #0A246A; background-color:#C2CBE0} +.defaultSkin .mceSplitButtonActive a.mceOpen {border-left:0;} + +/* ColorSplitButton */ +.defaultSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray} +.defaultSkin .mceColorSplitMenu td {padding:2px} +.defaultSkin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080} +.defaultSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} +.defaultSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF} +.defaultSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2} +.defaultSkin a.mceMoreColors:hover {border:1px solid #0A246A} +.defaultSkin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a} +.defaultSkin .mce_forecolor span.mceAction, .defaultSkin .mce_backcolor span.mceAction {overflow:hidden; height:16px} + +/* Menu */ +.defaultSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8} +.defaultSkin .mceNoIcons span.mceIcon {width:0;} +.defaultSkin .mceNoIcons a .mceText {padding-left:10px} +.defaultSkin .mceMenu table {background:#FFF} +.defaultSkin .mceMenu a, .defaultSkin .mceMenu span, .defaultSkin .mceMenu {display:block} +.defaultSkin .mceMenu td {height:20px} +.defaultSkin .mceMenu a {position:relative;padding:3px 0 4px 0} +.defaultSkin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block} +.defaultSkin .mceMenu span.mceText, .defaultSkin .mceMenu .mcePreview {font-size:11px} +.defaultSkin .mceMenu pre.mceText {font-family:Monospace} +.defaultSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;} +.defaultSkin .mceMenu .mceMenuItemEnabled a:hover, .defaultSkin .mceMenu .mceMenuItemActive {background-color:#dbecf3} +.defaultSkin td.mceMenuItemSeparator {background:#DDD; height:1px} +.defaultSkin .mceMenuItemTitle a {border:0; background:#EEE; border-bottom:1px solid #DDD} +.defaultSkin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px} +.defaultSkin .mceMenuItemDisabled .mceText {color:#888} +.defaultSkin .mceMenuItemSelected .mceIcon {background:url(img/menu_check.gif)} +.defaultSkin .mceNoIcons .mceMenuItemSelected a {background:url(img/menu_arrow.gif) no-repeat -6px center} +.defaultSkin .mceMenu span.mceMenuLine {display:none} +.defaultSkin .mceMenuItemSub a {background:url(img/menu_arrow.gif) no-repeat top right;} + +/* Progress,Resize */ +.defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50); background:#FFF} +.defaultSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} + +/* Formats */ +.defaultSkin .mce_formatPreview a {font-size:10px} +.defaultSkin .mce_p span.mceText {} +.defaultSkin .mce_address span.mceText {font-style:italic} +.defaultSkin .mce_pre span.mceText {font-family:monospace} +.defaultSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} +.defaultSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} +.defaultSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} +.defaultSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} +.defaultSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} +.defaultSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} + +/* Theme */ +.defaultSkin span.mce_bold {background-position:0 0} +.defaultSkin span.mce_italic {background-position:-60px 0} +.defaultSkin span.mce_underline {background-position:-140px 0} +.defaultSkin span.mce_strikethrough {background-position:-120px 0} +.defaultSkin span.mce_undo {background-position:-160px 0} +.defaultSkin span.mce_redo {background-position:-100px 0} +.defaultSkin span.mce_cleanup {background-position:-40px 0} +.defaultSkin span.mce_bullist {background-position:-20px 0} +.defaultSkin span.mce_numlist {background-position:-80px 0} +.defaultSkin span.mce_justifyleft {background-position:-460px 0} +.defaultSkin span.mce_justifyright {background-position:-480px 0} +.defaultSkin span.mce_justifycenter {background-position:-420px 0} +.defaultSkin span.mce_justifyfull {background-position:-440px 0} +.defaultSkin span.mce_anchor {background-position:-200px 0} +.defaultSkin span.mce_indent {background-position:-400px 0} +.defaultSkin span.mce_outdent {background-position:-540px 0} +.defaultSkin span.mce_link {background-position:-500px 0} +.defaultSkin span.mce_unlink {background-position:-640px 0} +.defaultSkin span.mce_sub {background-position:-600px 0} +.defaultSkin span.mce_sup {background-position:-620px 0} +.defaultSkin span.mce_removeformat {background-position:-580px 0} +.defaultSkin span.mce_newdocument {background-position:-520px 0} +.defaultSkin span.mce_image {background-position:-380px 0} +.defaultSkin span.mce_help {background-position:-340px 0} +.defaultSkin span.mce_code {background-position:-260px 0} +.defaultSkin span.mce_hr {background-position:-360px 0} +.defaultSkin span.mce_visualaid {background-position:-660px 0} +.defaultSkin span.mce_charmap {background-position:-240px 0} +.defaultSkin span.mce_paste {background-position:-560px 0} +.defaultSkin span.mce_copy {background-position:-700px 0} +.defaultSkin span.mce_cut {background-position:-680px 0} +.defaultSkin span.mce_blockquote {background-position:-220px 0} +.defaultSkin .mce_forecolor span.mceAction {background-position:-720px 0} +.defaultSkin .mce_backcolor span.mceAction {background-position:-760px 0} +.defaultSkin span.mce_forecolorpicker {background-position:-720px 0} +.defaultSkin span.mce_backcolorpicker {background-position:-760px 0} + +/* Plugins */ +.defaultSkin span.mce_advhr {background-position:-0px -20px} +.defaultSkin span.mce_ltr {background-position:-20px -20px} +.defaultSkin span.mce_rtl {background-position:-40px -20px} +.defaultSkin span.mce_emotions {background-position:-60px -20px} +.defaultSkin span.mce_fullpage {background-position:-80px -20px} +.defaultSkin span.mce_fullscreen {background-position:-100px -20px} +.defaultSkin span.mce_iespell {background-position:-120px -20px} +.defaultSkin span.mce_insertdate {background-position:-140px -20px} +.defaultSkin span.mce_inserttime {background-position:-160px -20px} +.defaultSkin span.mce_absolute {background-position:-180px -20px} +.defaultSkin span.mce_backward {background-position:-200px -20px} +.defaultSkin span.mce_forward {background-position:-220px -20px} +.defaultSkin span.mce_insert_layer {background-position:-240px -20px} +.defaultSkin span.mce_insertlayer {background-position:-260px -20px} +.defaultSkin span.mce_movebackward {background-position:-280px -20px} +.defaultSkin span.mce_moveforward {background-position:-300px -20px} +.defaultSkin span.mce_media {background-position:-320px -20px} +.defaultSkin span.mce_nonbreaking {background-position:-340px -20px} +.defaultSkin span.mce_pastetext {background-position:-360px -20px} +.defaultSkin span.mce_pasteword {background-position:-380px -20px} +.defaultSkin span.mce_selectall {background-position:-400px -20px} +.defaultSkin span.mce_preview {background-position:-420px -20px} +.defaultSkin span.mce_print {background-position:-440px -20px} +.defaultSkin span.mce_cancel {background-position:-460px -20px} +.defaultSkin span.mce_save {background-position:-480px -20px} +.defaultSkin span.mce_replace {background-position:-500px -20px} +.defaultSkin span.mce_search {background-position:-520px -20px} +.defaultSkin span.mce_styleprops {background-position:-560px -20px} +.defaultSkin span.mce_table {background-position:-580px -20px} +.defaultSkin span.mce_cell_props {background-position:-600px -20px} +.defaultSkin span.mce_delete_table {background-position:-620px -20px} +.defaultSkin span.mce_delete_col {background-position:-640px -20px} +.defaultSkin span.mce_delete_row {background-position:-660px -20px} +.defaultSkin span.mce_col_after {background-position:-680px -20px} +.defaultSkin span.mce_col_before {background-position:-700px -20px} +.defaultSkin span.mce_row_after {background-position:-720px -20px} +.defaultSkin span.mce_row_before {background-position:-740px -20px} +.defaultSkin span.mce_merge_cells {background-position:-760px -20px} +.defaultSkin span.mce_table_props {background-position:-980px -20px} +.defaultSkin span.mce_row_props {background-position:-780px -20px} +.defaultSkin span.mce_split_cells {background-position:-800px -20px} +.defaultSkin span.mce_template {background-position:-820px -20px} +.defaultSkin span.mce_visualchars {background-position:-840px -20px} +.defaultSkin span.mce_abbr {background-position:-860px -20px} +.defaultSkin span.mce_acronym {background-position:-880px -20px} +.defaultSkin span.mce_attribs {background-position:-900px -20px} +.defaultSkin span.mce_cite {background-position:-920px -20px} +.defaultSkin span.mce_del {background-position:-940px -20px} +.defaultSkin span.mce_ins {background-position:-960px -20px} +.defaultSkin span.mce_pagebreak {background-position:0 -40px} +.defaultSkin span.mce_restoredraft {background-position:-20px -40px} +.defaultSkin span.mce_spellchecker {background-position:-540px -20px} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css new file mode 100644 index 0000000..c2e30c7 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css @@ -0,0 +1,23 @@ +body, td, pre { margin:8px;} +body.mceForceColors {background:#FFF; color:#000;} +h1 {font-size: 2em} +h2 {font-size: 1.5em} +h3 {font-size: 1.17em} +h4 {font-size: 1em} +h5 {font-size: .83em} +h6 {font-size: .75em} +.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} +a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(../default/img/items.gif) no-repeat 0 0;} +span.mceItemNbsp {background: #DDD} +td.mceSelected, th.mceSelected {background-color:#3399ff !important} +img {border:0;} +table {cursor:default} +table td, table th {cursor:text} +ins {border-bottom:1px solid green; text-decoration: none; color:green} +del {color:red; text-decoration:line-through} +cite {border-bottom:1px dashed blue} +acronym {border-bottom:1px dotted #CCC; cursor:help} +abbr {border-bottom:1px dashed #CCC; cursor:help} + +img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} +font[face=mceinline] {font-family:inherit !important} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css new file mode 100644 index 0000000..b2ed097 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css @@ -0,0 +1,105 @@ +/* Generic */ +body { +font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; +background:#F0F0EE; +color: black; +padding:0; +margin:8px 8px 0 8px; +} + +html {background:#F0F0EE; color:#000;} +td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +textarea {resize:none;outline:none;} +a:link, a:visited {color:black;background-color:transparent;} +a:hover {color:#2B6FB6;background-color:transparent;} +.nowrap {white-space: nowrap} + +/* Forms */ +fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} +legend {color:#2B6FB6; font-weight:bold;} +label.msg {display:none;} +label.invalid {color:#EE0000; display:inline;background-color:transparent;} +input.invalid {border:1px solid #EE0000;background-color:transparent;} +input {background:#FFF; border:1px solid #CCC;color:black;} +input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +input, select, textarea {border:1px solid #808080;} +input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} +input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} +.input_noborder {border:0;} + +/* Buttons */ +#insert, #cancel, input.button, .updateButton { +font-weight:bold; +width:94px; height:23px; +cursor:pointer; +padding-bottom:2px; +float:left; +} + +#cancel {float:right} + +/* Browse */ +a.pickcolor, a.browse {text-decoration:none} +a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} +.mceOldBoxModel a.browse span {width:22px; height:20px;} +a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} +a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} +a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} +.mceOldBoxModel a.pickcolor span {width:21px; height:17px;} +a.pickcolor:hover span {background-color:#B2BBD0;} +a.pickcolor:hover span.disabled {} + +/* Charmap */ +table.charmap {border:1px solid #AAA; text-align:center} +td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} +#charmap a {display:block; color:#000; text-decoration:none; border:0} +#charmap a:hover {background:#CCC;color:#2B6FB6} +#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} +#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} + +/* Source */ +.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} +.mceActionPanel {margin-top:5px;} + +/* Tabs classes */ +.tabs {width:100%; height:18px; line-height:normal;} +.tabs ul {margin:0; padding:0; list-style:none;} +.tabs li {float:left; border: 1px solid black; border-bottom:0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block; cursor:pointer;} +.tabs li.current {font-weight: bold; margin-right:2px;} +.tabs span {float:left; display:block; padding:0px 10px 0 0;} +.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} +.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} + +/* Panels */ +.panel_wrapper div.panel {display:none;} +.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} +.panel_wrapper {border:1px solid #919B9C; padding:10px; padding-top:5px; clear:both; background:white;} + +/* Columns */ +.column {float:left;} +.properties {width:100%;} +.properties .column1 {} +.properties .column2 {text-align:left;} + +/* Titles */ +h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} +h3 {font-size:14px;} +.title {font-size:12px; font-weight:bold; color:#2B6FB6;} + +/* Dialog specific */ +#link .panel_wrapper, #link div.current {height:125px;} +#image .panel_wrapper, #image div.current {height:200px;} +#plugintable thead {font-weight:bold; background:#DDD;} +#plugintable, #about #plugintable td {border:1px solid #919B9C;} +#plugintable {width:96%; margin-top:10px;} +#pluginscontainer {height:290px; overflow:auto;} +#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;} +#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} +#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} +#colorpicker #light div {overflow:hidden;} +#colorpicker #previewblock {float:right; padding-left:10px; height:20px;} +#colorpicker .panel_wrapper div.current {height:175px;} +#colorpicker #namedcolors {width:150px;} +#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} +#colorpicker #colornamecontainer {margin-top:5px;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css new file mode 100644 index 0000000..901446e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css @@ -0,0 +1,101 @@ +/* Reset */ +.highcontrastSkin table, .highcontrastSkin tbody, .highcontrastSkin a, .highcontrastSkin img, .highcontrastSkin tr, .highcontrastSkin div, .highcontrastSkin td, .highcontrastSkin iframe, .highcontrastSkin span, .highcontrastSkin *, .highcontrastSkin .mceText {border:0; margin:0; padding:0; vertical-align:baseline; border-collapse:separate;} +.highcontrastSkin a:hover, .highcontrastSkin a:link, .highcontrastSkin a:visited, .highcontrastSkin a:active {text-decoration:none; font-weight:normal; cursor:default;} +.highcontrastSkin table td {vertical-align:middle} + +.highcontrastSkin .mceIconOnly {display: block !important;} + +/* External */ +.highcontrastSkin .mceExternalToolbar {position:absolute; border:1px solid; border-bottom:0; display:none; background-color: white;} +.highcontrastSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;} +.highcontrastSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px;} + +/* Layout */ +.highcontrastSkin table.mceLayout {border: 1px solid;} +.highcontrastSkin .mceIframeContainer {border-top:1px solid; border-bottom:1px solid} +.highcontrastSkin .mceStatusbar a:hover {text-decoration:underline} +.highcontrastSkin .mceStatusbar {display:block; line-height:1.5em; overflow:visible;} +.highcontrastSkin .mceStatusbar div {float:left} +.highcontrastSkin .mceStatusbar a.mceResize {display:block; float:right; width:20px; height:20px; cursor:se-resize; outline:0} + +.highcontrastSkin .mceToolbar td { display: inline-block; float: left;} +.highcontrastSkin .mceToolbar tr { display: block;} +.highcontrastSkin .mceToolbar table { display: block; } + +/* Button */ + +.highcontrastSkin .mceButton { display:block; margin: 2px; padding: 5px 10px;border: 1px solid; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; -ms-border-radius: 3px; height: 2em;} +.highcontrastSkin .mceButton .mceVoiceLabel { height: 100%; vertical-align: center; line-height: 2em} +.highcontrastSkin .mceButtonDisabled .mceVoiceLabel { opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60);} +.highcontrastSkin .mceButtonActive, .highcontrastSkin .mceButton:focus, .highcontrastSkin .mceButton:active { border: 5px solid; padding: 1px 6px;-webkit-focus-ring-color:none;outline:none;} + +/* Separator */ +.highcontrastSkin .mceSeparator {display:block; width:16px; height:26px;} + +/* ListBox */ +.highcontrastSkin .mceListBox { display: block; margin:2px;-webkit-focus-ring-color:none;outline:none;} +.highcontrastSkin .mceListBox .mceText {padding: 5px 6px; line-height: 2em; width: 15ex; overflow: hidden;} +.highcontrastSkin .mceListBoxDisabled .mceText { opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60);} +.highcontrastSkin .mceListBox a.mceText { padding: 5px 10px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-right: 0; border-radius: 3px 0px 0px 3px; -moz-border-radius: 3px 0px 0px 3px; -webkit-border-radius: 3px 0px 0px 3px; -ms-border-radius: 3px 0px 0px 3px;} +.highcontrastSkin .mceListBox a.mceOpen { padding: 5px 4px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-left: 0; border-radius: 0px 3px 3px 0px; -moz-border-radius: 0px 3px 3px 0px; -webkit-border-radius: 0px 3px 3px 0px; -ms-border-radius: 0px 3px 3px 0px;} +.highcontrastSkin .mceListBox:focus a.mceText, .highcontrastSkin .mceListBox:active a.mceText { border-width: 5px; padding: 1px 10px 1px 6px;} +.highcontrastSkin .mceListBox:focus a.mceOpen, .highcontrastSkin .mceListBox:active a.mceOpen { border-width: 5px; padding: 1px 0px 1px 4px;} + +.highcontrastSkin .mceListBoxMenu {overflow-y:auto} + +/* SplitButton */ +.highcontrastSkin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} + +.highcontrastSkin .mceSplitButton { border-collapse: collapse; margin: 2px; height: 2em; line-height: 2em;-webkit-focus-ring-color:none;outline:none;} +.highcontrastSkin .mceSplitButton td { display: table-cell; float: none; margin: 0; padding: 0; height: 2em;} +.highcontrastSkin .mceSplitButton tr { display: table-row; } +.highcontrastSkin table.mceSplitButton { display: table; } +.highcontrastSkin .mceSplitButton a.mceAction { padding: 5px 10px; display: block; height: 2em; line-height: 2em; overflow: hidden; border: 1px solid; border-right: 0; border-radius: 3px 0px 0px 3px; -moz-border-radius: 3px 0px 0px 3px; -webkit-border-radius: 3px 0px 0px 3px; -ms-border-radius: 3px 0px 0px 3px;} +.highcontrastSkin .mceSplitButton a.mceOpen { padding: 5px 4px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-radius: 0px 3px 3px 0px; -moz-border-radius: 0px 3px 3px 0px; -webkit-border-radius: 0px 3px 3px 0px; -ms-border-radius: 0px 3px 3px 0px;} +.highcontrastSkin .mceSplitButton .mceVoiceLabel { height: 2em; vertical-align: center; line-height: 2em; } +.highcontrastSkin .mceSplitButton:focus a.mceAction, .highcontrastSkin .mceSplitButton:active a.mceAction { border-width: 5px; border-right-width: 1px; padding: 1px 10px 1px 6px;-webkit-focus-ring-color:none;outline:none;} +.highcontrastSkin .mceSplitButton:focus a.mceOpen, .highcontrastSkin .mceSplitButton:active a.mceOpen { border-width: 5px; border-left-width: 1px; padding: 1px 0px 1px 4px;-webkit-focus-ring-color:none;outline:none;} + +/* Menu */ +.highcontrastSkin .mceNoIcons span.mceIcon {width:0;} +.highcontrastSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid; } +.highcontrastSkin .mceMenu table {background:white; color: black} +.highcontrastSkin .mceNoIcons a .mceText {padding-left:10px} +.highcontrastSkin .mceMenu a, .highcontrastSkin .mceMenu span, .highcontrastSkin .mceMenu {display:block;background:white; color: black} +.highcontrastSkin .mceMenu td {height:2em} +.highcontrastSkin .mceMenu a {position:relative;padding:3px 0 4px 0; display: block;} +.highcontrastSkin .mceMenu .mceText {position:relative; display:block; cursor:default; margin:0; padding:0 25px 0 25px;} +.highcontrastSkin .mceMenu pre.mceText {font-family:Monospace} +.highcontrastSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:26px;} +.highcontrastSkin td.mceMenuItemSeparator {border-top:1px solid; height:1px} +.highcontrastSkin .mceMenuItemTitle a {border:0; border-bottom:1px solid} +.highcontrastSkin .mceMenuItemTitle span.mceText {font-weight:bold; padding-left:4px} +.highcontrastSkin .mceNoIcons .mceMenuItemSelected span.mceText:before {content: "\2713\A0";} +.highcontrastSkin .mceMenu span.mceMenuLine {display:none} +.highcontrastSkin .mceMenuItemSub a .mceText:after {content: "\A0\25B8"} + +/* ColorSplitButton */ +.highcontrastSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid; color: #000} +.highcontrastSkin .mceColorSplitMenu td {padding:2px} +.highcontrastSkin .mceColorSplitMenu a {display:block; width:16px; height:16px; overflow:hidden; color:#000; margin: 0; padding: 0;} +.highcontrastSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} +.highcontrastSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF} +.highcontrastSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid; background-color:#B6BDD2} +.highcontrastSkin a.mceMoreColors:hover {border:1px solid #0A246A; color: #000;} +.highcontrastSkin .mceColorPreview {display:none;} +.highcontrastSkin .mce_forecolor span.mceAction, .highcontrastSkin .mce_backcolor span.mceAction {height:17px;overflow:hidden} + +/* Progress,Resize */ +.highcontrastSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF} +.highcontrastSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} + +/* Formats */ +.highcontrastSkin .mce_p span.mceText {} +.highcontrastSkin .mce_address span.mceText {font-style:italic} +.highcontrastSkin .mce_pre span.mceText {font-family:monospace} +.highcontrastSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} +.highcontrastSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} +.highcontrastSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} +.highcontrastSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} +.highcontrastSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} +.highcontrastSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css new file mode 100644 index 0000000..4ac4e4d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css @@ -0,0 +1,46 @@ +body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;} +body {background:#FFF;} +body.mceForceColors {background:#FFF; color:#000;} +h1 {font-size: 2em} +h2 {font-size: 1.5em} +h3 {font-size: 1.17em} +h4 {font-size: 1em} +h5 {font-size: .83em} +h6 {font-size: .75em} +.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} +a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(../default/img/items.gif) no-repeat 0 0;} +span.mceItemNbsp {background: #DDD} +td.mceSelected, th.mceSelected {background-color:#3399ff !important} +img {border:0;} +table {cursor:default} +table td, table th {cursor:text} +ins {border-bottom:1px solid green; text-decoration: none; color:green} +del {color:red; text-decoration:line-through} +cite {border-bottom:1px dashed blue} +acronym {border-bottom:1px dotted #CCC; cursor:help} +abbr {border-bottom:1px dashed #CCC; cursor:help} + +/* IE */ +* html body { +scrollbar-3dlight-color:#F0F0EE; +scrollbar-arrow-color:#676662; +scrollbar-base-color:#F0F0EE; +scrollbar-darkshadow-color:#DDD; +scrollbar-face-color:#E0E0DD; +scrollbar-highlight-color:#F0F0EE; +scrollbar-shadow-color:#F0F0EE; +scrollbar-track-color:#F5F5F5; +} + +img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} +font[face=mceinline] {font-family:inherit !important} + +.mceItemMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc} +.mceItemShockWave {background-image:url(../../img/shockwave.gif)} +.mceItemFlash {background-image:url(../../img/flash.gif)} +.mceItemQuickTime {background-image:url(../../img/quicktime.gif)} +.mceItemWindowsMedia {background-image:url(../../img/windowsmedia.gif)} +.mceItemRealMedia {background-image:url(../../img/realmedia.gif)} +.mceItemVideo {background-image:url(../../img/video.gif)} +.mceItemIframe {background-image:url(../../img/iframe.gif)} +.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../../img/pagebreak.gif) no-repeat center top;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css new file mode 100644 index 0000000..ec08772 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css @@ -0,0 +1,117 @@ +/* Generic */ +body { +font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; +scrollbar-3dlight-color:#F0F0EE; +scrollbar-arrow-color:#676662; +scrollbar-base-color:#F0F0EE; +scrollbar-darkshadow-color:#DDDDDD; +scrollbar-face-color:#E0E0DD; +scrollbar-highlight-color:#F0F0EE; +scrollbar-shadow-color:#F0F0EE; +scrollbar-track-color:#F5F5F5; +background:#F0F0EE; +padding:0; +margin:8px 8px 0 8px; +} + +html {background:#F0F0EE;} +td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +textarea {resize:none;outline:none;} +a:link, a:visited {color:black;} +a:hover {color:#2B6FB6;} +.nowrap {white-space: nowrap} + +/* Forms */ +fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} +legend {color:#2B6FB6; font-weight:bold;} +label.msg {display:none;} +label.invalid {color:#EE0000; display:inline;} +input.invalid {border:1px solid #EE0000;} +input {background:#FFF; border:1px solid #CCC;} +input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +input, select, textarea {border:1px solid #808080;} +input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} +input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} +.input_noborder {border:0;} + +/* Buttons */ +#insert, #cancel, input.button, .updateButton { +border:0; margin:0; padding:0; +font-weight:bold; +width:94px; height:26px; +background:url(../default/img/buttons.png) 0 -26px; +cursor:pointer; +padding-bottom:2px; +float:left; +} + +#insert {background:url(../default/img/buttons.png) 0 -52px} +#cancel {background:url(../default/img/buttons.png) 0 0; float:right} + +/* Browse */ +a.pickcolor, a.browse {text-decoration:none} +a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} +.mceOldBoxModel a.browse span {width:22px; height:20px;} +a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} +a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} +a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} +.mceOldBoxModel a.pickcolor span {width:21px; height:17px;} +a.pickcolor:hover span {background-color:#B2BBD0;} +a.pickcolor:hover span.disabled {} + +/* Charmap */ +table.charmap {border:1px solid #AAA; text-align:center} +td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} +#charmap a {display:block; color:#000; text-decoration:none; border:0} +#charmap a:hover {background:#CCC;color:#2B6FB6} +#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} +#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} + +/* Source */ +.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} +.mceActionPanel {margin-top:5px;} + +/* Tabs classes */ +.tabs {width:100%; height:18px; line-height:normal; background:url(../default/img/tabs.gif) repeat-x 0 -72px;} +.tabs ul {margin:0; padding:0; list-style:none;} +.tabs li {float:left; background:url(../default/img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;} +.tabs li.current {background:url(../default/img/tabs.gif) no-repeat 0 -18px; margin-right:2px;} +.tabs span {float:left; display:block; background:url(../default/img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;} +.tabs .current span {background:url(../default/img/tabs.gif) no-repeat right -54px;} +.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} +.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} + +/* Panels */ +.panel_wrapper div.panel {display:none;} +.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} +.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;} + +/* Columns */ +.column {float:left;} +.properties {width:100%;} +.properties .column1 {} +.properties .column2 {text-align:left;} + +/* Titles */ +h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} +h3 {font-size:14px;} +.title {font-size:12px; font-weight:bold; color:#2B6FB6;} + +/* Dialog specific */ +#link .panel_wrapper, #link div.current {height:125px;} +#image .panel_wrapper, #image div.current {height:200px;} +#plugintable thead {font-weight:bold; background:#DDD;} +#plugintable, #about #plugintable td {border:1px solid #919B9C;} +#plugintable {width:96%; margin-top:10px;} +#pluginscontainer {height:290px; overflow:auto;} +#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;} +#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} +#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} +#colorpicker #light div {overflow:hidden;} +#colorpicker #previewblock {float:right; padding-left:10px; height:20px;} +#colorpicker .panel_wrapper div.current {height:175px;} +#colorpicker #namedcolors {width:150px;} +#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} +#colorpicker #colornamecontainer {margin-top:5px;} +#colorpicker #picker_panel fieldset {margin:auto;width:325px;} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png new file mode 100644 index 0000000..12cfb41 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png new file mode 100644 index 0000000..8996c74 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png new file mode 100644 index 0000000..bd5d255 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css new file mode 100644 index 0000000..df596bf --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css @@ -0,0 +1,216 @@ +/* Reset */ +.o2k7Skin table, .o2k7Skin tbody, .o2k7Skin a, .o2k7Skin img, .o2k7Skin tr, .o2k7Skin div, .o2k7Skin td, .o2k7Skin iframe, .o2k7Skin span, .o2k7Skin *, .o2k7Skin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left} +.o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000} +.o2k7Skin table td {vertical-align:middle} + +/* Containers */ +.o2k7Skin table {background:transparent} +.o2k7Skin iframe {display:block;} +.o2k7Skin .mceToolbar {height:26px} + +/* External */ +.o2k7Skin .mceExternalToolbar {position:absolute; border:1px solid #ABC6DD; border-bottom:0; display:none} +.o2k7Skin .mceExternalToolbar td.mceToolbar {padding-right:13px;} +.o2k7Skin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0} + +/* Layout */ +.o2k7Skin table.mceLayout {border:0; border-left:1px solid #ABC6DD; border-right:1px solid #ABC6DD} +.o2k7Skin table.mceLayout tr.mceFirst td {border-top:1px solid #ABC6DD} +.o2k7Skin table.mceLayout tr.mceLast td {border-bottom:1px solid #ABC6DD} +.o2k7Skin table.mceToolbar, .o2k7Skin tr.mceFirst .mceToolbar tr td, .o2k7Skin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0} +.o2k7Skin .mceIframeContainer {border-top:1px solid #ABC6DD; border-bottom:1px solid #ABC6DD} +.o2k7Skin td.mceToolbar{background:#E5EFFD} +.o2k7Skin .mceStatusbar {background:#E5EFFD; display:block; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; height:20px} +.o2k7Skin .mceStatusbar div {float:left; padding:2px} +.o2k7Skin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize; outline:0} +.o2k7Skin .mceStatusbar a:hover {text-decoration:underline} +.o2k7Skin table.mceToolbar {margin-left:3px} +.o2k7Skin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; margin-left:3px;} +.o2k7Skin .mceToolbar td.mceFirst span {margin:0} +.o2k7Skin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px} +.o2k7Skin .mceToolbar .mceToolbarEndListBox span, .o2k7Skin .mceToolbar .mceToolbarStartListBox span {display:none} +.o2k7Skin span.mceIcon, .o2k7Skin img.mceIcon {display:block; width:20px; height:20px} +.o2k7Skin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} +.o2k7Skin td.mceCenter {text-align:center;} +.o2k7Skin td.mceCenter table {margin:0 auto; text-align:left;} +.o2k7Skin td.mceRight table {margin:0 0 0 auto;} + +/* Button */ +.o2k7Skin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px} +.o2k7Skin a.mceButton span, .o2k7Skin a.mceButton img {margin-left:1px} +.o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px} +.o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px} +.o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px} +.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +.o2k7Skin .mceButtonLabeled {width:auto} +.o2k7Skin .mceButtonLabeled span.mceIcon {float:left} +.o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica} +.o2k7Skin .mceButtonDisabled .mceButtonLabel {color:#888} + +/* Separator */ +.o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px} + +/* ListBox */ +.o2k7Skin .mceListBox {margin-left:3px} +.o2k7Skin .mceListBox, .o2k7Skin .mceListBox a {display:block} +.o2k7Skin .mceListBox .mceText {padding-left:4px; text-align:left; width:70px; border:1px solid #b3c7e1; border-right:0; background:#eaf2fb; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden} +.o2k7Skin .mceListBox .mceOpen {width:14px; height:22px; background:url(img/button_bg.png) -66px 0} +.o2k7Skin table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF} +.o2k7Skin table.mceListBoxEnabled:hover .mceOpen, .o2k7Skin .mceListBoxHover .mceOpen, .o2k7Skin .mceListBoxSelected .mceOpen {background-position:-66px -22px} +.o2k7Skin .mceListBoxDisabled .mceText {color:gray} +.o2k7Skin .mceListBoxMenu {overflow:auto; overflow-x:hidden} +.o2k7Skin .mceOldBoxModel .mceListBox .mceText {height:22px} +.o2k7Skin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px; border:1px solid #b3c7e1; background:#FFF;} + +/* SplitButton */ +.o2k7Skin .mceSplitButton, .o2k7Skin .mceSplitButton a, .o2k7Skin .mceSplitButton span {display:block; height:22px; direction:ltr} +.o2k7Skin .mceSplitButton {background:url(img/button_bg.png)} +.o2k7Skin .mceSplitButton a.mceAction {width:22px} +.o2k7Skin .mceSplitButton span.mceAction {width:22px; background-image:url(../../img/icons.gif)} +.o2k7Skin .mceSplitButton a.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0} +.o2k7Skin .mceSplitButton span.mceOpen {display:none} +.o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px} +.o2k7Skin table.mceSplitButtonEnabled:hover a.mceOpen, .o2k7Skin .mceSplitButtonHover a.mceOpen, .o2k7Skin .mceSplitButtonSelected a.mceOpen {background-position:-44px -44px} +.o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +.o2k7Skin .mceSplitButtonActive {background-position:0 -44px} + +/* ColorSplitButton */ +.o2k7Skin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray} +.o2k7Skin .mceColorSplitMenu td {padding:2px} +.o2k7Skin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080} +.o2k7Skin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} +.o2k7Skin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF} +.o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2} +.o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A} +.o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a;overflow:hidden} +.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden} + +/* Menu */ +.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD} +.o2k7Skin .mceNoIcons span.mceIcon {width:0;} +.o2k7Skin .mceNoIcons a .mceText {padding-left:10px} +.o2k7Skin .mceMenu table {background:#FFF} +.o2k7Skin .mceMenu a, .o2k7Skin .mceMenu span, .o2k7Skin .mceMenu {display:block} +.o2k7Skin .mceMenu td {height:20px} +.o2k7Skin .mceMenu a {position:relative;padding:3px 0 4px 0} +.o2k7Skin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block} +.o2k7Skin .mceMenu span.mceText, .o2k7Skin .mceMenu .mcePreview {font-size:11px} +.o2k7Skin .mceMenu pre.mceText {font-family:Monospace} +.o2k7Skin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;} +.o2k7Skin .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#dbecf3} +.o2k7Skin td.mceMenuItemSeparator {background:#DDD; height:1px} +.o2k7Skin .mceMenuItemTitle a {border:0; background:#E5EFFD; border-bottom:1px solid #ABC6DD} +.o2k7Skin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px} +.o2k7Skin .mceMenuItemDisabled .mceText {color:#888} +.o2k7Skin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)} +.o2k7Skin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center} +.o2k7Skin .mceMenu span.mceMenuLine {display:none} +.o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;} + +/* Progress,Resize */ +.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF} +.o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} + +/* Formats */ +.o2k7Skin .mce_formatPreview a {font-size:10px} +.o2k7Skin .mce_p span.mceText {} +.o2k7Skin .mce_address span.mceText {font-style:italic} +.o2k7Skin .mce_pre span.mceText {font-family:monospace} +.o2k7Skin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} +.o2k7Skin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} +.o2k7Skin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} +.o2k7Skin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} +.o2k7Skin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} +.o2k7Skin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} + +/* Theme */ +.o2k7Skin span.mce_bold {background-position:0 0} +.o2k7Skin span.mce_italic {background-position:-60px 0} +.o2k7Skin span.mce_underline {background-position:-140px 0} +.o2k7Skin span.mce_strikethrough {background-position:-120px 0} +.o2k7Skin span.mce_undo {background-position:-160px 0} +.o2k7Skin span.mce_redo {background-position:-100px 0} +.o2k7Skin span.mce_cleanup {background-position:-40px 0} +.o2k7Skin span.mce_bullist {background-position:-20px 0} +.o2k7Skin span.mce_numlist {background-position:-80px 0} +.o2k7Skin span.mce_justifyleft {background-position:-460px 0} +.o2k7Skin span.mce_justifyright {background-position:-480px 0} +.o2k7Skin span.mce_justifycenter {background-position:-420px 0} +.o2k7Skin span.mce_justifyfull {background-position:-440px 0} +.o2k7Skin span.mce_anchor {background-position:-200px 0} +.o2k7Skin span.mce_indent {background-position:-400px 0} +.o2k7Skin span.mce_outdent {background-position:-540px 0} +.o2k7Skin span.mce_link {background-position:-500px 0} +.o2k7Skin span.mce_unlink {background-position:-640px 0} +.o2k7Skin span.mce_sub {background-position:-600px 0} +.o2k7Skin span.mce_sup {background-position:-620px 0} +.o2k7Skin span.mce_removeformat {background-position:-580px 0} +.o2k7Skin span.mce_newdocument {background-position:-520px 0} +.o2k7Skin span.mce_image {background-position:-380px 0} +.o2k7Skin span.mce_help {background-position:-340px 0} +.o2k7Skin span.mce_code {background-position:-260px 0} +.o2k7Skin span.mce_hr {background-position:-360px 0} +.o2k7Skin span.mce_visualaid {background-position:-660px 0} +.o2k7Skin span.mce_charmap {background-position:-240px 0} +.o2k7Skin span.mce_paste {background-position:-560px 0} +.o2k7Skin span.mce_copy {background-position:-700px 0} +.o2k7Skin span.mce_cut {background-position:-680px 0} +.o2k7Skin span.mce_blockquote {background-position:-220px 0} +.o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0} +.o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0} +.o2k7Skin span.mce_forecolorpicker {background-position:-720px 0} +.o2k7Skin span.mce_backcolorpicker {background-position:-760px 0} + +/* Plugins */ +.o2k7Skin span.mce_advhr {background-position:-0px -20px} +.o2k7Skin span.mce_ltr {background-position:-20px -20px} +.o2k7Skin span.mce_rtl {background-position:-40px -20px} +.o2k7Skin span.mce_emotions {background-position:-60px -20px} +.o2k7Skin span.mce_fullpage {background-position:-80px -20px} +.o2k7Skin span.mce_fullscreen {background-position:-100px -20px} +.o2k7Skin span.mce_iespell {background-position:-120px -20px} +.o2k7Skin span.mce_insertdate {background-position:-140px -20px} +.o2k7Skin span.mce_inserttime {background-position:-160px -20px} +.o2k7Skin span.mce_absolute {background-position:-180px -20px} +.o2k7Skin span.mce_backward {background-position:-200px -20px} +.o2k7Skin span.mce_forward {background-position:-220px -20px} +.o2k7Skin span.mce_insert_layer {background-position:-240px -20px} +.o2k7Skin span.mce_insertlayer {background-position:-260px -20px} +.o2k7Skin span.mce_movebackward {background-position:-280px -20px} +.o2k7Skin span.mce_moveforward {background-position:-300px -20px} +.o2k7Skin span.mce_media {background-position:-320px -20px} +.o2k7Skin span.mce_nonbreaking {background-position:-340px -20px} +.o2k7Skin span.mce_pastetext {background-position:-360px -20px} +.o2k7Skin span.mce_pasteword {background-position:-380px -20px} +.o2k7Skin span.mce_selectall {background-position:-400px -20px} +.o2k7Skin span.mce_preview {background-position:-420px -20px} +.o2k7Skin span.mce_print {background-position:-440px -20px} +.o2k7Skin span.mce_cancel {background-position:-460px -20px} +.o2k7Skin span.mce_save {background-position:-480px -20px} +.o2k7Skin span.mce_replace {background-position:-500px -20px} +.o2k7Skin span.mce_search {background-position:-520px -20px} +.o2k7Skin span.mce_styleprops {background-position:-560px -20px} +.o2k7Skin span.mce_table {background-position:-580px -20px} +.o2k7Skin span.mce_cell_props {background-position:-600px -20px} +.o2k7Skin span.mce_delete_table {background-position:-620px -20px} +.o2k7Skin span.mce_delete_col {background-position:-640px -20px} +.o2k7Skin span.mce_delete_row {background-position:-660px -20px} +.o2k7Skin span.mce_col_after {background-position:-680px -20px} +.o2k7Skin span.mce_col_before {background-position:-700px -20px} +.o2k7Skin span.mce_row_after {background-position:-720px -20px} +.o2k7Skin span.mce_row_before {background-position:-740px -20px} +.o2k7Skin span.mce_merge_cells {background-position:-760px -20px} +.o2k7Skin span.mce_table_props {background-position:-980px -20px} +.o2k7Skin span.mce_row_props {background-position:-780px -20px} +.o2k7Skin span.mce_split_cells {background-position:-800px -20px} +.o2k7Skin span.mce_template {background-position:-820px -20px} +.o2k7Skin span.mce_visualchars {background-position:-840px -20px} +.o2k7Skin span.mce_abbr {background-position:-860px -20px} +.o2k7Skin span.mce_acronym {background-position:-880px -20px} +.o2k7Skin span.mce_attribs {background-position:-900px -20px} +.o2k7Skin span.mce_cite {background-position:-920px -20px} +.o2k7Skin span.mce_del {background-position:-940px -20px} +.o2k7Skin span.mce_ins {background-position:-960px -20px} +.o2k7Skin span.mce_pagebreak {background-position:0 -40px} +.o2k7Skin span.mce_restoredraft {background-position:-20px -40px} +.o2k7Skin span.mce_spellchecker {background-position:-540px -20px} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css new file mode 100644 index 0000000..50c9b76 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css @@ -0,0 +1,8 @@ +/* Black */ +.o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton a.mceOpen, .o2k7SkinBlack .mceListBox a.mceOpen {background-image:url(img/button_bg_black.png)} +.o2k7SkinBlack td.mceToolbar, .o2k7SkinBlack td.mceStatusbar, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF} +.o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0} +.o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7SkinBlack .mceListBoxHover .mceText, .o2k7SkinBlack .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0} +.o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;} +.o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7SkinBlack .mceSplitButtonHover a.mceAction, .o2k7SkinBlack .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)} +.o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7SkinBlack .mceMenu .mceMenuItemActive {background-color:#FFE7A1} \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css new file mode 100644 index 0000000..960a8e4 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css @@ -0,0 +1,5 @@ +/* Silver */ +.o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)} +.o2k7SkinSilver td.mceToolbar, .o2k7SkinSilver td.mceStatusbar, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee} +.o2k7SkinSilver .mceListBox .mceText {background:#FFF} +.o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm new file mode 100644 index 0000000..3c6d658 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm @@ -0,0 +1,25 @@ + + + {#advanced_dlg.code_title} + + + + +
                    +
                    + +
                    + +
                    + +
                    + + + +
                    + + +
                    +
                    + + diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js new file mode 100644 index 0000000..4b3209c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js @@ -0,0 +1 @@ +(function(){var a=tinymce.DOM;tinymce.ThemeManager.requireLangPack("simple");tinymce.create("tinymce.themes.SimpleTheme",{init:function(c,d){var e=this,b=["Bold","Italic","Underline","Strikethrough","InsertUnorderedList","InsertOrderedList"],f=c.settings;e.editor=c;c.contentCSS.push(d+"/skins/"+f.skin+"/content.css");c.onInit.add(function(){c.onNodeChange.add(function(h,g){tinymce.each(b,function(i){g.get(i.toLowerCase()).setActive(h.queryCommandState(i))})})});a.loadCSS((f.editor_css?c.documentBaseURI.toAbsolute(f.editor_css):"")||d+"/skins/"+f.skin+"/ui.css")},renderUI:function(h){var e=this,i=h.targetNode,b,c,d=e.editor,f=d.controlManager,g;i=a.insertAfter(a.create("span",{id:d.id+"_container","class":"mceEditor "+d.settings.skin+"SimpleSkin"}),i);i=g=a.add(i,"table",{cellPadding:0,cellSpacing:0,"class":"mceLayout"});i=c=a.add(i,"tbody");i=a.add(c,"tr");i=b=a.add(a.add(i,"td"),"div",{"class":"mceIframeContainer"});i=a.add(a.add(c,"tr",{"class":"last"}),"td",{"class":"mceToolbar mceLast",align:"center"});c=e.toolbar=f.createToolbar("tools1");c.add(f.createButton("bold",{title:"simple.bold_desc",cmd:"Bold"}));c.add(f.createButton("italic",{title:"simple.italic_desc",cmd:"Italic"}));c.add(f.createButton("underline",{title:"simple.underline_desc",cmd:"Underline"}));c.add(f.createButton("strikethrough",{title:"simple.striketrough_desc",cmd:"Strikethrough"}));c.add(f.createSeparator());c.add(f.createButton("undo",{title:"simple.undo_desc",cmd:"Undo"}));c.add(f.createButton("redo",{title:"simple.redo_desc",cmd:"Redo"}));c.add(f.createSeparator());c.add(f.createButton("cleanup",{title:"simple.cleanup_desc",cmd:"mceCleanup"}));c.add(f.createSeparator());c.add(f.createButton("insertunorderedlist",{title:"simple.bullist_desc",cmd:"InsertUnorderedList"}));c.add(f.createButton("insertorderedlist",{title:"simple.numlist_desc",cmd:"InsertOrderedList"}));c.renderTo(i);return{iframeContainer:b,editorContainer:d.id+"_container",sizeContainer:g,deltaHeight:-20}},getInfo:function(){return{longname:"Simple theme",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.ThemeManager.add("simple",tinymce.themes.SimpleTheme)})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js new file mode 100644 index 0000000..01ce87c --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js @@ -0,0 +1,84 @@ +/** + * editor_template_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var DOM = tinymce.DOM; + + // Tell it to load theme specific language pack(s) + tinymce.ThemeManager.requireLangPack('simple'); + + tinymce.create('tinymce.themes.SimpleTheme', { + init : function(ed, url) { + var t = this, states = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'InsertUnorderedList', 'InsertOrderedList'], s = ed.settings; + + t.editor = ed; + ed.contentCSS.push(url + "/skins/" + s.skin + "/content.css"); + + ed.onInit.add(function() { + ed.onNodeChange.add(function(ed, cm) { + tinymce.each(states, function(c) { + cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c)); + }); + }); + }); + + DOM.loadCSS((s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : '') || url + "/skins/" + s.skin + "/ui.css"); + }, + + renderUI : function(o) { + var t = this, n = o.targetNode, ic, tb, ed = t.editor, cf = ed.controlManager, sc; + + n = DOM.insertAfter(DOM.create('span', {id : ed.id + '_container', 'class' : 'mceEditor ' + ed.settings.skin + 'SimpleSkin'}), n); + n = sc = DOM.add(n, 'table', {cellPadding : 0, cellSpacing : 0, 'class' : 'mceLayout'}); + n = tb = DOM.add(n, 'tbody'); + + // Create iframe container + n = DOM.add(tb, 'tr'); + n = ic = DOM.add(DOM.add(n, 'td'), 'div', {'class' : 'mceIframeContainer'}); + + // Create toolbar container + n = DOM.add(DOM.add(tb, 'tr', {'class' : 'last'}), 'td', {'class' : 'mceToolbar mceLast', align : 'center'}); + + // Create toolbar + tb = t.toolbar = cf.createToolbar("tools1"); + tb.add(cf.createButton('bold', {title : 'simple.bold_desc', cmd : 'Bold'})); + tb.add(cf.createButton('italic', {title : 'simple.italic_desc', cmd : 'Italic'})); + tb.add(cf.createButton('underline', {title : 'simple.underline_desc', cmd : 'Underline'})); + tb.add(cf.createButton('strikethrough', {title : 'simple.striketrough_desc', cmd : 'Strikethrough'})); + tb.add(cf.createSeparator()); + tb.add(cf.createButton('undo', {title : 'simple.undo_desc', cmd : 'Undo'})); + tb.add(cf.createButton('redo', {title : 'simple.redo_desc', cmd : 'Redo'})); + tb.add(cf.createSeparator()); + tb.add(cf.createButton('cleanup', {title : 'simple.cleanup_desc', cmd : 'mceCleanup'})); + tb.add(cf.createSeparator()); + tb.add(cf.createButton('insertunorderedlist', {title : 'simple.bullist_desc', cmd : 'InsertUnorderedList'})); + tb.add(cf.createButton('insertorderedlist', {title : 'simple.numlist_desc', cmd : 'InsertOrderedList'})); + tb.renderTo(n); + + return { + iframeContainer : ic, + editorContainer : ed.id + '_container', + sizeContainer : sc, + deltaHeight : -20 + }; + }, + + getInfo : function() { + return { + longname : 'Simple theme', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + version : tinymce.majorVersion + "." + tinymce.minorVersion + } + } + }); + + tinymce.ThemeManager.add('simple', tinymce.themes.SimpleTheme); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif new file mode 100644 index 0000000..16af141 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/de.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/de.js new file mode 100644 index 0000000..f0375e9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/de.js @@ -0,0 +1,11 @@ +tinyMCE.addI18n('de.simple',{ +bold_desc:"Fett (Strg+B)", +italic_desc:"Kursiv (Strg+I)", +underline_desc:"Unterstrichen (Strg+U)", +striketrough_desc:"Durchgestrichen", +bullist_desc:"Unsortierte Liste", +numlist_desc:"Sortierte Liste", +undo_desc:"R\u00FCckg\u00E4ngig (Strg+Z)", +redo_desc:"Wiederholen (Strg+Y)", +cleanup_desc:"Quellcode s\u00E4ubern" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js new file mode 100644 index 0000000..9f08f10 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js @@ -0,0 +1,11 @@ +tinyMCE.addI18n('en.simple',{ +bold_desc:"Bold (Ctrl+B)", +italic_desc:"Italic (Ctrl+I)", +underline_desc:"Underline (Ctrl+U)", +striketrough_desc:"Strikethrough", +bullist_desc:"Unordered list", +numlist_desc:"Ordered list", +undo_desc:"Undo (Ctrl+Z)", +redo_desc:"Redo (Ctrl+Y)", +cleanup_desc:"Cleanup messy code" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/eo.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/eo.js new file mode 100644 index 0000000..1d59bd9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/eo.js @@ -0,0 +1 @@ +tinyMCE.addI18n('eo.simple',{"cleanup_desc":"Senrubigi mal\u011dustan kodon","redo_desc":"Refari (Ctrl Y)","undo_desc":"Malfari (Ctrl Z)","numlist_desc":"Numera listo","bullist_desc":"Bula listo","striketrough_desc":"Strekita","underline_desc":"Substrekita (Ctrl U)","italic_desc":"Kursiva (Ctrl I)","bold_desc":"Grasa (Ctrl B)"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/es.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/es.js new file mode 100644 index 0000000..bf6985f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/es.js @@ -0,0 +1,11 @@ +tinyMCE.addI18n('es.simple',{ +bold_desc:"Negrita (Ctrl+B)", +italic_desc:"Cursiva (Ctrl+I)", +underline_desc:"Subrayado (Ctrl+U)", +striketrough_desc:"Tachado", +bullist_desc:"Lista desordenada", +numlist_desc:"Lista ordenada", +undo_desc:"Deshacer (Ctrl+Z)", +redo_desc:"Rehacer (Ctrl+Y)", +cleanup_desc:"Limpiar c\u00F3digo basura" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/fr.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/fr.js new file mode 100644 index 0000000..ab68859 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/fr.js @@ -0,0 +1,11 @@ +tinyMCE.addI18n('fr.simple',{ +bold_desc:"Gras (Ctrl+B)", +italic_desc:"Italique (Ctrl+I)", +underline_desc:"Soulign\u00E9 (Ctrl+U)", +striketrough_desc:"Barr\u00E9", +bullist_desc:"Liste \u00E0 puces", +numlist_desc:"Liste num\u00E9rot\u00E9e", +undo_desc:"Annuler (Ctrl+Z)", +redo_desc:"R\u00E9tablir (Ctrl+Y)", +cleanup_desc:"Nettoyer le code" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/hy.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/hy.js new file mode 120000 index 0000000..78e6f7f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/hy.js @@ -0,0 +1 @@ +en.js \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/it.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/it.js new file mode 100644 index 0000000..e0c45ed --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/it.js @@ -0,0 +1 @@ +tinyMCE.addI18n('it.simple',{"cleanup_desc":"Pulisci codice disordinato","redo_desc":"Ripristina (Ctrl+Y)","undo_desc":"Annulla (Ctrl+Z)","numlist_desc":"Lista ordinata","bullist_desc":"Lista non ordinata","striketrough_desc":"Barrato","underline_desc":"Sottolineato (Ctrl+U)","italic_desc":"Corsivo (Ctrl+I)","bold_desc":"Grassetto (Ctrl+B)"}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ja.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ja.js new file mode 100644 index 0000000..abf452e --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ja.js @@ -0,0 +1,11 @@ +tinyMCE.addI18n('ja.simple',{ +bold_desc:"\u592A\u5B57 (Ctrl+B)", +italic_desc:"\u659C\u4F53 (Ctrl+I)", +underline_desc:"\u4E0B\u7DDA (Ctrl+U)", +striketrough_desc:"\u6253\u6D88\u3057\u7DDA", +bullist_desc:"\u756A\u53F7\u306A\u3057\u30EA\u30B9\u30C8", +numlist_desc:"\u756A\u53F7\u3064\u304D\u30EA\u30B9\u30C8", +undo_desc:"\u5143\u306B\u623B\u3059 (Ctrl+Z)", +redo_desc:"\u3084\u308A\u76F4\u3059 (Ctrl+Y)", +cleanup_desc:"\u30B3\u30FC\u30C9\u6574\u5F62" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/nl.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/nl.js new file mode 100644 index 0000000..a28ea63 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/nl.js @@ -0,0 +1,11 @@ +tinyMCE.addI18n('nl.simple',{ +bold_desc:"Vet (Ctrl+B)", +italic_desc:"Cursief (Ctrl+I)", +underline_desc:"Onderstrepen (Ctrl+U)", +striketrough_desc:"Doorhalen", +bullist_desc:"Opsommingstekens", +numlist_desc:"Nummering", +undo_desc:"Ongedaan maken (Ctrl+Z)", +redo_desc:"Herhalen (Ctrl+Y)", +cleanup_desc:"Code opruimen" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/pt.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/pt.js new file mode 100644 index 0000000..1952f1a --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/pt.js @@ -0,0 +1,11 @@ +tinyMCE.addI18n('pt.simple',{ +bold_desc:"Negrito (Ctrl+B)", +italic_desc:"It\u00E1lico (Ctrl+I)", +underline_desc:"Sublinhado (Ctrl+U)", +striketrough_desc:"Riscado", +bullist_desc:"Lista n\u00E3o-ordenada", +numlist_desc:"Lista ordenada", +undo_desc:"Desfazer (Ctrl+Z)", +redo_desc:"Refazer (Ctrl+Y)", +cleanup_desc:"Limpar c\u00F3digo incorreto" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ru.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ru.js new file mode 100644 index 0000000..9ed0927 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/langs/ru.js @@ -0,0 +1,11 @@ +tinyMCE.addI18n('ru.simple',{ +bold_desc:"\u0416\u0438\u0440\u043D\u044B\u0439 (Ctrl + B)", +italic_desc:"\u041A\u0443\u0440\u0441\u0438\u0432 (Ctrl + I)", +underline_desc:"\u041F\u043E\u0434\u0447\u0435\u0440\u043A\u043D\u0443\u0442\u044B\u0439 (Ctrl + U)", +striketrough_desc:"\u0417\u0430\u0447\u0435\u0440\u043A\u043D\u0443\u0442\u044B\u0439", +bullist_desc:"\u0421\u043F\u0438\u0441\u043E\u043A", +numlist_desc:"\u0421\u043F\u0438\u0441\u043E\u043A \u043D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439", +undo_desc:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C (Ctrl + Z)", +redo_desc:"\u0412\u0435\u0440\u043D\u0443\u0442\u044C (Ctrl + Y)", +cleanup_desc:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043B\u0438\u0448\u043D\u0438\u0439 \u043A\u043E\u0434" +}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css new file mode 100644 index 0000000..2506c80 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css @@ -0,0 +1,25 @@ +body, td, pre { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +body { + background-color: #FFFFFF; +} + +.mceVisualAid { + border: 1px dashed #BBBBBB; +} + +/* MSIE specific */ + +* html body { + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css new file mode 100644 index 0000000..076fe84 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css @@ -0,0 +1,32 @@ +/* Reset */ +.defaultSimpleSkin table, .defaultSimpleSkin tbody, .defaultSimpleSkin a, .defaultSimpleSkin img, .defaultSimpleSkin tr, .defaultSimpleSkin div, .defaultSimpleSkin td, .defaultSimpleSkin iframe, .defaultSimpleSkin span, .defaultSimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000} + +/* Containers */ +.defaultSimpleSkin {position:relative} +.defaultSimpleSkin table.mceLayout {background:#F0F0EE; border:1px solid #CCC;} +.defaultSimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #CCC;} +.defaultSimpleSkin .mceToolbar {height:24px;} + +/* Layout */ +.defaultSimpleSkin span.mceIcon, .defaultSimpleSkin img.mceIcon {display:block; width:20px; height:20px} +.defaultSimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} + +/* Button */ +.defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px} +.defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0} +.defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0} +.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} + +/* Separator */ +.defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px} + +/* Theme */ +.defaultSimpleSkin span.mce_bold {background-position:0 0} +.defaultSimpleSkin span.mce_italic {background-position:-60px 0} +.defaultSimpleSkin span.mce_underline {background-position:-140px 0} +.defaultSimpleSkin span.mce_strikethrough {background-position:-120px 0} +.defaultSimpleSkin span.mce_undo {background-position:-160px 0} +.defaultSimpleSkin span.mce_redo {background-position:-100px 0} +.defaultSimpleSkin span.mce_cleanup {background-position:-40px 0} +.defaultSimpleSkin span.mce_insertunorderedlist {background-position:-20px 0} +.defaultSimpleSkin span.mce_insertorderedlist {background-position:-80px 0} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css new file mode 100644 index 0000000..595809f --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css @@ -0,0 +1,17 @@ +body, td, pre {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} + +body {background: #FFF;} +.mceVisualAid {border: 1px dashed #BBB;} + +/* IE */ + +* html body { +scrollbar-3dlight-color: #F0F0EE; +scrollbar-arrow-color: #676662; +scrollbar-base-color: #F0F0EE; +scrollbar-darkshadow-color: #DDDDDD; +scrollbar-face-color: #E0E0DD; +scrollbar-highlight-color: #F0F0EE; +scrollbar-shadow-color: #F0F0EE; +scrollbar-track-color: #F5F5F5; +} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png new file mode 100644 index 0000000..527e349 Binary files /dev/null and b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png differ diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css new file mode 100644 index 0000000..cf6c35d --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css @@ -0,0 +1,35 @@ +/* Reset */ +.o2k7SimpleSkin table, .o2k7SimpleSkin tbody, .o2k7SimpleSkin a, .o2k7SimpleSkin img, .o2k7SimpleSkin tr, .o2k7SimpleSkin div, .o2k7SimpleSkin td, .o2k7SimpleSkin iframe, .o2k7SimpleSkin span, .o2k7SimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000} + +/* Containers */ +.o2k7SimpleSkin {position:relative} +.o2k7SimpleSkin table.mceLayout {background:#E5EFFD; border:1px solid #ABC6DD;} +.o2k7SimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #ABC6DD;} +.o2k7SimpleSkin .mceToolbar {height:26px;} + +/* Layout */ +.o2k7SimpleSkin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; } +.o2k7SimpleSkin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px} +.o2k7SimpleSkin span.mceIcon, .o2k7SimpleSkin img.mceIcon {display:block; width:20px; height:20px} +.o2k7SimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} + +/* Button */ +.o2k7SimpleSkin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px} +.o2k7SimpleSkin a.mceButton span, .o2k7SimpleSkin a.mceButton img {margin:1px 0 0 1px} +.o2k7SimpleSkin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px} +.o2k7SimpleSkin a.mceButtonActive {background-position:0 -44px} +.o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} + +/* Separator */ +.o2k7SimpleSkin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px} + +/* Theme */ +.o2k7SimpleSkin span.mce_bold {background-position:0 0} +.o2k7SimpleSkin span.mce_italic {background-position:-60px 0} +.o2k7SimpleSkin span.mce_underline {background-position:-140px 0} +.o2k7SimpleSkin span.mce_strikethrough {background-position:-120px 0} +.o2k7SimpleSkin span.mce_undo {background-position:-160px 0} +.o2k7SimpleSkin span.mce_redo {background-position:-100px 0} +.o2k7SimpleSkin span.mce_cleanup {background-position:-40px 0} +.o2k7SimpleSkin span.mce_insertunorderedlist {background-position:-20px 0} +.o2k7SimpleSkin span.mce_insertorderedlist {background-position:-80px 0} diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce.js new file mode 100644 index 0000000..40342b9 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce.js @@ -0,0 +1 @@ +(function(d){var a=/^\s*|\s*$/g,e,c="B".replace(/A(.)|B/,"$1")==="$1";var b={majorVersion:"3",minorVersion:"4.2",releaseDate:"2011-04-07",_init:function(){var s=this,q=document,o=navigator,g=o.userAgent,m,f,l,k,j,r;s.isOpera=d.opera&&opera.buildNumber;s.isWebKit=/WebKit/.test(g);s.isIE=!s.isWebKit&&!s.isOpera&&(/MSIE/gi).test(g)&&(/Explorer/gi).test(o.appName);s.isIE6=s.isIE&&/MSIE [56]/.test(g);s.isGecko=!s.isWebKit&&/Gecko/.test(g);s.isMac=g.indexOf("Mac")!=-1;s.isAir=/adobeair/i.test(g);s.isIDevice=/(iPad|iPhone)/.test(g);if(d.tinyMCEPreInit){s.suffix=tinyMCEPreInit.suffix;s.baseURL=tinyMCEPreInit.base;s.query=tinyMCEPreInit.query;return}s.suffix="";f=q.getElementsByTagName("base");for(m=0;m=c.length){for(e=0,b=g.length;e=c.length||g[e]!=c[e]){f=e+1;break}}}if(g.length=g.length||g[e]!=c[e]){f=e+1;break}}}if(f==1){return h}for(e=0,b=g.length-(f-1);e=0;c--){if(f[c].length==0||f[c]=="."){continue}if(f[c]==".."){b++;continue}if(b>0){b--;continue}h.push(f[c])}c=e.length-b;if(c<=0){g=h.reverse().join("/")}else{g=e.slice(0,c).join("/")+"/"+h.reverse().join("/")}if(g.indexOf("/")!==0){g="/"+g}if(d&&g.lastIndexOf("/")!==g.length-1){g+=d}return g},getURI:function(d){var c,b=this;if(!b.source||d){c="";if(!d){if(b.protocol){c+=b.protocol+"://"}if(b.userInfo){c+=b.userInfo+"@"}if(b.host){c+=b.host}if(b.port){c+=":"+b.port}}if(b.path){c+=b.path}if(b.query){c+="?"+b.query}if(b.anchor){c+="#"+b.anchor}b.source=c}return b.source}})})();(function(){var a=tinymce.each;tinymce.create("static tinymce.util.Cookie",{getHash:function(d){var b=this.get(d),c;if(b){a(b.split("&"),function(e){e=e.split("=");c=c||{};c[unescape(e[0])]=unescape(e[1])})}return c},setHash:function(j,b,g,f,i,c){var h="";a(b,function(e,d){h+=(!h?"":"&")+escape(d)+"="+escape(e)});this.set(j,h,g,f,i,c)},get:function(i){var h=document.cookie,g,f=i+"=",d;if(!h){return}d=h.indexOf("; "+f);if(d==-1){d=h.indexOf(f);if(d!=0){return null}}else{d+=2}g=h.indexOf(";",d);if(g==-1){g=h.length}return unescape(h.substring(d+f.length,g))},set:function(i,b,g,f,h,c){document.cookie=i+"="+escape(b)+((g)?"; expires="+g.toGMTString():"")+((f)?"; path="+escape(f):"")+((h)?"; domain="+h:"")+((c)?"; secure":"")},remove:function(e,b){var c=new Date();c.setTime(c.getTime()-1000);this.set(e,"",c,b,c)}})})();(function(){function serialize(o,quote){var i,v,t;quote=quote||'"';if(o==null){return"null"}t=typeof o;if(t=="string"){v="\bb\tt\nn\ff\rr\"\"''\\\\";return quote+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(a,b){if(quote==='"'&&a==="'"){return a}i=v.indexOf(b);if(i+1){return"\\"+v.charAt(i+1)}a=b.charCodeAt().toString(16);return"\\u"+"0000".substring(a.length)+a})+quote}if(t=="object"){if(o.hasOwnProperty&&o instanceof Array){for(i=0,v="[";i0?",":"")+serialize(o[i],quote)}return v+"]"}v="{";for(i in o){v+=typeof o[i]!="function"?(v.length>1?","+quote:quote)+i+quote+":"+serialize(o[i],quote):""}return v+"}"}return""+o}tinymce.util.JSON={serialize:serialize,parse:function(s){try{return eval("("+s+")")}catch(ex){}}}})();tinymce.create("static tinymce.util.XHR",{send:function(g){var a,e,b=window,h=0;g.scope=g.scope||this;g.success_scope=g.success_scope||g.scope;g.error_scope=g.error_scope||g.scope;g.async=g.async===false?false:true;g.data=g.data||"";function d(i){a=0;try{a=new ActiveXObject(i)}catch(c){}return a}a=b.XMLHttpRequest?new XMLHttpRequest():d("Microsoft.XMLHTTP")||d("Msxml2.XMLHTTP");if(a){if(a.overrideMimeType){a.overrideMimeType(g.content_type)}a.open(g.type||(g.data?"POST":"GET"),g.url,g.async);if(g.content_type){a.setRequestHeader("Content-Type",g.content_type)}a.setRequestHeader("X-Requested-With","XMLHttpRequest");a.send(g.data);function f(){if(!g.async||a.readyState==4||h++>10000){if(g.success&&h<10000&&a.status==200){g.success.call(g.success_scope,""+a.responseText,a,g)}else{if(g.error){g.error.call(g.error_scope,h>10000?"TIMED_OUT":"GENERAL",a,g)}}a=null}else{b.setTimeout(f,10)}}if(!g.async){return f()}e=b.setTimeout(f,10)}}});(function(){var c=tinymce.extend,b=tinymce.util.JSON,a=tinymce.util.XHR;tinymce.create("tinymce.util.JSONRequest",{JSONRequest:function(d){this.settings=c({},d);this.count=0},send:function(f){var e=f.error,d=f.success;f=c(this.settings,f);f.success=function(h,g){h=b.parse(h);if(typeof(h)=="undefined"){h={error:"JSON Parse error."}}if(h.error){e.call(f.error_scope||f.scope,h.error,g)}else{d.call(f.success_scope||f.scope,h.result)}};f.error=function(h,g){if(e){e.call(f.error_scope||f.scope,h,g)}};f.data=b.serialize({id:f.id||"c"+(this.count++),method:f.method,params:f.params});f.content_type="application/json";a.send(f)},"static":{sendRPC:function(d){return new tinymce.util.JSONRequest().send(d)}}})}());(function(j){var a,g,d,k=/[&\"\u007E-\uD7FF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,b=/[<>&\u007E-\uD7FF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=/[<>&\"\']/g,c=/&(#)?([\w]+);/g,i={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"};g={'"':""","'":"'","<":"<",">":">","&":"&"};d={"<":"<",">":">","&":"&",""":'"',"'":"'"};function h(l){var m;m=document.createElement("div");m.innerHTML=l;return m.textContent||m.innerText||l}function e(m,p){var n,o,l,q={};if(m){m=m.split(",");p=p||10;for(n=0;n1){return"&#"+(((n.charCodeAt(0)-55296)*1024)+(n.charCodeAt(1)-56320)+65536)+";"}return g[n]||"&#"+n.charCodeAt(0)+";"})},encodeNamed:function(n,l,m){m=m||a;return n.replace(l?k:b,function(o){return g[o]||m[o]||o})},getEncodeFunc:function(l,o){var p=j.html.Entities;o=e(o)||a;function m(r,q){return r.replace(q?k:b,function(s){return g[s]||o[s]||"&#"+s.charCodeAt(0)+";"||s})}function n(r,q){return p.encodeNamed(r,q,o)}l=j.makeMap(l.replace(/\+/g,","));if(l.named&&l.numeric){return m}if(l.named){if(o){return n}return p.encodeNamed}if(l.numeric){return p.encodeNumeric}return p.encodeRaw},decode:function(l){return l.replace(c,function(n,m,o){if(m){o=parseInt(o);if(o>65535){o-=65536;return String.fromCharCode(55296+(o>>10),56320+(o&1023))}else{return i[o]||String.fromCharCode(o)}}return d[n]||a[n]||h(n)})}}})(tinymce);tinymce.html.Styles=function(d,f){var k=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,h=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,b=/\s*([^:]+):\s*([^;]+);?/g,l=/\s+$/,m=/rgb/,e,g,a={},j;d=d||{};j="\\\" \\' \\; \\: ; : _".split(" ");for(g=0;g1?r:"0"+r}return"#"+o(q)+o(p)+o(i)}return{toHex:function(i){return i.replace(k,c)},parse:function(r){var y={},p,n,v,q,u=d.url_converter,x=d.url_converter_scope||this;function o(C,F){var E,B,A,D;E=y[C+"-top"+F];if(!E){return}B=y[C+"-right"+F];if(E!=B){return}A=y[C+"-bottom"+F];if(B!=A){return}D=y[C+"-left"+F];if(A!=D){return}y[C+F]=D;delete y[C+"-top"+F];delete y[C+"-right"+F];delete y[C+"-bottom"+F];delete y[C+"-left"+F]}function t(B){var C=y[B],A;if(!C||C.indexOf(" ")<0){return}C=C.split(" ");A=C.length;while(A--){if(C[A]!==C[0]){return false}}y[B]=C[0];return true}function z(C,B,A,D){if(!t(B)){return}if(!t(A)){return}if(!t(D)){return}y[C]=y[B]+" "+y[A]+" "+y[D];delete y[B];delete y[A];delete y[D]}function s(A){q=true;return a[A]}function i(B,A){if(q){B=B.replace(/_[0-9]/g,function(C){return a[C]})}if(!A){B=B.replace(/\\([\'\";:])/g,"$1")}return B}if(r){r=r.replace(/\\[\"\';:_]/g,s).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(A){return A.replace(/[;:]/g,s)});while(p=b.exec(r)){n=p[1].replace(l,"").toLowerCase();v=p[2].replace(l,"");if(n&&v.length>0){if(n==="font-weight"&&v==="700"){v="bold"}else{if(n==="color"||n==="background-color"){v=v.toLowerCase()}}v=v.replace(k,c);v=v.replace(h,function(B,A,E,D,F,C){F=F||C;if(F){F=i(F);return"'"+F.replace(/\'/g,"\\'")+"'"}A=i(A||E||D);if(u){A=u.call(x,A,"style")}return"url('"+A.replace(/\'/g,"\\'")+"')"});y[n]=q?i(v,true):v}b.lastIndex=p.index+p[0].length}o("border","");o("border","-width");o("border","-color");o("border","-style");o("padding","");o("margin","");z("border","border-width","border-style","border-color");if(y.border==="medium none"){delete y.border}}return y},serialize:function(p,r){var o="",n,q;function i(t){var x,u,s,t,v;x=f.styles[t];if(x){for(u=0,s=x.length;u0){o+=(o.length>0?" ":"")+t+": "+v+";"}}}}if(r&&f&&f.styles){i("*");i(n)}else{for(n in p){q=p[n];if(q!==e&&q.length>0){o+=(o.length>0?" ":"")+n+": "+q+";"}}}return o}}};(function(l){var g={},i,k,f,d,b,e,c=l.makeMap,j=l.each;function h(n,m){return n.split(m||",")}function a(q,p){var n,o={};function m(r){return r.replace(/[A-Z]+/g,function(s){return m(q[s])})}for(n in q){if(q.hasOwnProperty(n)){q[n]=m(q[n])}}m(p).replace(/#/g,"#text").replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g,function(u,s,r,t){r=h(r,"|");o[s]={attributes:c(r),attributesOrder:r,children:c(t,"|",{"#comment":{}})}});return o}k="h1,h2,h3,h4,h5,h6,hr,p,div,address,pre,form,table,tbody,thead,tfoot,th,tr,td,li,ol,ul,caption,blockquote,center,dl,dt,dd,dir,fieldset,noscript,menu,isindex,samp,header,footer,article,section,hgroup";k=c(k,",",c(k.toUpperCase()));g=a({Z:"H|K|N|O|P",Y:"X|form|R|Q",ZG:"E|span|width|align|char|charoff|valign",X:"p|T|div|U|W|isindex|fieldset|table",ZF:"E|align|char|charoff|valign",W:"pre|hr|blockquote|address|center|noframes",ZE:"abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height",ZD:"[E][S]",U:"ul|ol|dl|menu|dir",ZC:"p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q",T:"h1|h2|h3|h4|h5|h6",ZB:"X|S|Q",S:"R|P",ZA:"a|G|J|M|O|P",R:"a|H|K|N|O",Q:"noscript|P",P:"ins|del|script",O:"input|select|textarea|label|button",N:"M|L",M:"em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym",L:"sub|sup",K:"J|I",J:"tt|i|b|u|s|strike",I:"big|small|font|basefont",H:"G|F",G:"br|span|bdo",F:"object|applet|img|map|iframe",E:"A|B|C",D:"accesskey|tabindex|onfocus|onblur",C:"onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",B:"lang|xml:lang|dir",A:"id|class|style|title"},"script[id|charset|type|language|src|defer|xml:space][]style[B|id|type|media|title|xml:space][]object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]param[id|name|value|valuetype|type][]p[E|align][#|S]a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]br[A|clear][]span[E][#|S]bdo[A|C|B][#|S]applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]h1[E|align][#|S]img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]map[B|C|A|name][X|form|Q|area]h2[E|align][#|S]iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]h3[E|align][#|S]tt[E][#|S]i[E][#|S]b[E][#|S]u[E][#|S]s[E][#|S]strike[E][#|S]big[E][#|S]small[E][#|S]font[A|B|size|color|face][#|S]basefont[id|size|color|face][]em[E][#|S]strong[E][#|S]dfn[E][#|S]code[E][#|S]q[E|cite][#|S]samp[E][#|S]kbd[E][#|S]var[E][#|S]cite[E][#|S]abbr[E][#|S]acronym[E][#|S]sub[E][#|S]sup[E][#|S]input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]optgroup[E|disabled|label][option]option[E|selected|disabled|label|value][]textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]label[E|for|accesskey|onfocus|onblur][#|S]button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[E|align][#|S]ins[E|cite|datetime][#|Y]h5[E|align][#|S]del[E|cite|datetime][#|Y]h6[E|align][#|S]div[E|align][#|Y]ul[E|type|compact][li]li[E|type|value][#|Y]ol[E|type|compact|start][li]dl[E|compact][dt|dd]dt[E][#|S]dd[E][#|Y]menu[E|compact][li]dir[E|compact][li]pre[E|width|xml:space][#|ZA]hr[E|align|noshade|size|width][]blockquote[E|cite][#|Y]address[E][#|S|p]center[E][#|Y]noframes[E][#|Y]isindex[A|B|prompt][]fieldset[E][#|legend|Y]legend[E|accesskey|align][#|S]table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]caption[E|align][#|S]col[ZG][]colgroup[ZG][col]thead[ZF][tr]tr[ZF|bgcolor][th|td]th[E|ZE][#|Y]form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]noscript[E][#|Y]td[E|ZE][#|Y]tfoot[ZF][tr]tbody[ZF][tr]area[E|D|shape|coords|href|nohref|alt|target][]base[id|href|target][]body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]");i=c("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected,preload,autoplay,loop,controls");f=c("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,source");d=l.extend(c("td,th,iframe,video,object"),f);b=c("pre,script,style");e=c("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");l.html.Schema=function(p){var x=this,m={},n={},u=[],o;p=p||{};if(p.verify_html===false){p.valid_elements="*[*]"}if(p.valid_styles){o={};j(p.valid_styles,function(z,y){o[y]=l.explode(z)})}function v(y){return new RegExp("^"+y.replace(/([?+*])/g,".$1")+"$")}function r(F){var E,A,T,P,U,z,C,O,R,K,S,W,I,D,Q,y,M,B,V,X,J,N,H=/^([#+-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,L=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,G=/[*?+]/;if(F){F=h(F);if(m["@"]){M=m["@"].attributes;B=m["@"].attributesOrder}for(E=0,A=F.length;E=0){for(P=l.length-1;P>=Q;P--){O=l[P];if(O.valid){A.end(O.name)}}l.length=Q}}D=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([^\\s\\/<>]+)\\s*((?:[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*)>))","g");h=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:\\.|[^\"])*)\")|(?:\'((?:\\.|[^\'])*)\')|([^>\s]+)))?/g;g={script:/<\/script[^>]*>/gi,style:/<\/style[^>]*>/gi,noscript:/<\/noscript[^>]*>/gi};F=e.getShortEndedElements();z=e.getSelfClosingElements();k=e.getBoolAttrs();x=c.validate;y=c.fix_self_closing;while(f=D.exec(q)){if(m0&&l[l.length-1].name===G){C(G)}if(!x||(I=e.getElementRule(G))){r=true;if(x){J=I.attributes;n=I.attributePatterns}if(o=f[8]){B=[];B.map={};o.replace(h,function(P,O,T,S,R){var U,Q;O=O.toLowerCase();T=O in k?O:v(T||S||R||"");if(x&&O.indexOf("data-")!==0){U=J[O];if(!U&&n){Q=n.length;while(Q--){U=n[Q];if(U.pattern.test(O)){break}}if(Q===-1){U=null}}if(!U){return}if(U.validValues&&!(T in U.validValues)){return}}B.map[O]=T;B.push({name:O,value:T})})}else{B=[];B.map={}}if(x){H=I.attributesRequired;M=I.attributesDefault;L=I.attributesForced;if(L){K=L.length;while(K--){E=L[K];N=E.name;u=E.value;if(u==="{$uid}"){u="mce_"+s++}B.map[N]=u;B.push({name:N,value:u})}}if(M){K=M.length;while(K--){E=M[K];N=E.name;if(!(N in B.map)){u=E.value;if(u==="{$uid}"){u="mce_"+s++}B.map[N]=u;B.push({name:N,value:u})}}}if(H){K=H.length;while(K--){if(H[K] in B.map){break}}if(K===-1){r=false}}if(B.map["data-mce-bogus"]){r=false}}if(r){A.start(G,B,p)}}else{r=false}if(j=g[G]){j.lastIndex=m=f.index+f[0].length;if(f=j.exec(q)){if(r){t=q.substr(m,f.index-m)}m=f.index+f[0].length}else{t=q.substr(m);m=q.length}if(r&&t.length>0){A.text(t,true)}if(r){A.end(G)}D.lastIndex=m;continue}if(!p){if(!o||o.indexOf("/")!=o.length-1){l.push({name:G,valid:r})}else{if(r){A.end(G)}}}}else{if(G=f[1]){A.comment(G)}else{if(G=f[2]){A.cdata(G)}else{if(G=f[3]){A.doctype(G)}else{if(G=f[4]){A.pi(G,f[5])}}}}}}m=f.index+f[0].length}if(m=0;K--){G=l[K];if(G.valid){A.end(G.name)}}}}})(tinymce);(function(d){var c=/^[ \t\r\n]*$/,e={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};function a(k,l,j){var i,h,f=j?"lastChild":"firstChild",g=j?"prev":"next";if(k[f]){return k[f]}if(k!==l){i=k[g];if(i){return i}for(h=k.parent;h&&h!==l;h=h.parent){i=h[g];if(i){return i}}}}function b(f,g){this.name=f;this.type=g;if(g===1){this.attributes=[];this.attributes.map={}}}d.extend(b.prototype,{replace:function(g){var f=this;if(g.parent){g.remove()}f.insert(g,f);f.remove();return f},attr:function(h,l){var f=this,g,j,k;if(typeof h!=="string"){for(j in h){f.attr(j,h[j])}return f}if(g=f.attributes){if(l!==k){if(l===null){if(h in g.map){delete g.map[h];j=g.length;while(j--){if(g[j].name===h){g=g.splice(j,1);return f}}}return f}if(h in g.map){j=g.length;while(j--){if(g[j].name===h){g[j].value=l;break}}}else{g.push({name:h,value:l})}g.map[h]=l;return f}else{return g.map[h]}}},clone:function(){var g=this,n=new b(g.name,g.type),h,f,m,j,k;if(m=g.attributes){k=[];k.map={};for(h=0,f=m.length;h1){v.reverse();z=n=f.filterNode(v[0].clone());for(t=0;t0){L.value=l;L=L.prev}else{J=L.prev;L.remove();L=J}}}n=new b.html.SaxParser({validate:x,fix_self_closing:!x,cdata:function(l){z.append(G("#cdata",4)).value=l},text:function(K,l){var J;if(!r[z.name]){K=K.replace(k," ");if(z.lastChild&&o[z.lastChild.name]){K=K.replace(C,"")}}if(K.length!==0){J=G("#text",3);J.raw=!!l;z.append(J).value=K}},comment:function(l){z.append(G("#comment",8)).value=l},pi:function(l,J){z.append(G(l,7)).value=J;E(z)},doctype:function(J){var l;l=z.append(G("#doctype",10));l.value=J;E(z)},start:function(l,R,K){var P,M,L,J,N,S,Q,O;L=x?h.getElementRule(l):{};if(L){P=G(L.outputName||l,1);P.attributes=R;P.shortEnded=K;z.append(P);O=p[z.name];if(O&&p[P.name]&&!O[P.name]){H.push(P)}M=d.length;while(M--){N=d[M].name;if(N in R.map){D=c[N];if(D){D.push(P)}else{c[N]=[P]}}}if(o[l]){E(P)}if(!K){z=P}}},end:function(l){var N,K,M,J,L;K=x?h.getElementRule(l):{};if(K){if(o[l]){if(!r[z.name]){for(N=z.firstChild;N&&N.type===3;){M=N.value.replace(C,"");if(M.length>0){N.value=M;N=N.next}else{J=N.next;N.remove();N=J}}for(N=z.lastChild;N&&N.type===3;){M=N.value.replace(s,"");if(M.length>0){N.value=M;N=N.prev}else{J=N.prev;N.remove();N=J}}}N=z.prev;if(N&&N.type===3){M=N.value.replace(C,"");if(M.length>0){N.value=M}else{N.remove()}}}if(K.removeEmpty||K.paddEmpty){if(z.isEmpty(t)){if(K.paddEmpty){z.empty().append(new a("#text","3")).value="\u00a0"}else{if(!z.attributes.map.name){L=z.parent;z.empty().remove();z=L;return}}}}z=z.parent}}},h);F=z=new a(g.root_name,11);n.parse(u);if(x){j(H)}for(I in i){D=e[I];y=i[I];v=y.length;while(v--){if(!y[v].parent){y.splice(v,1)}}for(B=0,A=D.length;B0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}c.push("<",m);if(k){for(n=0,j=k.length;n0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}},end:function(h){var i;c.push("");if(a&&d[h]&&c.length>0){i=c[c.length-1];if(i.length>0&&i!=="\n"){c.push("\n")}}},text:function(i,h){if(i.length>0){c[c.length]=h?i:f(i)}},cdata:function(h){c.push("")},comment:function(h){c.push("")},pi:function(h,i){if(i){c.push("")}else{c.push("")}if(a){c.push("\n")}},doctype:function(h){c.push("",a?"\n":"")},reset:function(){c.length=0},getContent:function(){return c.join("").replace(/\n$/,"")}}};(function(a){a.html.Serializer=function(c,d){var b=this,e=new a.html.Writer(c);c=c||{};c.validate="validate" in c?c.validate:true;b.schema=d=d||new a.html.Schema();b.writer=e;b.serialize=function(h){var g,i;i=c.validate;g={3:function(k,j){e.text(k.value,k.raw)},8:function(j){e.comment(j.value)},7:function(j){e.pi(j.name,j.value)},10:function(j){e.doctype(j.value)},4:function(j){e.cdata(j.value)},11:function(j){if((j=j.firstChild)){do{f(j)}while(j=j.next)}}};e.reset();function f(k){var t=g[k.type],j,o,s,r,p,u,n,m,q;if(!t){j=k.name;o=k.shortEnded;s=k.attributes;if(i&&s&&s.length>1){u=[];u.map={};q=d.getElementRule(k.name);for(n=0,m=q.attributesOrder.length;n=8;k.boxModel=!h.isIE||n.compatMode=="CSS1Compat"||k.stdMode;k.hasOuterHTML="outerHTML" in n.createElement("a");k.settings=l=h.extend({keep_values:false,hex_colors:1},l);k.schema=l.schema;k.styles=new h.html.Styles({url_converter:l.url_converter,url_converter_scope:l.url_converter_scope},l.schema);if(h.isIE6){try{n.execCommand("BackgroundImageCache",false,true)}catch(m){k.cssFlicker=true}}if(b){("abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video").replace(/\w+/g,function(o){n.createElement(o)})}h.addUnload(k.destroy,k)},getRoot:function(){var j=this,k=j.settings;return(k&&j.get(k.root_element))||j.doc.body},getViewPort:function(k){var l,j;k=!k?this.win:k;l=k.document;j=this.boxModel?l.documentElement:l.body;return{x:k.pageXOffset||j.scrollLeft,y:k.pageYOffset||j.scrollTop,w:k.innerWidth||j.clientWidth,h:k.innerHeight||j.clientHeight}},getRect:function(m){var l,j=this,k;m=j.get(m);l=j.getPos(m);k=j.getSize(m);return{x:l.x,y:l.y,w:k.w,h:k.h}},getSize:function(m){var k=this,j,l;m=k.get(m);j=k.getStyle(m,"width");l=k.getStyle(m,"height");if(j.indexOf("px")===-1){j=0}if(l.indexOf("px")===-1){l=0}return{w:parseInt(j)||m.offsetWidth||m.clientWidth,h:parseInt(l)||m.offsetHeight||m.clientHeight}},getParent:function(l,k,j){return this.getParents(l,k,j,false)},getParents:function(u,p,l,s){var k=this,j,m=k.settings,q=[];u=k.get(u);s=s===undefined;if(m.strict_root){l=l||k.getRoot()}if(e(p,"string")){j=p;if(p==="*"){p=function(o){return o.nodeType==1}}else{p=function(o){return k.is(o,j)}}}while(u){if(u==l||!u.nodeType||u.nodeType===9){break}if(!p||p(u)){if(s){q.push(u)}else{return u}}u=u.parentNode}return s?q:null},get:function(j){var k;if(j&&this.doc&&typeof(j)=="string"){k=j;j=this.doc.getElementById(j);if(j&&j.id!==k){return this.doc.getElementsByName(k)[1]}}return j},getNext:function(k,j){return this._findSib(k,j,"nextSibling")},getPrev:function(k,j){return this._findSib(k,j,"previousSibling")},select:function(l,k){var j=this;return h.dom.Sizzle(l,j.get(k)||j.get(j.settings.root_element)||j.doc,[])},is:function(l,j){var k;if(l.length===undefined){if(j==="*"){return l.nodeType==1}if(a.test(j)){j=j.toLowerCase().split(/,/);l=l.nodeName.toLowerCase();for(k=j.length-1;k>=0;k--){if(j[k]==l){return true}}return false}}return h.dom.Sizzle.matches(j,l.nodeType?[l]:l).length>0},add:function(m,q,j,l,o){var k=this;return this.run(m,function(s){var r,n;r=e(q,"string")?k.doc.createElement(q):q;k.setAttribs(r,j);if(l){if(l.nodeType){r.appendChild(l)}else{k.setHTML(r,l)}}return !o?s.appendChild(r):r})},create:function(l,j,k){return this.add(this.doc.createElement(l),l,j,k,1)},createHTML:function(r,j,p){var q="",m=this,l;q+="<"+r;for(l in j){if(j.hasOwnProperty(l)){q+=" "+l+'="'+m.encode(j[l])+'"'}}if(typeof(p)!="undefined"){return q+">"+p+""}return q+" />"},remove:function(j,k){return this.run(j,function(m){var n,l=m.parentNode;if(!l){return null}if(k){while(n=m.firstChild){if(!h.isIE||n.nodeType!==3||n.nodeValue){l.insertBefore(n,m)}else{m.removeChild(n)}}}return l.removeChild(m)})},setStyle:function(m,j,k){var l=this;return l.run(m,function(p){var o,n;o=p.style;j=j.replace(/-(\D)/g,function(r,q){return q.toUpperCase()});if(l.pixelStyles.test(j)&&(h.is(k,"number")||/^[\-0-9\.]+$/.test(k))){k+="px"}switch(j){case"opacity":if(b){o.filter=k===""?"":"alpha(opacity="+(k*100)+")";if(!m.currentStyle||!m.currentStyle.hasLayout){o.display="inline-block"}}o[j]=o["-moz-opacity"]=o["-khtml-opacity"]=k||"";break;case"float":b?o.styleFloat=k:o.cssFloat=k;break;default:o[j]=k||""}if(l.settings.update_styles){l.setAttrib(p,"data-mce-style")}})},getStyle:function(m,j,l){m=this.get(m);if(!m){return}if(this.doc.defaultView&&l){j=j.replace(/[A-Z]/g,function(n){return"-"+n});try{return this.doc.defaultView.getComputedStyle(m,null).getPropertyValue(j)}catch(k){return null}}j=j.replace(/-(\D)/g,function(o,n){return n.toUpperCase()});if(j=="float"){j=b?"styleFloat":"cssFloat"}if(m.currentStyle&&l){return m.currentStyle[j]}return m.style?m.style[j]:undefined},setStyles:function(m,n){var k=this,l=k.settings,j;j=l.update_styles;l.update_styles=0;f(n,function(o,p){k.setStyle(m,p,o)});l.update_styles=j;if(l.update_styles){k.setAttrib(m,l.cssText)}},removeAllAttribs:function(j){return this.run(j,function(m){var l,k=m.attributes;for(l=k.length-1;l>=0;l--){m.removeAttributeNode(k.item(l))}})},setAttrib:function(l,m,j){var k=this;if(!l||!m){return}if(k.settings.strict){m=m.toLowerCase()}return this.run(l,function(o){var n=k.settings;switch(m){case"style":if(!e(j,"string")){f(j,function(p,q){k.setStyle(o,q,p)});return}if(n.keep_values){if(j&&!k._isRes(j)){o.setAttribute("data-mce-style",j,2)}else{o.removeAttribute("data-mce-style",2)}}o.style.cssText=j;break;case"class":o.className=j||"";break;case"src":case"href":if(n.keep_values){if(n.url_converter){j=n.url_converter.call(n.url_converter_scope||k,j,m,o)}k.setAttrib(o,"data-mce-"+m,j,2)}break;case"shape":o.setAttribute("data-mce-style",j);break}if(e(j)&&j!==null&&j.length!==0){o.setAttribute(m,""+j,2)}else{o.removeAttribute(m,2)}})},setAttribs:function(k,l){var j=this;return this.run(k,function(m){f(l,function(o,p){j.setAttrib(m,p,o)})})},getAttrib:function(m,o,l){var j,k=this;m=k.get(m);if(!m||m.nodeType!==1){return false}if(!e(l)){l=""}if(/^(src|href|style|coords|shape)$/.test(o)){j=m.getAttribute("data-mce-"+o);if(j){return j}}if(b&&k.props[o]){j=m[k.props[o]];j=j&&j.nodeValue?j.nodeValue:j}if(!j){j=m.getAttribute(o,2)}if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(o)){if(m[k.props[o]]===true&&j===""){return o}return j?o:""}if(m.nodeName==="FORM"&&m.getAttributeNode(o)){return m.getAttributeNode(o).nodeValue}if(o==="style"){j=j||m.style.cssText;if(j){j=k.serializeStyle(k.parseStyle(j),m.nodeName);if(k.settings.keep_values&&!k._isRes(j)){m.setAttribute("data-mce-style",j)}}}if(d&&o==="class"&&j){j=j.replace(/(apple|webkit)\-[a-z\-]+/gi,"")}if(b){switch(o){case"rowspan":case"colspan":if(j===1){j=""}break;case"size":if(j==="+0"||j===20||j===0){j=""}break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":if(j===0){j=""}break;case"hspace":if(j===-1){j=""}break;case"maxlength":case"tabindex":if(j===32768||j===2147483647||j==="32768"){j=""}break;case"multiple":case"compact":case"noshade":case"nowrap":if(j===65535){return o}return l;case"shape":j=j.toLowerCase();break;default:if(o.indexOf("on")===0&&j){j=h._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1",""+j)}}}return(j!==undefined&&j!==null&&j!=="")?""+j:l},getPos:function(s,m){var k=this,j=0,q=0,o,p=k.doc,l;s=k.get(s);m=m||p.body;if(s){if(b&&!k.stdMode){s=s.getBoundingClientRect();o=k.boxModel?p.documentElement:p.body;j=k.getStyle(k.select("html")[0],"borderWidth");j=(j=="medium"||k.boxModel&&!k.isIE6)&&2||j;return{x:s.left+o.scrollLeft-j,y:s.top+o.scrollTop-j}}l=s;while(l&&l!=m&&l.nodeType){j+=l.offsetLeft||0;q+=l.offsetTop||0;l=l.offsetParent}l=s.parentNode;while(l&&l!=m&&l.nodeType){j-=l.scrollLeft||0;q-=l.scrollTop||0;l=l.parentNode}}return{x:j,y:q}},parseStyle:function(j){return this.styles.parse(j)},serializeStyle:function(k,j){return this.styles.serialize(k,j)},loadCSS:function(j){var l=this,m=l.doc,k;if(!j){j=""}k=l.select("head")[0];f(j.split(","),function(n){var o;if(l.files[n]){return}l.files[n]=true;o=l.create("link",{rel:"stylesheet",href:h._addVer(n)});if(b&&m.documentMode&&m.recalc){o.onload=function(){if(m.recalc){m.recalc()}o.onload=null}}k.appendChild(o)})},addClass:function(j,k){return this.run(j,function(l){var m;if(!k){return 0}if(this.hasClass(l,k)){return l.className}m=this.removeClass(l,k);return l.className=(m!=""?(m+" "):"")+k})},removeClass:function(l,m){var j=this,k;return j.run(l,function(o){var n;if(j.hasClass(o,m)){if(!k){k=new RegExp("(^|\\s+)"+m+"(\\s+|$)","g")}n=o.className.replace(k," ");n=h.trim(n!=" "?n:"");o.className=n;if(!n){o.removeAttribute("class");o.removeAttribute("className")}return n}return o.className})},hasClass:function(k,j){k=this.get(k);if(!k||!j){return false}return(" "+k.className+" ").indexOf(" "+j+" ")!==-1},show:function(j){return this.setStyle(j,"display","block")},hide:function(j){return this.setStyle(j,"display","none")},isHidden:function(j){j=this.get(j);return !j||j.style.display=="none"||this.getStyle(j,"display")=="none"},uniqueId:function(j){return(!j?"mce_":j)+(this.counter++)},setHTML:function(l,k){var j=this;return j.run(l,function(n){if(b){while(n.firstChild){n.removeChild(n.firstChild)}try{n.innerHTML="
                    "+k;n.removeChild(n.firstChild)}catch(m){n=j.create("div");n.innerHTML="
                    "+k;f(n.childNodes,function(p,o){if(o){n.appendChild(p)}})}}else{n.innerHTML=k}return k})},getOuterHTML:function(l){var k,j=this;l=j.get(l);if(!l){return null}if(l.nodeType===1&&j.hasOuterHTML){return l.outerHTML}k=(l.ownerDocument||j.doc).createElement("body");k.appendChild(l.cloneNode(true));return k.innerHTML},setOuterHTML:function(m,k,n){var j=this;function l(p,o,r){var s,q;q=r.createElement("body");q.innerHTML=o;s=q.lastChild;while(s){j.insertAfter(s.cloneNode(true),p);s=s.previousSibling}j.remove(p)}return this.run(m,function(p){p=j.get(p);if(p.nodeType==1){n=n||p.ownerDocument||j.doc;if(b){try{if(b&&p.nodeType==1){p.outerHTML=k}else{l(p,k,n)}}catch(o){l(p,k,n)}}else{l(p,k,n)}}})},decode:c.decode,encode:c.encodeAllRaw,insertAfter:function(j,k){k=this.get(k);return this.run(j,function(m){var l,n;l=k.parentNode;n=k.nextSibling;if(n){l.insertBefore(m,n)}else{l.appendChild(m)}return m})},isBlock:function(k){var j=k.nodeType;if(j){return !!(j===1&&g[k.nodeName])}return !!g[k]},replace:function(p,m,j){var l=this;if(e(m,"array")){p=p.cloneNode(true)}return l.run(m,function(k){if(j){f(h.grep(k.childNodes),function(n){p.appendChild(n)})}return k.parentNode.replaceChild(p,k)})},rename:function(m,j){var l=this,k;if(m.nodeName!=j.toUpperCase()){k=l.create(j);f(l.getAttribs(m),function(n){l.setAttrib(k,n.nodeName,l.getAttrib(m,n.nodeName))});l.replace(k,m,1)}return k||m},findCommonAncestor:function(l,j){var m=l,k;while(m){k=j;while(k&&m!=k){k=k.parentNode}if(m==k){break}m=m.parentNode}if(!m&&l.ownerDocument){return l.ownerDocument.documentElement}return m},toHex:function(j){var l=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(j);function k(m){m=parseInt(m).toString(16);return m.length>1?m:"0"+m}if(l){j="#"+k(l[1])+k(l[2])+k(l[3]);return j}return j},getClasses:function(){var n=this,j=[],m,o={},p=n.settings.class_filter,l;if(n.classes){return n.classes}function q(r){f(r.imports,function(s){q(s)});f(r.cssRules||r.rules,function(s){switch(s.type||1){case 1:if(s.selectorText){f(s.selectorText.split(","),function(t){t=t.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(t)||!/\.[\w\-]+$/.test(t)){return}l=t;t=h._replace(/.*\.([a-z0-9_\-]+).*/i,"$1",t);if(p&&!(t=p(t,l))){return}if(!o[t]){j.push({"class":t});o[t]=1}})}break;case 3:q(s.styleSheet);break}})}try{f(n.doc.styleSheets,q)}catch(k){}if(j.length>0){n.classes=j}return j},run:function(m,l,k){var j=this,n;if(j.doc&&typeof(m)==="string"){m=j.get(m)}if(!m){return false}k=k||this;if(!m.nodeType&&(m.length||m.length===0)){n=[];f(m,function(p,o){if(p){if(typeof(p)=="string"){p=j.doc.getElementById(p)}n.push(l.call(k,p,o))}});return n}return l.call(k,m)},getAttribs:function(k){var j;k=this.get(k);if(!k){return[]}if(b){j=[];if(k.nodeName=="OBJECT"){return k.attributes}if(k.nodeName==="OPTION"&&this.getAttrib(k,"selected")){j.push({specified:1,nodeName:"selected"})}k.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi,"").replace(/[\w:\-]+/gi,function(l){j.push({specified:1,nodeName:l})});return j}return k.attributes},isEmpty:function(o,p){var k=this,m,j,n,q,l;o=o.firstChild;if(o){q=new h.dom.TreeWalker(o);p=p||k.schema?k.schema.getNonEmptyElements():null;do{n=o.nodeType;if(n===1){if(o.getAttribute("data-mce-bogus")){continue}if(p&&p[o.nodeName.toLowerCase()]){return false}j=k.getAttribs(o);m=o.attributes.length;while(m--){l=o.attributes[m].nodeName;if(l==="name"||l.indexOf("data-")===0){return false}}}if((n===3&&!i.test(o.nodeValue))){return false}}while(o=q.next())}return true},destroy:function(k){var j=this;if(j.events){j.events.destroy()}j.win=j.doc=j.root=j.events=null;if(!k){h.removeUnload(j.destroy)}},createRng:function(){var j=this.doc;return j.createRange?j.createRange():new h.dom.Range(this)},nodeIndex:function(o,p){var j=0,m,n,l,k;if(o){for(m=o.nodeType,o=o.previousSibling,n=o;o;o=o.previousSibling){l=o.nodeType;if(p&&l==3){k=false;try{k=o.nodeValue.length}catch(q){}if(l==m||!k){continue}}j++;m=l}}return j},split:function(n,m,q){var s=this,j=s.createRng(),o,l,p;function k(v){var t,r=v.childNodes,u=v.nodeType;if(u==1&&v.getAttribute("data-mce-type")=="bookmark"){return}for(t=r.length-1;t>=0;t--){k(r[t])}if(u!=9){if(u==3&&v.nodeValue.length>0){if(!s.isBlock(v.parentNode)||h.trim(v.nodeValue).length>0){return}}else{if(u==1){r=v.childNodes;if(r.length==1&&r[0]&&r[0].nodeType==1&&r[0].getAttribute("data-mce-type")=="bookmark"){v.parentNode.insertBefore(r[0],v)}if(r.length||/^(br|hr|input|img)$/i.test(v.nodeName)){return}}}s.remove(v)}return v}if(n&&m){j.setStart(n.parentNode,s.nodeIndex(n));j.setEnd(m.parentNode,s.nodeIndex(m));o=j.extractContents();j=s.createRng();j.setStart(m.parentNode,s.nodeIndex(m)+1);j.setEnd(n.parentNode,s.nodeIndex(n)+1);l=j.extractContents();p=n.parentNode;p.insertBefore(k(o),n);if(q){p.replaceChild(q,m)}else{p.insertBefore(m,n)}p.insertBefore(k(l),n);s.remove(n);return q||m}},bind:function(n,j,m,l){var k=this;if(!k.events){k.events=new h.dom.EventUtils()}return k.events.add(n,j,m,l||this)},unbind:function(m,j,l){var k=this;if(!k.events){k.events=new h.dom.EventUtils()}return k.events.remove(m,j,l)},_findSib:function(m,j,k){var l=this,n=j;if(m){if(e(n,"string")){n=function(o){return l.is(o,j)}}for(m=m[k];m;m=m[k]){if(n(m)){return m}}}return null},_isRes:function(j){return/^(top|left|bottom|right|width|height)/i.test(j)||/;\s*(top|left|bottom|right|width|height)/i.test(j)}});h.DOM=new h.dom.DOMUtils(document,{process_html:0})})(tinymce);(function(a){function b(c){var N=this,e=c.doc,S=0,E=1,j=2,D=true,R=false,U="startOffset",h="startContainer",P="endContainer",z="endOffset",k=tinymce.extend,n=c.nodeIndex;k(N,{startContainer:e,startOffset:0,endContainer:e,endOffset:0,collapsed:D,commonAncestorContainer:e,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:q,setEnd:s,setStartBefore:g,setStartAfter:I,setEndBefore:J,setEndAfter:u,collapse:A,selectNode:x,selectNodeContents:F,compareBoundaryPoints:v,deleteContents:p,extractContents:H,cloneContents:d,insertNode:C,surroundContents:M,cloneRange:K});function q(V,t){B(D,V,t)}function s(V,t){B(R,V,t)}function g(t){q(t.parentNode,n(t))}function I(t){q(t.parentNode,n(t)+1)}function J(t){s(t.parentNode,n(t))}function u(t){s(t.parentNode,n(t)+1)}function A(t){if(t){N[P]=N[h];N[z]=N[U]}else{N[h]=N[P];N[U]=N[z]}N.collapsed=D}function x(t){g(t);u(t)}function F(t){q(t,0);s(t,t.nodeType===1?t.childNodes.length:t.nodeValue.length)}function v(Y,t){var ab=N[h],W=N[U],aa=N[P],V=N[z],Z=t.startContainer,ad=t.startOffset,X=t.endContainer,ac=t.endOffset;if(Y===0){return G(ab,W,Z,ad)}if(Y===1){return G(aa,V,Z,ad)}if(Y===2){return G(aa,V,X,ac)}if(Y===3){return G(ab,W,X,ac)}}function p(){m(j)}function H(){return m(S)}function d(){return m(E)}function C(Y){var V=this[h],t=this[U],X,W;if((V.nodeType===3||V.nodeType===4)&&V.nodeValue){if(!t){V.parentNode.insertBefore(Y,V)}else{if(t>=V.nodeValue.length){c.insertAfter(Y,V)}else{X=V.splitText(t);V.parentNode.insertBefore(Y,X)}}}else{if(V.childNodes.length>0){W=V.childNodes[t]}if(W){V.insertBefore(Y,W)}else{V.appendChild(Y)}}}function M(V){var t=N.extractContents();N.insertNode(V);V.appendChild(t);N.selectNode(V)}function K(){return k(new b(c),{startContainer:N[h],startOffset:N[U],endContainer:N[P],endOffset:N[z],collapsed:N.collapsed,commonAncestorContainer:N.commonAncestorContainer})}function O(t,V){var W;if(t.nodeType==3){return t}if(V<0){return t}W=t.firstChild;while(W&&V>0){--V;W=W.nextSibling}if(W){return W}return t}function l(){return(N[h]==N[P]&&N[U]==N[z])}function G(X,Z,V,Y){var aa,W,t,ab,ad,ac;if(X==V){if(Z==Y){return 0}if(Z0){N.collapse(V)}}else{N.collapse(V)}N.collapsed=l();N.commonAncestorContainer=c.findCommonAncestor(N[h],N[P])}function m(ab){var aa,X=0,ad=0,V,Z,W,Y,t,ac;if(N[h]==N[P]){return f(ab)}for(aa=N[P],V=aa.parentNode;V;aa=V,V=V.parentNode){if(V==N[h]){return r(aa,ab)}++X}for(aa=N[h],V=aa.parentNode;V;aa=V,V=V.parentNode){if(V==N[P]){return T(aa,ab)}++ad}Z=ad-X;W=N[h];while(Z>0){W=W.parentNode;Z--}Y=N[P];while(Z<0){Y=Y.parentNode;Z++}for(t=W.parentNode,ac=Y.parentNode;t!=ac;t=t.parentNode,ac=ac.parentNode){W=t;Y=ac}return o(W,Y,ab)}function f(Z){var ab,Y,X,aa,t,W,V;if(Z!=j){ab=e.createDocumentFragment()}if(N[U]==N[z]){return ab}if(N[h].nodeType==3){Y=N[h].nodeValue;X=Y.substring(N[U],N[z]);if(Z!=E){N[h].deleteData(N[U],N[z]-N[U]);N.collapse(D)}if(Z==j){return}ab.appendChild(e.createTextNode(X));return ab}aa=O(N[h],N[U]);t=N[z]-N[U];while(t>0){W=aa.nextSibling;V=y(aa,Z);if(ab){ab.appendChild(V)}--t;aa=W}if(Z!=E){N.collapse(D)}return ab}function r(ab,Y){var aa,Z,V,t,X,W;if(Y!=j){aa=e.createDocumentFragment()}Z=i(ab,Y);if(aa){aa.appendChild(Z)}V=n(ab);t=V-N[U];if(t<=0){if(Y!=E){N.setEndBefore(ab);N.collapse(R)}return aa}Z=ab.previousSibling;while(t>0){X=Z.previousSibling;W=y(Z,Y);if(aa){aa.insertBefore(W,aa.firstChild)}--t;Z=X}if(Y!=E){N.setEndBefore(ab);N.collapse(R)}return aa}function T(Z,Y){var ab,V,aa,t,X,W;if(Y!=j){ab=e.createDocumentFragment()}aa=Q(Z,Y);if(ab){ab.appendChild(aa)}V=n(Z);++V;t=N[z]-V;aa=Z.nextSibling;while(t>0){X=aa.nextSibling;W=y(aa,Y);if(ab){ab.appendChild(W)}--t;aa=X}if(Y!=E){N.setStartAfter(Z);N.collapse(D)}return ab}function o(Z,t,ac){var W,ae,Y,aa,ab,V,ad,X;if(ac!=j){ae=e.createDocumentFragment()}W=Q(Z,ac);if(ae){ae.appendChild(W)}Y=Z.parentNode;aa=n(Z);ab=n(t);++aa;V=ab-aa;ad=Z.nextSibling;while(V>0){X=ad.nextSibling;W=y(ad,ac);if(ae){ae.appendChild(W)}ad=X;--V}W=i(t,ac);if(ae){ae.appendChild(W)}if(ac!=E){N.setStartAfter(Z);N.collapse(D)}return ae}function i(aa,ab){var W=O(N[P],N[z]-1),ac,Z,Y,t,V,X=W!=N[P];if(W==aa){return L(W,X,R,ab)}ac=W.parentNode;Z=L(ac,R,R,ab);while(ac){while(W){Y=W.previousSibling;t=L(W,X,R,ab);if(ab!=j){Z.insertBefore(t,Z.firstChild)}X=D;W=Y}if(ac==aa){return Z}W=ac.previousSibling;ac=ac.parentNode;V=L(ac,R,R,ab);if(ab!=j){V.appendChild(Z)}Z=V}}function Q(aa,ab){var X=O(N[h],N[U]),Y=X!=N[h],ac,Z,W,t,V;if(X==aa){return L(X,Y,D,ab)}ac=X.parentNode;Z=L(ac,R,D,ab);while(ac){while(X){W=X.nextSibling;t=L(X,Y,D,ab);if(ab!=j){Z.appendChild(t)}Y=D;X=W}if(ac==aa){return Z}X=ac.nextSibling;ac=ac.parentNode;V=L(ac,R,D,ab);if(ab!=j){V.appendChild(Z)}Z=V}}function L(t,Y,ab,ac){var X,W,Z,V,aa;if(Y){return y(t,ac)}if(t.nodeType==3){X=t.nodeValue;if(ab){V=N[U];W=X.substring(V);Z=X.substring(0,V)}else{V=N[z];W=X.substring(0,V);Z=X.substring(V)}if(ac!=E){t.nodeValue=Z}if(ac==j){return}aa=t.cloneNode(R);aa.nodeValue=W;return aa}if(ac==j){return}return t.cloneNode(R)}function y(V,t){if(t!=j){return t==E?V.cloneNode(D):V}V.parentNode.removeChild(V)}}a.Range=b})(tinymce.dom);(function(){function a(g){var i=this,j="\uFEFF",e,h,d=g.dom,c=true,f=false;function b(){var n=g.getRng(),k=d.createRng(),m,o;m=n.item?n.item(0):n.parentElement();if(m.ownerDocument!=d.doc){return k}o=g.isCollapsed();if(n.item||!m.hasChildNodes()){if(o){k.setStart(m,0);k.setEnd(m,0)}else{k.setStart(m.parentNode,d.nodeIndex(m));k.setEnd(k.startContainer,k.startOffset+1)}return k}function l(s){var u,q,t,p,A=0,x,y,z,r,v;r=n.duplicate();r.collapse(s);u=d.create("a");z=r.parentElement();if(!z.hasChildNodes()){k[s?"setStart":"setEnd"](z,0);return}z.appendChild(u);r.moveToElementText(u);v=n.compareEndPoints(s?"StartToStart":"EndToEnd",r);if(v>0){k[s?"setStartAfter":"setEndAfter"](z);d.remove(u);return}p=tinymce.grep(z.childNodes);x=p.length-1;while(A<=x){y=Math.floor((A+x)/2);z.insertBefore(u,p[y]);r.moveToElementText(u);v=n.compareEndPoints(s?"StartToStart":"EndToEnd",r);if(v>0){A=y+1}else{if(v<0){x=y-1}else{found=true;break}}}q=v>0||y==0?u.nextSibling:u.previousSibling;if(q.nodeType==1){d.remove(u);t=d.nodeIndex(q);q=q.parentNode;if(!s||y>0){t++}}else{if(v>0||y==0){r.setEndPoint(s?"StartToStart":"EndToEnd",n);t=r.text.length}else{r.setEndPoint(s?"StartToStart":"EndToEnd",n);t=q.nodeValue.length-r.text.length}d.remove(u)}k[s?"setStart":"setEnd"](q,t)}l(true);if(!o){l()}return k}this.addRange=function(k){var p,n,m,r,u,s,t=g.dom.doc,o=t.body;function l(B){var x,A,v,z,y;v=d.create("a");x=B?m:u;A=B?r:s;z=p.duplicate();if(x==t||x==t.documentElement){x=o;A=0}if(x.nodeType==3){x.parentNode.insertBefore(v,x);z.moveToElementText(v);z.moveStart("character",A);d.remove(v);p.setEndPoint(B?"StartToStart":"EndToEnd",z)}else{y=x.childNodes;if(y.length){if(A>=y.length){d.insertAfter(v,y[y.length-1])}else{x.insertBefore(v,y[A])}z.moveToElementText(v)}else{v=t.createTextNode(j);x.appendChild(v);z.moveToElementText(v.parentNode);z.collapse(c)}p.setEndPoint(B?"StartToStart":"EndToEnd",z);d.remove(v)}}this.destroy();m=k.startContainer;r=k.startOffset;u=k.endContainer;s=k.endOffset;p=o.createTextRange();if(m==u&&m.nodeType==1&&r==s-1){if(r==s-1){try{n=o.createControlRange();n.addElement(m.childNodes[r]);n.select();return}catch(q){}}}l(true);l();p.select()};this.getRangeAt=function(){if(!e||!tinymce.dom.RangeUtils.compareRanges(h,g.getRng())){e=b();h=g.getRng()}try{e.startContainer.nextSibling}catch(k){e=b();h=null}return e};this.destroy=function(){h=e=null}}tinymce.dom.TridentSelection=a})();(function(){var p=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,j=0,d=Object.prototype.toString,o=false,i=true;[0,0].sort(function(){i=false;return 0});var b=function(v,e,z,A){z=z||[];e=e||document;var C=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!v||typeof v!=="string"){return z}var x=[],s,E,H,r,u=true,t=b.isXML(e),B=v,D,G,F,y;do{p.exec("");s=p.exec(B);if(s){B=s[3];x.push(s[1]);if(s[2]){r=s[3];break}}}while(s);if(x.length>1&&k.exec(v)){if(x.length===2&&f.relative[x[0]]){E=h(x[0]+x[1],e)}else{E=f.relative[x[0]]?[e]:b(x.shift(),e);while(x.length){v=x.shift();if(f.relative[v]){v+=x.shift()}E=h(v,E)}}}else{if(!A&&x.length>1&&e.nodeType===9&&!t&&f.match.ID.test(x[0])&&!f.match.ID.test(x[x.length-1])){D=b.find(x.shift(),e,t);e=D.expr?b.filter(D.expr,D.set)[0]:D.set[0]}if(e){D=A?{expr:x.pop(),set:a(A)}:b.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&e.parentNode?e.parentNode:e,t);E=D.expr?b.filter(D.expr,D.set):D.set;if(x.length>0){H=a(E)}else{u=false}while(x.length){G=x.pop();F=G;if(!f.relative[G]){G=""}else{F=x.pop()}if(F==null){F=e}f.relative[G](H,F,t)}}else{H=x=[]}}if(!H){H=E}if(!H){b.error(G||v)}if(d.call(H)==="[object Array]"){if(!u){z.push.apply(z,H)}else{if(e&&e.nodeType===1){for(y=0;H[y]!=null;y++){if(H[y]&&(H[y]===true||H[y].nodeType===1&&b.contains(e,H[y]))){z.push(E[y])}}}else{for(y=0;H[y]!=null;y++){if(H[y]&&H[y].nodeType===1){z.push(E[y])}}}}}else{a(H,z)}if(r){b(r,C,z,A);b.uniqueSort(z)}return z};b.uniqueSort=function(r){if(c){o=i;r.sort(c);if(o){for(var e=1;e":function(x,r){var u=typeof r==="string",v,s=0,e=x.length;if(u&&!/\W/.test(r)){r=r.toLowerCase();for(;s=0)){if(!s){e.push(v)}}else{if(s){r[u]=false}}}}return false},ID:function(e){return e[1].replace(/\\/g,"")},TAG:function(r,e){return r[1].toLowerCase()},CHILD:function(e){if(e[1]==="nth"){var r=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(r[1]+(r[2]||1))-0;e[3]=r[3]-0}e[0]=j++;return e},ATTR:function(u,r,s,e,v,x){var t=u[1].replace(/\\/g,"");if(!x&&f.attrMap[t]){u[1]=f.attrMap[t]}if(u[2]==="~="){u[4]=" "+u[4]+" "}return u},PSEUDO:function(u,r,s,e,v){if(u[1]==="not"){if((p.exec(u[3])||"").length>1||/^\w/.test(u[3])){u[3]=b(u[3],null,null,r)}else{var t=b.filter(u[3],r,s,true^v);if(!s){e.push.apply(e,t)}return false}}else{if(f.match.POS.test(u[0])||f.match.CHILD.test(u[0])){return true}}return u},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){e.parentNode.selectedIndex;return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(s,r,e){return !!b(e[3],s).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(e){return"text"===e.type},radio:function(e){return"radio"===e.type},checkbox:function(e){return"checkbox"===e.type},file:function(e){return"file"===e.type},password:function(e){return"password"===e.type},submit:function(e){return"submit"===e.type},image:function(e){return"image"===e.type},reset:function(e){return"reset"===e.type},button:function(e){return"button"===e.type||e.nodeName.toLowerCase()==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)}},setFilters:{first:function(r,e){return e===0},last:function(s,r,e,t){return r===t.length-1},even:function(r,e){return e%2===0},odd:function(r,e){return e%2===1},lt:function(s,r,e){return re[3]-0},nth:function(s,r,e){return e[3]-0===r},eq:function(s,r,e){return e[3]-0===r}},filter:{PSEUDO:function(s,y,x,z){var e=y[1],r=f.filters[e];if(r){return r(s,x,y,z)}else{if(e==="contains"){return(s.textContent||s.innerText||b.getText([s])||"").indexOf(y[3])>=0}else{if(e==="not"){var t=y[3];for(var v=0,u=t.length;v=0)}}},ID:function(r,e){return r.nodeType===1&&r.getAttribute("id")===e},TAG:function(r,e){return(e==="*"&&r.nodeType===1)||r.nodeName.toLowerCase()===e},CLASS:function(r,e){return(" "+(r.className||r.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(v,t){var s=t[1],e=f.attrHandle[s]?f.attrHandle[s](v):v[s]!=null?v[s]:v.getAttribute(s),x=e+"",u=t[2],r=t[4];return e==null?u==="!=":u==="="?x===r:u==="*="?x.indexOf(r)>=0:u==="~="?(" "+x+" ").indexOf(r)>=0:!r?x&&e!==false:u==="!="?x!==r:u==="^="?x.indexOf(r)===0:u==="$="?x.substr(x.length-r.length)===r:u==="|="?x===r||x.substr(0,r.length+1)===r+"-":false},POS:function(u,r,s,v){var e=r[2],t=f.setFilters[e];if(t){return t(u,s,r,v)}}}};var k=f.match.POS,g=function(r,e){return"\\"+(e-0+1)};for(var m in f.match){f.match[m]=new RegExp(f.match[m].source+(/(?![^\[]*\])(?![^\(]*\))/.source));f.leftMatch[m]=new RegExp(/(^(?:.|\r|\n)*?)/.source+f.match[m].source.replace(/\\(\d+)/g,g))}var a=function(r,e){r=Array.prototype.slice.call(r,0);if(e){e.push.apply(e,r);return e}return r};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType}catch(l){a=function(u,t){var r=t||[],s=0;if(d.call(u)==="[object Array]"){Array.prototype.push.apply(r,u)}else{if(typeof u.length==="number"){for(var e=u.length;s";var e=document.documentElement;e.insertBefore(r,e.firstChild);if(document.getElementById(s)){f.find.ID=function(u,v,x){if(typeof v.getElementById!=="undefined"&&!x){var t=v.getElementById(u[1]);return t?t.id===u[1]||typeof t.getAttributeNode!=="undefined"&&t.getAttributeNode("id").nodeValue===u[1]?[t]:undefined:[]}};f.filter.ID=function(v,t){var u=typeof v.getAttributeNode!=="undefined"&&v.getAttributeNode("id");return v.nodeType===1&&u&&u.nodeValue===t}}e.removeChild(r);e=r=null})();(function(){var e=document.createElement("div");e.appendChild(document.createComment(""));if(e.getElementsByTagName("*").length>0){f.find.TAG=function(r,v){var u=v.getElementsByTagName(r[1]);if(r[1]==="*"){var t=[];for(var s=0;u[s];s++){if(u[s].nodeType===1){t.push(u[s])}}u=t}return u}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){f.attrHandle.href=function(r){return r.getAttribute("href",2)}}e=null})();if(document.querySelectorAll){(function(){var e=b,s=document.createElement("div");s.innerHTML="

                    ";if(s.querySelectorAll&&s.querySelectorAll(".TEST").length===0){return}b=function(x,v,t,u){v=v||document;if(!u&&v.nodeType===9&&!b.isXML(v)){try{return a(v.querySelectorAll(x),t)}catch(y){}}return e(x,v,t,u)};for(var r in e){b[r]=e[r]}s=null})()}(function(){var e=document.createElement("div");e.innerHTML="
                    ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}f.order.splice(1,0,"CLASS");f.find.CLASS=function(r,s,t){if(typeof s.getElementsByClassName!=="undefined"&&!t){return s.getElementsByClassName(r[1])}};e=null})();function n(r,x,v,A,y,z){for(var t=0,s=A.length;t0){u=e;break}}}e=e[r]}A[t]=u}}}b.contains=document.compareDocumentPosition?function(r,e){return !!(r.compareDocumentPosition(e)&16)}:function(r,e){return r!==e&&(r.contains?r.contains(e):true)};b.isXML=function(e){var r=(e?e.ownerDocument||e:0).documentElement;return r?r.nodeName!=="HTML":false};var h=function(e,y){var t=[],u="",v,s=y.nodeType?[y]:y;while((v=f.match.PSEUDO.exec(e))){u+=v[0];e=e.replace(f.match.PSEUDO,"")}e=f.relative[e]?e+"*":e;for(var x=0,r=s.length;x=0;h--){k=g[h];if(k.obj===l){j._remove(k.obj,k.name,k.cfunc);k.obj=k.cfunc=null;g.splice(h,1)}}}},cancel:function(g){if(!g){return false}this.stop(g);return this.prevent(g)},stop:function(g){if(g.stopPropagation){g.stopPropagation()}else{g.cancelBubble=true}return false},prevent:function(g){if(g.preventDefault){g.preventDefault()}else{g.returnValue=false}return false},destroy:function(){var g=this;f(g.events,function(j,h){g._remove(j.obj,j.name,j.cfunc);j.obj=j.cfunc=null});g.events=[];g=null},_add:function(h,i,g){if(h.attachEvent){h.attachEvent("on"+i,g)}else{if(h.addEventListener){h.addEventListener(i,g,false)}else{h["on"+i]=g}}},_remove:function(i,j,h){if(i){try{if(i.detachEvent){i.detachEvent("on"+j,h)}else{if(i.removeEventListener){i.removeEventListener(j,h,false)}else{i["on"+j]=null}}}catch(g){}}},_pageInit:function(h){var g=this;if(g.domLoaded){return}g.domLoaded=true;f(g.inits,function(i){i()});g.inits=[]},_wait:function(i){var g=this,h=i.document;if(i.tinyMCE_GZ&&tinyMCE_GZ.loaded){g.domLoaded=1;return}if(h.attachEvent){h.attachEvent("onreadystatechange",function(){if(h.readyState==="complete"){h.detachEvent("onreadystatechange",arguments.callee);g._pageInit(i)}});if(h.documentElement.doScroll&&i==i.top){(function(){if(g.domLoaded){return}try{h.documentElement.doScroll("left")}catch(j){setTimeout(arguments.callee,0);return}g._pageInit(i)})()}}else{if(h.addEventListener){g._add(i,"DOMContentLoaded",function(){g._pageInit(i)})}}g._add(i,"load",function(){g._pageInit(i)})},_stoppers:{preventDefault:function(){this.returnValue=false},stopPropagation:function(){this.cancelBubble=true}}});a=d.dom.Event=new d.dom.EventUtils();a._wait(window);d.addUnload(function(){a.destroy()})})(tinymce);(function(a){a.dom.Element=function(f,d){var b=this,e,c;b.settings=d=d||{};b.id=f;b.dom=e=d.dom||a.DOM;if(!a.isIE){c=e.get(b.id)}a.each(("getPos,getRect,getParent,add,setStyle,getStyle,setStyles,setAttrib,setAttribs,getAttrib,addClass,removeClass,hasClass,getOuterHTML,setOuterHTML,remove,show,hide,isHidden,setHTML,get").split(/,/),function(g){b[g]=function(){var h=[f],j;for(j=0;j_';if(f.startContainer==l&&f.endContainer==l){l.body.innerHTML=k}else{f.deleteContents();if(l.body.childNodes.length==0){l.body.innerHTML=k}else{if(f.createContextualFragment){f.insertNode(f.createContextualFragment(k))}else{m=l.createDocumentFragment();g=l.createElement("div");m.appendChild(g);g.outerHTML=k;f.insertNode(m)}}}i=h.dom.get("__caret");f=l.createRange();f.setStartBefore(i);f.setEndBefore(i);h.setRng(f);h.dom.remove("__caret");h.setRng(f)}else{if(f.item){l.execCommand("Delete",false,null);f=h.getRng()}f.pasteHTML(k)}if(!j.no_events){h.onSetContent.dispatch(h,j)}},getStart:function(){var g=this.getRng(),h,f,j,i;if(g.duplicate||g.item){if(g.item){return g.item(0)}j=g.duplicate();j.collapse(1);h=j.parentElement();f=i=g.parentElement();while(i=i.parentNode){if(i==h){h=f;break}}return h}else{h=g.startContainer;if(h.nodeType==1&&h.hasChildNodes()){h=h.childNodes[Math.min(h.childNodes.length-1,g.startOffset)]}if(h&&h.nodeType==3){return h.parentNode}return h}},getEnd:function(){var g=this,h=g.getRng(),i,f;if(h.duplicate||h.item){if(h.item){return h.item(0)}h=h.duplicate();h.collapse(0);i=h.parentElement();if(i&&i.nodeName=="BODY"){return i.lastChild||i}return i}else{i=h.endContainer;f=h.endOffset;if(i.nodeType==1&&i.hasChildNodes()){i=i.childNodes[f>0?f-1:f]}if(i&&i.nodeType==3){return i.parentNode}return i}},getBookmark:function(r,s){var v=this,m=v.dom,g,j,i,n,h,o,p,l="\uFEFF",u;function f(x,y){var t=0;d(m.select(x),function(A,z){if(A==y){t=z}});return t}if(r==2){function k(){var x=v.getRng(true),t=m.getRoot(),y={};function z(C,H){var B=C[H?"startContainer":"endContainer"],G=C[H?"startOffset":"endOffset"],A=[],D,F,E=0;if(B.nodeType==3){if(s){for(D=B.previousSibling;D&&D.nodeType==3;D=D.previousSibling){G+=D.nodeValue.length}}A.push(G)}else{F=B.childNodes;if(G>=F.length&&F.length){E=1;G=Math.max(0,F.length-1)}A.push(v.dom.nodeIndex(F[G],s)+E)}for(;B&&B!=t;B=B.parentNode){A.push(v.dom.nodeIndex(B,s))}return A}y.start=z(x,true);if(!v.isCollapsed()){y.end=z(x)}return y}return k()}if(r){return{rng:v.getRng()}}g=v.getRng();i=m.uniqueId();n=tinyMCE.activeEditor.selection.isCollapsed();u="overflow:hidden;line-height:0px";if(g.duplicate||g.item){if(!g.item){j=g.duplicate();try{g.collapse();g.pasteHTML(''+l+"");if(!n){j.collapse(false);g.moveToElementText(j.parentElement());if(g.compareEndPoints("StartToEnd",j)==0){j.move("character",-1)}j.pasteHTML(''+l+"")}}catch(q){return null}}else{o=g.item(0);h=o.nodeName;return{name:h,index:f(h,o)}}}else{o=v.getNode();h=o.nodeName;if(h=="IMG"){return{name:h,index:f(h,o)}}j=g.cloneRange();if(!n){j.collapse(false);j.insertNode(m.create("span",{"data-mce-type":"bookmark",id:i+"_end",style:u},l))}g.collapse(true);g.insertNode(m.create("span",{"data-mce-type":"bookmark",id:i+"_start",style:u},l))}v.moveToBookmark({id:i,keep:1});return{id:i}},moveToBookmark:function(n){var r=this,l=r.dom,i,h,f,q,j,s,o,p;if(r.tridentSel){r.tridentSel.destroy()}if(n){if(n.start){f=l.createRng();q=l.getRoot();function g(z){var t=n[z?"start":"end"],v,x,y,u;if(t){y=t[0];for(x=q,v=t.length-1;v>=1;v--){u=x.childNodes;if(t[v]>u.length-1){return}x=u[t[v]]}if(x.nodeType===3){y=Math.min(t[0],x.nodeValue.length)}if(x.nodeType===1){y=Math.min(t[0],x.childNodes.length)}if(z){f.setStart(x,y)}else{f.setEnd(x,y)}}return true}if(g(true)&&g()){r.setRng(f)}}else{if(n.id){function k(A){var u=l.get(n.id+"_"+A),z,t,x,y,v=n.keep;if(u){z=u.parentNode;if(A=="start"){if(!v){t=l.nodeIndex(u)}else{z=u.firstChild;t=1}j=s=z;o=p=t}else{if(!v){t=l.nodeIndex(u)}else{z=u.firstChild;t=1}s=z;p=t}if(!v){y=u.previousSibling;x=u.nextSibling;d(c.grep(u.childNodes),function(B){if(B.nodeType==3){B.nodeValue=B.nodeValue.replace(/\uFEFF/g,"")}});while(u=l.get(n.id+"_"+A)){l.remove(u,1)}if(y&&x&&y.nodeType==x.nodeType&&y.nodeType==3&&!c.isOpera){t=y.nodeValue.length;y.appendData(x.nodeValue);l.remove(x);if(A=="start"){j=s=y;o=p=t}else{s=y;p=t}}}}}function m(t){if(l.isBlock(t)&&!t.innerHTML){t.innerHTML=!a?'
                    ':" "}return t}k("start");k("end");if(j){f=l.createRng();f.setStart(m(j),o);f.setEnd(m(s),p);r.setRng(f)}}else{if(n.name){r.select(l.select(n.name)[n.index])}else{if(n.rng){r.setRng(n.rng)}}}}}},select:function(k,j){var i=this,l=i.dom,g=l.createRng(),f;if(k){f=l.nodeIndex(k);g.setStart(k.parentNode,f);g.setEnd(k.parentNode,f+1);if(j){function h(m,o){var n=new c.dom.TreeWalker(m,m);do{if(m.nodeType==3&&c.trim(m.nodeValue).length!=0){if(o){g.setStart(m,0)}else{g.setEnd(m,m.nodeValue.length)}return}if(m.nodeName=="BR"){if(o){g.setStartBefore(m)}else{g.setEndBefore(m)}return}}while(m=(o?n.next():n.prev()))}h(k,1);h(k)}i.setRng(g)}return k},isCollapsed:function(){var f=this,h=f.getRng(),g=f.getSel();if(!h||h.item){return false}if(h.compareEndPoints){return h.compareEndPoints("StartToEnd",h)===0}return !g||h.collapsed},collapse:function(f){var h=this,g=h.getRng(),i;if(g.item){i=g.item(0);g=h.win.document.body.createTextRange();g.moveToElementText(i)}g.collapse(!!f);h.setRng(g)},getSel:function(){var g=this,f=this.win;return f.getSelection?f.getSelection():f.document.selection},getRng:function(l){var g=this,h,i,k,j=g.win.document;if(l&&g.tridentSel){return g.tridentSel.getRangeAt(0)}try{if(h=g.getSel()){i=h.rangeCount>0?h.getRangeAt(0):(h.createRange?h.createRange():j.createRange())}}catch(f){}if(c.isIE&&i&&i.setStart&&j.selection.createRange().item){k=j.selection.createRange().item(0);i=j.createRange();i.setStartBefore(k);i.setEndAfter(k)}if(!i){i=j.createRange?j.createRange():j.body.createTextRange()}if(g.selectedRange&&g.explicitRange){if(i.compareBoundaryPoints(i.START_TO_START,g.selectedRange)===0&&i.compareBoundaryPoints(i.END_TO_END,g.selectedRange)===0){i=g.explicitRange}else{g.selectedRange=null;g.explicitRange=null}}return i},setRng:function(i){var h,g=this;if(!g.tridentSel){h=g.getSel();if(h){g.explicitRange=i;try{h.removeAllRanges()}catch(f){}h.addRange(i);g.selectedRange=h.getRangeAt(0)}}else{if(i.cloneRange){g.tridentSel.addRange(i);return}try{i.select()}catch(f){}}},setNode:function(g){var f=this;f.setContent(f.dom.getOuterHTML(g));return g},getNode:function(){var h=this,g=h.getRng(),i=h.getSel(),l,k=g.startContainer,f=g.endContainer;if(!g){return h.dom.getRoot()}if(g.setStart){l=g.commonAncestorContainer;if(!g.collapsed){if(g.startContainer==g.endContainer){if(g.endOffset-g.startOffset<2){if(g.startContainer.hasChildNodes()){l=g.startContainer.childNodes[g.startOffset]}}}if(k.nodeType===3&&f.nodeType===3){function j(p,m){var o=p;while(p&&p.nodeType===3&&p.length===0){p=m?p.nextSibling:p.previousSibling}return p||o}if(k.length===g.startOffset){k=j(k.nextSibling,true)}else{k=k.parentNode}if(g.endOffset===0){f=j(f.previousSibling,false)}else{f=f.parentNode}if(k&&k===f){return k}}}if(l&&l.nodeType==3){return l.parentNode}return l}return g.item?g.item(0):g.parentElement()},getSelectedBlocks:function(g,f){var i=this,j=i.dom,m,h,l,k=[];m=j.getParent(g||i.getStart(),j.isBlock);h=j.getParent(f||i.getEnd(),j.isBlock);if(m){k.push(m)}if(m&&h&&m!=h){l=m;while((l=l.nextSibling)&&l!=h){if(j.isBlock(l)){k.push(l)}}}if(h&&m!=h){k.push(h)}return k},destroy:function(g){var f=this;f.win=null;if(f.tridentSel){f.tridentSel.destroy()}if(!g){c.removeUnload(f.destroy)}},_fixIESelection:function(){var g=this.dom,m=g.doc,h=m.body,j,n,f;m.documentElement.unselectable=true;function i(o,r){var p=h.createTextRange();try{p.moveToPoint(o,r)}catch(q){p=null}return p}function l(p){var o;if(p.button){o=i(p.x,p.y);if(o){if(o.compareEndPoints("StartToStart",n)>0){o.setEndPoint("StartToStart",n)}else{o.setEndPoint("EndToEnd",n)}o.select()}}else{k()}}function k(){var o=m.selection.createRange();if(n&&!o.item&&o.compareEndPoints("StartToEnd",o)===0){n.select()}g.unbind(m,"mouseup",k);g.unbind(m,"mousemove",l);n=j=0}g.bind(m,["mousedown","contextmenu"],function(o){if(o.target.nodeName==="HTML"){if(j){k()}f=m.documentElement;if(f.scrollHeight>f.clientHeight){return}j=1;n=i(o.x,o.y);if(n){g.bind(m,"mouseup",k);g.bind(m,"mousemove",l);g.win.focus();n.select()}}})}})})(tinymce);(function(a){a.dom.Serializer=function(e,i,f){var h,b,d=a.isIE,g=a.each,c;if(!e.apply_source_formatting){e.indent=false}e.remove_trailing_brs=true;i=i||a.DOM;f=f||new a.html.Schema(e);e.entity_encoding=e.entity_encoding||"named";h=new a.util.Dispatcher(self);b=new a.util.Dispatcher(self);c=new a.html.DomParser(e,f);c.addAttributeFilter("src,href,style",function(k,j){var o=k.length,l,q,n="data-mce-"+j,p=e.url_converter,r=e.url_converter_scope,m;while(o--){l=k[o];q=l.attributes.map[n];if(q!==m){l.attr(j,q.length>0?q:null);l.attr(n,null)}else{q=l.attributes.map[j];if(j==="style"){q=i.serializeStyle(i.parseStyle(q),l.name)}else{if(p){q=p.call(r,q,j,l.name)}}l.attr(j,q.length>0?q:null)}}});c.addAttributeFilter("class",function(j,k){var l=j.length,m,n;while(l--){m=j[l];n=m.attr("class").replace(/\s*mce(Item\w+|Selected)\s*/g,"");m.attr("class",n.length>0?n:null)}});c.addAttributeFilter("data-mce-type",function(j,l,k){var m=j.length,n;while(m--){n=j[m];if(n.attributes.map["data-mce-type"]==="bookmark"&&!k.cleanup){n.remove()}}});c.addNodeFilter("script,style",function(k,l){var m=k.length,n,o;function j(p){return p.replace(/()/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*(\/\/\s*|\]\]>|-->|\]\]-->)\s*$/g,"")}while(m--){n=k[m];o=n.firstChild?n.firstChild.value:"";if(l==="script"){n.attr("type",(n.attr("type")||"text/javascript").replace(/^mce\-/,""));if(o.length>0){n.firstChild.value="// "}}else{if(o.length>0){n.firstChild.value=""}}}});c.addNodeFilter("#comment",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.value.indexOf("[CDATA[")===0){m.name="#cdata";m.type=4;m.value=m.value.replace(/^\[CDATA\[|\]\]$/g,"")}else{if(m.value.indexOf("mce:protected ")===0){m.name="#text";m.type=3;m.raw=true;m.value=unescape(m.value).substr(14)}}}});c.addNodeFilter("xml:namespace,input",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.type===7){m.remove()}else{if(m.type===1){if(k==="input"&&!("type" in m.attributes.map)){m.attr("type","text")}}}}});if(e.fix_list_elements){c.addNodeFilter("ul,ol",function(k,l){var m=k.length,n,j;while(m--){n=k[m];j=n.parent;if(j.name==="ul"||j.name==="ol"){if(n.prev&&n.prev.name==="li"){n.prev.append(n)}}}})}c.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style",function(j,k){var l=j.length;while(l--){j[l].attr(k,null)}});return{schema:f,addNodeFilter:c.addNodeFilter,addAttributeFilter:c.addAttributeFilter,onPreProcess:h,onPostProcess:b,serialize:function(o,m){var l,p,k,j,n;if(d&&i.select("script,style,select").length>0){n=o.innerHTML;o=o.cloneNode(false);i.setHTML(o,n)}else{o=o.cloneNode(true)}l=o.ownerDocument.implementation;if(l.createHTMLDocument){p=l.createHTMLDocument("");g(o.nodeName=="BODY"?o.childNodes:[o],function(q){p.body.appendChild(p.importNode(q,true))});if(o.nodeName!="BODY"){o=p.body.firstChild}else{o=p.body}k=i.doc;i.doc=p}m=m||{};m.format=m.format||"html";if(!m.no_events){m.node=o;h.dispatch(self,m)}j=new a.html.Serializer(e,f);m.content=j.serialize(c.parse(m.getInner?o.innerHTML:a.trim(i.getOuterHTML(o),m),m));if(!m.cleanup){m.content=m.content.replace(/\uFEFF/g,"")}if(!m.no_events){b.dispatch(self,m)}if(k){i.doc=k}m.node=null;return m.content},addRules:function(j){f.addValidElements(j)},setRules:function(j){f.setValidElements(j)}}}})(tinymce);(function(a){a.dom.ScriptLoader=function(h){var c=0,k=1,i=2,l={},j=[],f={},d=[],g=0,e;function b(m,v){var x=this,q=a.DOM,s,o,r,n;function p(){q.remove(n);if(s){s.onreadystatechange=s.onload=s=null}v()}function u(){if(typeof(console)!=="undefined"&&console.log){console.log("Failed to load: "+m)}}n=q.uniqueId();if(a.isIE6){o=new a.util.URI(m);r=location;if(o.host==r.hostname&&o.port==r.port&&(o.protocol+":")==r.protocol&&o.protocol.toLowerCase()!="file"){a.util.XHR.send({url:a._addVer(o.getURI()),success:function(y){var t=q.create("script",{type:"text/javascript"});t.text=y;document.getElementsByTagName("head")[0].appendChild(t);q.remove(t);p()},error:u});return}}s=q.create("script",{id:n,type:"text/javascript",src:a._addVer(m)});if(!a.isIE){s.onload=p}s.onerror=u;if(!a.isOpera){s.onreadystatechange=function(){var t=s.readyState;if(t=="complete"||t=="loaded"){p()}}}(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}this.isDone=function(m){return l[m]==i};this.markDone=function(m){l[m]=i};this.add=this.load=function(m,q,n){var o,p=l[m];if(p==e){j.push(m);l[m]=c}if(q){if(!f[m]){f[m]=[]}f[m].push({func:q,scope:n||this})}};this.loadQueue=function(n,m){this.loadScripts(j,n,m)};this.loadScripts=function(m,q,p){var o;function n(r){a.each(f[r],function(s){s.func.call(s.scope)});f[r]=e}d.push({func:q,scope:p||this});o=function(){var r=a.grep(m);m.length=0;a.each(r,function(s){if(l[s]==i){n(s);return}if(l[s]!=k){l[s]=k;g++;b(s,function(){l[s]=i;g--;n(s);o()})}});if(!g){a.each(d,function(s){s.func.call(s.scope)});d.length=0}};o()}};a.ScriptLoader=new a.dom.ScriptLoader()})(tinymce);tinymce.dom.TreeWalker=function(a,c){var b=a;function d(i,f,e,j){var h,g;if(i){if(!j&&i[f]){return i[f]}if(i!=c){h=i[e];if(h){return h}for(g=i.parentNode;g&&g!=c;g=g.parentNode){h=g[e];if(h){return h}}}}}this.current=function(){return b};this.next=function(e){return(b=d(b,"firstChild","nextSibling",e))};this.prev=function(e){return(b=d(b,"lastChild","previousSibling",e))}};(function(a){a.dom.RangeUtils=function(c){var b="\uFEFF";this.walk=function(d,r){var h=d.startContainer,k=d.startOffset,s=d.endContainer,l=d.endOffset,i,f,n,g,q,p,e;e=c.select("td.mceSelected,th.mceSelected");if(e.length>0){a.each(e,function(t){r([t])});return}function o(v,u,t){var x=[];for(;v&&v!=t;v=v[u]){x.push(v)}return x}function m(u,t){do{if(u.parentNode==t){return u}u=u.parentNode}while(u)}function j(v,u,x){var t=x?"nextSibling":"previousSibling";for(g=v,q=g.parentNode;g&&g!=u;g=q){q=g.parentNode;p=o(g==v?g:g[t],t);if(p.length){if(!x){p.reverse()}r(p)}}}if(h.nodeType==1&&h.hasChildNodes()){h=h.childNodes[k]}if(s.nodeType==1&&s.hasChildNodes()){s=s.childNodes[Math.min(l-1,s.childNodes.length-1)]}i=c.findCommonAncestor(h,s);if(h==s){return r([h])}for(g=h;g;g=g.parentNode){if(g==s){return j(h,i,true)}if(g==i){break}}for(g=s;g;g=g.parentNode){if(g==h){return j(s,i)}if(g==i){break}}f=m(h,i)||h;n=m(s,i)||s;j(h,f,true);p=o(f==h?f:f.nextSibling,"nextSibling",n==s?n.nextSibling:n);if(p.length){r(p)}j(s,n)}};a.dom.RangeUtils.compareRanges=function(c,b){if(c&&b){if(c.item||c.duplicate){if(c.item&&b.item&&c.item(0)===b.item(0)){return true}if(c.isEqual&&b.isEqual&&b.isEqual(c)){return true}}else{return c.startContainer==b.startContainer&&c.startOffset==b.startOffset}}return false}})(tinymce);(function(b){var a=b.dom.Event,c=b.each;b.create("tinymce.ui.KeyboardNavigation",{KeyboardNavigation:function(e,f){var p=this,m=e.root,l=e.items,n=e.enableUpDown,i=e.enableLeftRight||!e.enableUpDown,k=e.excludeFromTabOrder,j,h,o,d,g;f=f||b.DOM;j=function(q){g=q.target.id};h=function(q){f.setAttrib(q.target.id,"tabindex","-1")};d=function(q){var r=f.get(g);f.setAttrib(r,"tabindex","0");r.focus()};p.focus=function(){f.get(g).focus()};p.destroy=function(){c(l,function(q){f.unbind(f.get(q.id),"focus",j);f.unbind(f.get(q.id),"blur",h)});f.unbind(f.get(m),"focus",d);f.unbind(f.get(m),"keydown",o);l=f=m=p.focus=j=h=o=d=null;p.destroy=function(){}};p.moveFocus=function(u,r){var q=-1,t=p.controls,s;if(!g){return}c(l,function(x,v){if(x.id===g){q=v;return false}});q+=u;if(q<0){q=l.length-1}else{if(q>=l.length){q=0}}s=l[q];f.setAttrib(g,"tabindex","-1");f.setAttrib(s.id,"tabindex","0");f.get(s.id).focus();if(e.actOnFocus){e.onAction(s.id)}if(r){a.cancel(r)}};o=function(y){var u=37,t=39,x=38,z=40,q=27,s=14,r=13,v=32;switch(y.keyCode){case u:if(i){p.moveFocus(-1)}break;case t:if(i){p.moveFocus(1)}break;case x:if(n){p.moveFocus(-1)}break;case z:if(n){p.moveFocus(1)}break;case q:if(e.onCancel){e.onCancel();a.cancel(y)}break;case s:case r:case v:if(e.onAction){e.onAction(g);a.cancel(y)}break}};c(l,function(s,q){var r;if(!s.id){s.id=f.uniqueId("_mce_item_")}if(k){f.bind(s.id,"blur",h);r="-1"}else{r=(q===0?"0":"-1")}f.setAttrib(s.id,"tabindex",r);f.bind(f.get(s.id),"focus",j)});if(l[0]){g=l[0].id}f.setAttrib(m,"tabindex","-1");f.bind(f.get(m),"focus",d);f.bind(f.get(m),"keydown",o)}})})(tinymce);(function(c){var b=c.DOM,a=c.is;c.create("tinymce.ui.Control",{Control:function(f,e,d){this.id=f;this.settings=e=e||{};this.rendered=false;this.onRender=new c.util.Dispatcher(this);this.classPrefix="";this.scope=e.scope||this;this.disabled=0;this.active=0;this.editor=d},setAriaProperty:function(f,e){var d=b.get(this.id+"_aria")||b.get(this.id);if(d){b.setAttrib(d,"aria-"+f,!!e)}},focus:function(){b.get(this.id).focus()},setDisabled:function(d){if(d!=this.disabled){this.setAriaProperty("disabled",d);this.setState("Disabled",d);this.setState("Enabled",!d);this.disabled=d}},isDisabled:function(){return this.disabled},setActive:function(d){if(d!=this.active){this.setState("Active",d);this.active=d;this.setAriaProperty("pressed",d)}},isActive:function(){return this.active},setState:function(f,d){var e=b.get(this.id);f=this.classPrefix+f;if(d){b.addClass(e,f)}else{b.removeClass(e,f)}},isRendered:function(){return this.rendered},renderHTML:function(){},renderTo:function(d){b.setHTML(d,this.renderHTML())},postRender:function(){var e=this,d;if(a(e.disabled)){d=e.disabled;e.disabled=-1;e.setDisabled(d)}if(a(e.active)){d=e.active;e.active=-1;e.setActive(d)}},remove:function(){b.remove(this.id);this.destroy()},destroy:function(){c.dom.Event.clear(this.id)}})})(tinymce);tinymce.create("tinymce.ui.Container:tinymce.ui.Control",{Container:function(c,b,a){this.parent(c,b,a);this.controls=[];this.lookup={}},add:function(a){this.lookup[a.id]=a;this.controls.push(a);return a},get:function(a){return this.lookup[a]}});tinymce.create("tinymce.ui.Separator:tinymce.ui.Control",{Separator:function(b,a){this.parent(b,a);this.classPrefix="mceSeparator";this.setDisabled(true)},renderHTML:function(){return tinymce.DOM.createHTML("span",{"class":this.classPrefix,role:"separator","aria-orientation":"vertical",tabindex:"-1"})}});(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.MenuItem:tinymce.ui.Control",{MenuItem:function(g,f){this.parent(g,f);this.classPrefix="mceMenuItem"},setSelected:function(f){this.setState("Selected",f);this.setAriaProperty("checked",!!f);this.selected=f},isSelected:function(){return this.selected},postRender:function(){var f=this;f.parent();if(c(f.selected)){f.setSelected(f.selected)}}})})(tinymce);(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.Menu:tinymce.ui.MenuItem",{Menu:function(h,g){var f=this;f.parent(h,g);f.items={};f.collapsed=false;f.menuCount=0;f.onAddItem=new d.util.Dispatcher(this)},expand:function(g){var f=this;if(g){a(f,function(h){if(h.expand){h.expand()}},"items",f)}f.collapsed=false},collapse:function(g){var f=this;if(g){a(f,function(h){if(h.collapse){h.collapse()}},"items",f)}f.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(f){if(!f.settings){f=new d.ui.MenuItem(f.id||b.uniqueId(),f)}this.onAddItem.dispatch(this,f);return this.items[f.id]=f},addSeparator:function(){return this.add({separator:true})},addMenu:function(f){if(!f.collapse){f=this.createMenu(f)}this.menuCount++;return this.add(f)},hasMenus:function(){return this.menuCount!==0},remove:function(f){delete this.items[f.id]},removeAll:function(){var f=this;a(f,function(g){if(g.removeAll){g.removeAll()}else{g.remove()}g.destroy()},"items",f);f.items={}},createMenu:function(g){var f=new d.ui.Menu(g.id||b.uniqueId(),g);f.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return f}})})(tinymce);(function(e){var d=e.is,c=e.DOM,f=e.each,a=e.dom.Event,b=e.dom.Element;e.create("tinymce.ui.DropMenu:tinymce.ui.Menu",{DropMenu:function(h,g){g=g||{};g.container=g.container||c.doc.body;g.offset_x=g.offset_x||0;g.offset_y=g.offset_y||0;g.vp_offset_x=g.vp_offset_x||0;g.vp_offset_y=g.vp_offset_y||0;if(d(g.icons)&&!g.icons){g["class"]+=" mceNoIcons"}this.parent(h,g);this.onShowMenu=new e.util.Dispatcher(this);this.onHideMenu=new e.util.Dispatcher(this);this.classPrefix="mceMenu"},createMenu:function(j){var h=this,i=h.settings,g;j.container=j.container||i.container;j.parent=h;j.constrain=j.constrain||i.constrain;j["class"]=j["class"]||i["class"];j.vp_offset_x=j.vp_offset_x||i.vp_offset_x;j.vp_offset_y=j.vp_offset_y||i.vp_offset_y;j.keyboard_focus=i.keyboard_focus;g=new e.ui.DropMenu(j.id||c.uniqueId(),j);g.onAddItem.add(h.onAddItem.dispatch,h.onAddItem);return g},focus:function(){var g=this;if(g.keyboardNav){g.keyboardNav.focus()}},update:function(){var i=this,j=i.settings,g=c.get("menu_"+i.id+"_tbl"),l=c.get("menu_"+i.id+"_co"),h,k;h=j.max_width?Math.min(g.clientWidth,j.max_width):g.clientWidth;k=j.max_height?Math.min(g.clientHeight,j.max_height):g.clientHeight;if(!c.boxModel){i.element.setStyles({width:h+2,height:k+2})}else{i.element.setStyles({width:h,height:k})}if(j.max_width){c.setStyle(l,"width",h)}if(j.max_height){c.setStyle(l,"height",k);if(g.clientHeightv){p=r?r-u:Math.max(0,(v-A.vp_offset_x)-u)}if((n+A.vp_offset_y+l)>q){n=Math.max(0,(q-A.vp_offset_y)-l)}}c.setStyles(o,{left:p,top:n});z.element.update();z.isMenuVisible=1;z.mouseClickFunc=a.add(o,"click",function(s){var h;s=s.target;if(s&&(s=c.getParent(s,"tr"))&&!c.hasClass(s,m+"ItemSub")){h=z.items[s.id];if(h.isDisabled()){return}k=z;while(k){if(k.hideMenu){k.hideMenu()}k=k.settings.parent}if(h.settings.onclick){h.settings.onclick(s)}return a.cancel(s)}});if(z.hasMenus()){z.mouseOverFunc=a.add(o,"mouseover",function(x){var h,t,s;x=x.target;if(x&&(x=c.getParent(x,"tr"))){h=z.items[x.id];if(z.lastMenu){z.lastMenu.collapse(1)}if(h.isDisabled()){return}if(x&&c.hasClass(x,m+"ItemSub")){t=c.getRect(x);h.showMenu((t.x+t.w-i),t.y-i,t.x);z.lastMenu=h;c.addClass(c.get(h.id).firstChild,m+"ItemActive")}}})}a.add(o,"keydown",z._keyHandler,z);z.onShowMenu.dispatch(z);if(A.keyboard_focus){z._setupKeyboardNav()}},hideMenu:function(j){var g=this,i=c.get("menu_"+g.id),h;if(!g.isMenuVisible){return}if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(i,"mouseover",g.mouseOverFunc);a.remove(i,"click",g.mouseClickFunc);a.remove(i,"keydown",g._keyHandler);c.hide(i);g.isMenuVisible=0;if(!j){g.collapse(1)}if(g.element){g.element.hide()}if(h=c.get(g.id)){c.removeClass(h.firstChild,g.classPrefix+"ItemActive")}g.onHideMenu.dispatch(g)},add:function(i){var g=this,h;i=g.parent(i);if(g.isRendered&&(h=c.get("menu_"+g.id))){g._add(c.select("tbody",h)[0],i)}return i},collapse:function(g){this.parent(g);this.hideMenu(1)},remove:function(g){c.remove(g.id);this.destroy();return this.parent(g)},destroy:function(){var g=this,h=c.get("menu_"+g.id);if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(h,"mouseover",g.mouseOverFunc);a.remove(c.select("a",h),"focus",g.mouseOverFunc);a.remove(h,"click",g.mouseClickFunc);a.remove(h,"keydown",g._keyHandler);if(g.element){g.element.remove()}c.remove(h)},renderNode:function(){var i=this,j=i.settings,l,h,k,g;g=c.create("div",{role:"listbox",id:"menu_"+i.id,"class":j["class"],style:"position:absolute;left:0;top:0;z-index:200000;outline:0"});if(i.settings.parent){c.setAttrib(g,"aria-parent","menu_"+i.settings.parent.id)}k=c.add(g,"div",{role:"presentation",id:"menu_"+i.id+"_co","class":i.classPrefix+(j["class"]?" "+j["class"]:"")});i.element=new b("menu_"+i.id,{blocker:1,container:j.container});if(j.menu_line){c.add(k,"span",{"class":i.classPrefix+"Line"})}l=c.add(k,"table",{role:"presentation",id:"menu_"+i.id+"_tbl",border:0,cellPadding:0,cellSpacing:0});h=c.add(l,"tbody");f(i.items,function(m){i._add(h,m)});i.rendered=true;return g},_setupKeyboardNav:function(){var i,h,g=this;i=c.select("#menu_"+g.id)[0];h=c.select("a[role=option]","menu_"+g.id);h.splice(0,0,i);g.keyboardNav=new e.ui.KeyboardNavigation({root:"menu_"+g.id,items:h,onCancel:function(){g.hideMenu()},enableUpDown:true});i.focus()},_keyHandler:function(g){var h=this,i;switch(g.keyCode){case 37:if(h.settings.parent){h.hideMenu();h.settings.parent.focus();a.cancel(g)}break;case 39:if(h.mouseOverFunc){h.mouseOverFunc(g)}break}},_add:function(j,h){var i,q=h.settings,p,l,k,m=this.classPrefix,g;if(q.separator){l=c.add(j,"tr",{id:h.id,"class":m+"ItemSeparator"});c.add(l,"td",{"class":m+"ItemSeparator"});if(i=l.previousSibling){c.addClass(i,"mceLast")}return}i=l=c.add(j,"tr",{id:h.id,"class":m+"Item "+m+"ItemEnabled"});i=k=c.add(i,q.titleItem?"th":"td");i=p=c.add(i,"a",{id:h.id+"_aria",role:q.titleItem?"presentation":"option",href:"javascript:;",onclick:"return false;",onmousedown:"return false;"});if(q.parent){c.setAttrib(p,"aria-haspopup","true");c.setAttrib(p,"aria-owns","menu_"+h.id)}c.addClass(k,q["class"]);g=c.add(i,"span",{"class":"mceIcon"+(q.icon?" mce_"+q.icon:"")});if(q.icon_src){c.add(g,"img",{src:q.icon_src})}i=c.add(i,q.element||"span",{"class":"mceText",title:h.settings.title},h.settings.title);if(h.settings.style){c.setAttrib(i,"style",h.settings.style)}if(j.childNodes.length==1){c.addClass(l,"mceFirst")}if((i=l.previousSibling)&&c.hasClass(i,m+"ItemSeparator")){c.addClass(l,"mceFirst")}if(h.collapse){c.addClass(l,m+"ItemSub")}if(i=l.previousSibling){c.removeClass(i,"mceLast")}c.addClass(l,"mceLast")}})})(tinymce);(function(b){var a=b.DOM;b.create("tinymce.ui.Button:tinymce.ui.Control",{Button:function(e,d,c){this.parent(e,d,c);this.classPrefix="mceButton"},renderHTML:function(){var f=this.classPrefix,e=this.settings,d,c;c=a.encode(e.label||"");d='';if(e.image){d+=''+a.encode(e.title)+''+c}else{d+=''+(c?''+c+"":"")}d+='";d+="";return d},postRender:function(){var c=this,d=c.settings;b.dom.Event.add(c.id,"click",function(f){if(!c.isDisabled()){return d.onclick.call(d.scope,f)}})}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create("tinymce.ui.ListBox:tinymce.ui.Control",{ListBox:function(i,h,f){var g=this;g.parent(i,h,f);g.items=[];g.onChange=new a(g);g.onPostRender=new a(g);g.onAdd=new a(g);g.onRenderMenu=new d.util.Dispatcher(this);g.classPrefix="mceListBox"},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&&h.call){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){var g=this,h,i;if(f!=g.selectedIndex){h=c.get(g.id+"_text");i=g.items[f];if(i){g.selectedValue=i.value;g.selectedIndex=f;c.setHTML(h,c.encode(i.title));c.removeClass(h,"mceTitle");c.setAttrib(g.id,"aria-valuenow",i.title)}else{c.setHTML(h,c.encode(g.settings.title));c.addClass(h,"mceTitle");g.selectedValue=g.selectedIndex=null;c.setAttrib(g.id,"aria-valuenow",g.settings.title)}h=0}},add:function(i,f,h){var g=this;h=h||{};h=d.extend(h,{title:i,value:f});g.items.push(h);g.onAdd.dispatch(g,h)},getLength:function(){return this.items.length},renderHTML:function(){var i="",f=this,g=f.settings,j=f.classPrefix;i='';i+="";i+="";i+="";return i},showMenu:function(){var g=this,j,i,h=c.get(this.id),f;if(g.isDisabled()||g.items.length==0){return}if(g.menu&&g.menu.isMenuVisible){return g.hideMenu()}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}j=c.getPos(this.settings.menu_container);i=c.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.keyboard_focus=!d.isOpera;if(g.oldID){f.items[g.oldID].setSelected(0)}e(g.items,function(k){if(k.value===g.selectedValue){f.items[k.id].setSelected(1);g.oldID=k.id}});f.showMenu(0,h.clientHeight);b.add(c.doc,"mousedown",g.hideMenu,g);c.addClass(g.id,g.classPrefix+"Selected")},hideMenu:function(g){var f=this;if(f.menu&&f.menu.isMenuVisible){c.removeClass(f.id,f.classPrefix+"Selected");if(g&&g.type=="mousedown"&&(g.target.id==f.id+"_text"||g.target.id==f.id+"_open")){return}if(!g||!c.getParent(g.target,".mceMenu")){c.removeClass(f.id,f.classPrefix+"Selected");b.remove(c.doc,"mousedown",f.hideMenu,f);f.menu.hideMenu()}}},renderMenu:function(){var g=this,f;f=g.settings.control_manager.createDropMenu(g.id+"_menu",{menu_line:1,"class":g.classPrefix+"Menu mceNoIcons",max_width:150,max_height:150});f.onHideMenu.add(function(){g.hideMenu();g.focus()});f.add({title:g.settings.title,"class":"mceMenuItemTitle",onclick:function(){if(g.settings.onselect("")!==false){g.select("")}}});e(g.items,function(h){if(h.value===undefined){f.add({title:h.title,"class":"mceMenuItemTitle",onclick:function(){if(g.settings.onselect("")!==false){g.select("")}}})}else{h.id=c.uniqueId();h.onclick=function(){if(g.settings.onselect(h.value)!==false){g.select(h.value)}};f.add(h)}});g.onRenderMenu.dispatch(g,f);g.menu=f},postRender:function(){var f=this,g=f.classPrefix;b.add(f.id,"click",f.showMenu,f);b.add(f.id,"keydown",function(h){if(h.keyCode==32){f.showMenu(h);b.cancel(h)}});b.add(f.id,"focus",function(){if(!f._focused){f.keyDownHandler=b.add(f.id,"keydown",function(h){if(h.keyCode==40){f.showMenu();b.cancel(h)}});f.keyPressHandler=b.add(f.id,"keypress",function(i){var h;if(i.keyCode==13){h=f.selectedValue;f.selectedValue=null;b.cancel(i);f.settings.onselect(h)}})}f._focused=1});b.add(f.id,"blur",function(){b.remove(f.id,"keydown",f.keyDownHandler);b.remove(f.id,"keypress",f.keyPressHandler);f._focused=0});if(d.isIE6||!c.boxModel){b.add(f.id,"mouseover",function(){if(!c.hasClass(f.id,g+"Disabled")){c.addClass(f.id,g+"Hover")}});b.add(f.id,"mouseout",function(){if(!c.hasClass(f.id,g+"Disabled")){c.removeClass(f.id,g+"Hover")}})}f.onPostRender.dispatch(f,c.get(f.id))},destroy:function(){this.parent();b.clear(this.id+"_text");b.clear(this.id+"_open")}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox",{NativeListBox:function(g,f){this.parent(g,f);this.classPrefix="mceNativeListBox"},setDisabled:function(f){c.get(this.id).disabled=f;this.setAriaProperty("disabled",f)},isDisabled:function(){return c.get(this.id).disabled},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&&h.call){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){c.get(this.id).selectedIndex=f+1;this.selectedValue=this.items[f]?this.items[f].value:null},add:function(j,g,f){var i,h=this;f=f||{};f.value=g;if(h.isRendered()){c.add(c.get(this.id),"option",f,j)}i={title:j,value:g,attribs:f};h.items.push(i);h.onAdd.dispatch(h,i)},getLength:function(){return this.items.length},renderHTML:function(){var g,f=this;g=c.createHTML("option",{value:""},"-- "+f.settings.title+" --");e(f.items,function(h){g+=c.createHTML("option",{value:h.value},h.title)});g=c.createHTML("select",{id:f.id,"class":"mceNativeListBox","aria-labelledby":f.id+"_aria"},g);g+=c.createHTML("span",{id:f.id+"_aria",style:"display: none"},f.settings.title);return g},postRender:function(){var g=this,h,i=true;g.rendered=true;function f(k){var j=g.items[k.target.selectedIndex-1];if(j&&(j=j.value)){g.onChange.dispatch(g,j);if(g.settings.onselect){g.settings.onselect(j)}}}b.add(g.id,"change",f);b.add(g.id,"keydown",function(k){var j;b.remove(g.id,"change",h);i=false;j=b.add(g.id,"blur",function(){if(i){return}i=true;b.add(g.id,"change",f);b.remove(g.id,"blur",j)});if(k.keyCode==13||k.keyCode==32){f(k);return b.cancel(k)}});g.onPostRender.dispatch(g,c.get(g.id))}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.MenuButton:tinymce.ui.Button",{MenuButton:function(g,f,e){this.parent(g,f,e);this.onRenderMenu=new c.util.Dispatcher(this);f.menu_container=f.menu_container||b.doc.body},showMenu:function(){var g=this,j,i,h=b.get(g.id),f;if(g.isDisabled()){return}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}if(g.isMenuVisible){return g.hideMenu()}j=b.getPos(g.settings.menu_container);i=b.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.vp_offset_x=i.x;f.settings.vp_offset_y=i.y;f.settings.keyboard_focus=g._focused;f.showMenu(0,h.clientHeight);a.add(b.doc,"mousedown",g.hideMenu,g);g.setState("Selected",1);g.isMenuVisible=1},renderMenu:function(){var f=this,e;e=f.settings.control_manager.createDropMenu(f.id+"_menu",{menu_line:1,"class":this.classPrefix+"Menu",icons:f.settings.icons});e.onHideMenu.add(function(){f.hideMenu();f.focus()});f.onRenderMenu.dispatch(f,e);f.menu=e},hideMenu:function(g){var f=this;if(g&&g.type=="mousedown"&&b.getParent(g.target,function(h){return h.id===f.id||h.id===f.id+"_open"})){return}if(!g||!b.getParent(g.target,".mceMenu")){f.setState("Selected",0);a.remove(b.doc,"mousedown",f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}f.isMenuVisible=0},postRender:function(){var e=this,f=e.settings;a.add(e.id,"click",function(){if(!e.isDisabled()){if(f.onclick){f.onclick(e.value)}e.showMenu()}})}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton",{SplitButton:function(g,f,e){this.parent(g,f,e);this.classPrefix="mceSplitButton"},renderHTML:function(){var i,f=this,g=f.settings,e;i="";if(g.image){e=b.createHTML("img ",{src:g.image,role:"presentation","class":"mceAction "+g["class"]})}else{e=b.createHTML("span",{"class":"mceAction "+g["class"]},"")}e+=b.createHTML("span",{"class":"mceVoiceLabel mceIconOnly",id:f.id+"_voice",style:"display:none;"},g.title);i+=""+b.createHTML("a",{role:"button",id:f.id+"_action",tabindex:"-1",href:"javascript:;","class":"mceAction "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"";e=b.createHTML("span",{"class":"mceOpen "+g["class"]},'');i+=""+b.createHTML("a",{role:"button",id:f.id+"_open",tabindex:"-1",href:"javascript:;","class":"mceOpen "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"";i+="";i=b.createHTML("table",{id:f.id,role:"presentation",tabindex:"0","class":"mceSplitButton mceSplitButtonEnabled "+g["class"],cellpadding:"0",cellspacing:"0",title:g.title},i);return b.createHTML("span",{role:"button","aria-labelledby":f.id+"_voice","aria-haspopup":"true"},i)},postRender:function(){var e=this,g=e.settings,f;if(g.onclick){f=function(h){if(!e.isDisabled()){g.onclick(e.value);a.cancel(h)}};a.add(e.id+"_action","click",f);a.add(e.id,["click","keydown"],function(h){var k=32,m=14,i=13,j=38,l=40;if((h.keyCode===32||h.keyCode===13||h.keyCode===14)&&!h.altKey&&!h.ctrlKey&&!h.metaKey){f();a.cancel(h)}else{if(h.type==="click"||h.keyCode===l){e.showMenu();a.cancel(h)}}})}a.add(e.id+"_open","click",function(h){e.showMenu();a.cancel(h)});a.add([e.id,e.id+"_open"],"focus",function(){e._focused=1});a.add([e.id,e.id+"_open"],"blur",function(){e._focused=0});if(c.isIE6||!b.boxModel){a.add(e.id,"mouseover",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.addClass(e.id,"mceSplitButtonHover")}});a.add(e.id,"mouseout",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.removeClass(e.id,"mceSplitButtonHover")}})}},destroy:function(){this.parent();a.clear(this.id+"_action");a.clear(this.id+"_open");a.clear(this.id)}})})(tinymce);(function(d){var c=d.DOM,a=d.dom.Event,b=d.is,e=d.each;d.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton",{ColorSplitButton:function(i,h,f){var g=this;g.parent(i,h,f);g.settings=h=d.extend({colors:"000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",grid_width:8,default_color:"#888888"},g.settings);g.onShowMenu=new d.util.Dispatcher(g);g.onHideMenu=new d.util.Dispatcher(g);g.value=h.default_color},showMenu:function(){var f=this,g,j,i,h;if(f.isDisabled()){return}if(!f.isMenuRendered){f.renderMenu();f.isMenuRendered=true}if(f.isMenuVisible){return f.hideMenu()}i=c.get(f.id);c.show(f.id+"_menu");c.addClass(i,"mceSplitButtonSelected");h=c.getPos(i);c.setStyles(f.id+"_menu",{left:h.x,top:h.y+i.clientHeight,zIndex:200000});i=0;a.add(c.doc,"mousedown",f.hideMenu,f);f.onShowMenu.dispatch(f);if(f._focused){f._keyHandler=a.add(f.id+"_menu","keydown",function(k){if(k.keyCode==27){f.hideMenu()}});c.select("a",f.id+"_menu")[0].focus()}f.isMenuVisible=1},hideMenu:function(g){var f=this;if(f.isMenuVisible){if(g&&g.type=="mousedown"&&c.getParent(g.target,function(h){return h.id===f.id+"_open"})){return}if(!g||!c.getParent(g.target,".mceSplitButtonMenu")){c.removeClass(f.id,"mceSplitButtonSelected");a.remove(c.doc,"mousedown",f.hideMenu,f);a.remove(f.id+"_menu","keydown",f._keyHandler);c.hide(f.id+"_menu")}f.isMenuVisible=0}},renderMenu:function(){var p=this,h,k=0,q=p.settings,g,j,l,o,f;o=c.add(q.menu_container,"div",{role:"listbox",id:p.id+"_menu","class":q.menu_class+" "+q["class"],style:"position:absolute;left:0;top:-1000px;"});h=c.add(o,"div",{"class":q["class"]+" mceSplitButtonMenu"});c.add(h,"span",{"class":"mceMenuLine"});g=c.add(h,"table",{role:"presentation","class":"mceColorSplitMenu"});j=c.add(g,"tbody");k=0;e(b(q.colors,"array")?q.colors:q.colors.split(","),function(i){i=i.replace(/^#/,"");if(!k--){l=c.add(j,"tr");k=q.grid_width-1}g=c.add(l,"td");g=c.add(g,"a",{role:"option",href:"javascript:;",style:{backgroundColor:"#"+i},title:p.editor.getLang("colors."+i,i),"data-mce-color":"#"+i});if(p.editor.forcedHighContrastMode){g=c.add(g,"canvas",{width:16,height:16,"aria-hidden":"true"});if(g.getContext&&(f=g.getContext("2d"))){f.fillStyle="#"+i;f.fillRect(0,0,16,16)}else{c.remove(g)}}});if(q.more_colors_func){g=c.add(j,"tr");g=c.add(g,"td",{colspan:q.grid_width,"class":"mceMoreColors"});g=c.add(g,"a",{role:"option",id:p.id+"_more",href:"javascript:;",onclick:"return false;","class":"mceMoreColors"},q.more_colors_title);a.add(g,"click",function(i){q.more_colors_func.call(q.more_colors_scope||this);return a.cancel(i)})}c.addClass(h,"mceColorSplitMenu");new d.ui.KeyboardNavigation({root:p.id+"_menu",items:c.select("a",p.id+"_menu"),onCancel:function(){p.hideMenu();p.focus()}});a.add(p.id+"_menu","mousedown",function(i){return a.cancel(i)});a.add(p.id+"_menu","click",function(i){var m;i=c.getParent(i.target,"a",j);if(i&&i.nodeName.toLowerCase()=="a"&&(m=i.getAttribute("data-mce-color"))){p.setColor(m)}return a.cancel(i)});return o},setColor:function(f){this.displayColor(f);this.hideMenu();this.settings.onselect(f)},displayColor:function(g){var f=this;c.setStyle(f.id+"_preview","backgroundColor",g);f.value=g},postRender:function(){var f=this,g=f.id;f.parent();c.add(g+"_action","div",{id:g+"_preview","class":"mceColorPreview"});c.setStyle(f.id+"_preview","backgroundColor",f.value)},destroy:function(){this.parent();a.clear(this.id+"_menu");a.clear(this.id+"_more");c.remove(this.id+"_menu")}})})(tinymce);(function(b){var d=b.DOM,c=b.each,a=b.dom.Event;b.create("tinymce.ui.ToolbarGroup:tinymce.ui.Container",{renderHTML:function(){var f=this,i=[],e=f.controls,j=b.each,g=f.settings;i.push('
                    ');i.push("");i.push('");j(e,function(h){i.push(h.renderHTML())});i.push("");i.push("
                    ");return i.join("")},focus:function(){this.keyNav.focus()},postRender:function(){var f=this,e=[];c(f.controls,function(g){c(g.controls,function(h){if(h.id){e.push(h)}})});f.keyNav=new b.ui.KeyboardNavigation({root:f.id,items:e,onCancel:function(){f.editor.focus()},excludeFromTabOrder:!f.settings.tab_focus_toolbar})},destroy:function(){var e=this;e.parent();e.keyNav.destroy();a.clear(e.id)}})})(tinymce);(function(a){var c=a.DOM,b=a.each;a.create("tinymce.ui.Toolbar:tinymce.ui.Container",{renderHTML:function(){var m=this,f="",j,k,n=m.settings,e,d,g,l;l=m.controls;for(e=0;e"))}if(d&&k.ListBox){if(d.Button||d.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarEnd"},c.createHTML("span",null,""))}}if(c.stdMode){f+=''+k.renderHTML()+""}else{f+=""+k.renderHTML()+""}if(g&&k.ListBox){if(g.Button||g.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarStart"},c.createHTML("span",null,""))}}}j="mceToolbarEnd";if(k.Button){j+=" mceToolbarEndButton"}else{if(k.SplitButton){j+=" mceToolbarEndSplitButton"}else{if(k.ListBox){j+=" mceToolbarEndListBox"}}}f+=c.createHTML("td",{"class":j},c.createHTML("span",null,""));return c.createHTML("table",{id:m.id,"class":"mceToolbar"+(n["class"]?" "+n["class"]:""),cellpadding:"0",cellspacing:"0",align:m.settings.align||"",role:"presentation",tabindex:"-1"},""+f+"")}})})(tinymce);(function(b){var a=b.util.Dispatcher,c=b.each;b.create("tinymce.AddOnManager",{AddOnManager:function(){var d=this;d.items=[];d.urls={};d.lookup={};d.onAdd=new a(d)},get:function(d){return this.lookup[d]},requireLangPack:function(e){var d=b.settings;if(d&&d.language&&d.language_load!==false){b.ScriptLoader.add(this.urls[e]+"/langs/"+d.language+".js")}},add:function(e,d){this.items.push(d);this.lookup[e]=d;this.onAdd.dispatch(this,e,d);return d},load:function(h,e,d,g){var f=this;if(f.urls[h]){return}if(e.indexOf("/")!=0&&e.indexOf("://")==-1){e=b.baseURL+"/"+e}f.urls[h]=e.substring(0,e.lastIndexOf("/"));if(!f.lookup[h]){b.ScriptLoader.add(e,d,g)}}});b.PluginManager=new b.AddOnManager();b.ThemeManager=new b.AddOnManager()}(tinymce));(function(j){var g=j.each,d=j.extend,k=j.DOM,i=j.dom.Event,f=j.ThemeManager,b=j.PluginManager,e=j.explode,h=j.util.Dispatcher,a,c=0;j.documentBaseURL=window.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,"");if(!/[\/\\]$/.test(j.documentBaseURL)){j.documentBaseURL+="/"}j.baseURL=new j.util.URI(j.documentBaseURL).toAbsolute(j.baseURL);j.baseURI=new j.util.URI(j.baseURL);j.onBeforeUnload=new h(j);i.add(window,"beforeunload",function(l){j.onBeforeUnload.dispatch(j,l)});j.onAddEditor=new h(j);j.onRemoveEditor=new h(j);j.EditorManager=d(j,{editors:[],i18n:{},activeEditor:null,init:function(q){var n=this,p,l=j.ScriptLoader,u,o=[],m;function r(x,y,t){var v=x[y];if(!v){return}if(j.is(v,"string")){t=v.replace(/\.\w+$/,"");t=t?j.resolve(t):0;v=j.resolve(v)}return v.apply(t||this,Array.prototype.slice.call(arguments,2))}q=d({theme:"simple",language:"en"},q);n.settings=q;i.add(document,"init",function(){var s,v;r(q,"onpageload");switch(q.mode){case"exact":s=q.elements||"";if(s.length>0){g(e(s),function(x){if(k.get(x)){m=new j.Editor(x,q);o.push(m);m.render(1)}else{g(document.forms,function(y){g(y.elements,function(z){if(z.name===x){x="mce_editor_"+c++;k.setAttrib(z,"id",x);m=new j.Editor(x,q);o.push(m);m.render(1)}})})}})}break;case"textareas":case"specific_textareas":function t(y,x){return x.constructor===RegExp?x.test(y.className):k.hasClass(y,x)}g(k.select("textarea"),function(x){if(q.editor_deselector&&t(x,q.editor_deselector)){return}if(!q.editor_selector||t(x,q.editor_selector)){u=k.get(x.name);if(!x.id&&!u){x.id=x.name}if(!x.id||n.get(x.id)){x.id=k.uniqueId()}m=new j.Editor(x.id,q);o.push(m);m.render(1)}});break}if(q.oninit){s=v=0;g(o,function(x){v++;if(!x.initialized){x.onInit.add(function(){s++;if(s==v){r(q,"oninit")}})}else{s++}if(s==v){r(q,"oninit")}})}})},get:function(l){if(l===a){return this.editors}return this.editors[l]},getInstanceById:function(l){return this.get(l)},add:function(m){var l=this,n=l.editors;n[m.id]=m;n.push(m);l._setActive(m);l.onAddEditor.dispatch(l,m);return m},remove:function(n){var m=this,l,o=m.editors;if(!o[n.id]){return null}delete o[n.id];for(l=0;l':"",visual_table_class:"mceItemTable",visual:1,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",apply_source_formatting:1,directionality:"ltr",forced_root_block:"p",hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:"30px",keep_styles:1,fix_table_elements:1,inline_styles:1,convert_fonts_to_spans:true,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr",validate:true,entity_encoding:"named",url_converter:p.convertURL,url_converter_scope:p,ie7_compat:true},q);p.documentBaseURI=new m.util.URI(q.document_base_url||m.documentBaseURL,{base_uri:tinyMCE.baseURI});p.baseURI=m.baseURI;p.contentCSS=[];p.execCallback("setup",p)},render:function(r){var u=this,v=u.settings,x=u.id,p=m.ScriptLoader;if(!j.domLoaded){j.add(document,"init",function(){u.render()});return}tinyMCE.settings=v;if(!u.getElement()){return}if(m.isIDevice){return}if(!/TEXTAREA|INPUT/i.test(u.getElement().nodeName)&&v.hidden_input&&n.getParent(x,"form")){n.insertAfter(n.create("input",{type:"hidden",name:x}),x)}if(m.WindowManager){u.windowManager=new m.WindowManager(u)}if(v.encoding=="xml"){u.onGetContent.add(function(s,t){if(t.save){t.content=n.encode(t.content)}})}if(v.add_form_submit_trigger){u.onSubmit.addToTop(function(){if(u.initialized){u.save();u.isNotDirty=1}})}if(v.add_unload_trigger){u._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(u.initialized&&!u.destroyed&&!u.isHidden()){u.save({format:"raw",no_events:true})}})}m.addUnload(u.destroy,u);if(v.submit_patch){u.onBeforeRenderUI.add(function(){var s=u.getElement().form;if(!s){return}if(s._mceOldSubmit){return}if(!s.submit.nodeType&&!s.submit.length){u.formElement=s;s._mceOldSubmit=s.submit;s.submit=function(){m.triggerSave();u.isNotDirty=1;return u.formElement._mceOldSubmit(u.formElement)}}s=null})}function q(){if(v.language&&v.language_load!==false){p.add(m.baseURL+"/langs/"+v.language+".js")}if(v.theme&&v.theme.charAt(0)!="-"&&!h.urls[v.theme]){h.load(v.theme,"themes/"+v.theme+"/editor_template"+m.suffix+".js")}i(g(v.plugins),function(s){if(s&&s.charAt(0)!="-"&&!c.urls[s]){if(s=="safari"){return}c.load(s,"plugins/"+s+"/editor_plugin"+m.suffix+".js")}});p.loadQueue(function(){if(!u.removed){u.init()}})}q()},init:function(){var r,F=this,G=F.settings,C,z,B=F.getElement(),q,p,D,x,A,E,y;m.add(F);G.aria_label=G.aria_label||n.getAttrib(B,"aria-label",F.getLang("aria.rich_text_area"));if(G.theme){G.theme=G.theme.replace(/-/,"");q=h.get(G.theme);F.theme=new q();if(F.theme.init&&G.init_theme){F.theme.init(F,h.urls[G.theme]||m.documentBaseURL.replace(/\/$/,""))}}i(g(G.plugins.replace(/\-/g,"")),function(H){var I=c.get(H),t=c.urls[H]||m.documentBaseURL.replace(/\/$/,""),s;if(I){s=new I(F,t);F.plugins[H]=s;if(s.init){s.init(F,t)}}});if(G.popup_css!==false){if(G.popup_css){G.popup_css=F.documentBaseURI.toAbsolute(G.popup_css)}else{G.popup_css=F.baseURI.toAbsolute("themes/"+G.theme+"/skins/"+G.skin+"/dialog.css")}}if(G.popup_css_add){G.popup_css+=","+F.documentBaseURI.toAbsolute(G.popup_css_add)}F.controlManager=new m.ControlManager(F);if(G.custom_undo_redo){F.onBeforeExecCommand.add(function(t,H,u,I,s){if(H!="Undo"&&H!="Redo"&&H!="mceRepaint"&&(!s||!s.skip_undo)){F.undoManager.beforeChange()}});F.onExecCommand.add(function(t,H,u,I,s){if(H!="Undo"&&H!="Redo"&&H!="mceRepaint"&&(!s||!s.skip_undo)){F.undoManager.add()}})}F.onExecCommand.add(function(s,t){if(!/^(FontName|FontSize)$/.test(t)){F.nodeChanged()}});if(a){function v(s,t){if(!t||!t.initial){F.execCommand("mceRepaint")}}F.onUndo.add(v);F.onRedo.add(v);F.onSetContent.add(v)}F.onBeforeRenderUI.dispatch(F,F.controlManager);if(G.render_ui){C=G.width||B.style.width||B.offsetWidth;z=G.height||B.style.height||B.offsetHeight;F.orgDisplay=B.style.display;E=/^[0-9\.]+(|px)$/i;if(E.test(""+C)){C=Math.max(parseInt(C)+(q.deltaWidth||0),100)}if(E.test(""+z)){z=Math.max(parseInt(z)+(q.deltaHeight||0),100)}q=F.theme.renderUI({targetNode:B,width:C,height:z,deltaWidth:G.delta_width,deltaHeight:G.delta_height});F.editorContainer=q.editorContainer}if(document.domain&&location.hostname!=document.domain){m.relaxedDomain=document.domain}n.setStyles(q.sizeContainer||q.editorContainer,{width:C,height:z});if(G.content_css){m.each(g(G.content_css),function(s){F.contentCSS.push(F.documentBaseURI.toAbsolute(s))})}z=(q.iframeHeight||z)+(typeof(z)=="number"?(q.deltaHeight||0):"");if(z<100){z=100}F.iframeHTML=G.doctype+'';if(G.document_base_url!=m.documentBaseURL){F.iframeHTML+=''}if(G.ie7_compat){F.iframeHTML+=''}else{F.iframeHTML+=''}F.iframeHTML+='';if(!a||!/Firefox\/2/.test(navigator.userAgent)){for(y=0;y'}F.contentCSS=[]}x=G.body_id||"tinymce";if(x.indexOf("=")!=-1){x=F.getParam("body_id","","hash");x=x[F.id]||x}A=G.body_class||"";if(A.indexOf("=")!=-1){A=F.getParam("body_class","","hash");A=A[F.id]||""}F.iframeHTML+='';if(m.relaxedDomain&&(b||(m.isOpera&&parseFloat(opera.version())<11))){D='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+F.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()'}r=n.add(q.iframeContainer,"iframe",{id:F.id+"_ifr",src:D||'javascript:""',frameBorder:"0",title:G.aria_label,style:{width:"100%",height:z}});F.contentAreaContainer=q.iframeContainer;n.get(q.editorContainer).style.display=F.orgDisplay;n.get(F.id).style.display="none";n.setAttrib(F.id,"aria-hidden",true);if(!m.relaxedDomain||!D){F.setupIframe()}B=r=q=null},setupIframe:function(){var r=this,x=r.settings,y=n.get(r.id),z=r.getDoc(),v,p;if(!b||!m.relaxedDomain){z.open();z.write(r.iframeHTML);z.close();if(m.relaxedDomain){z.domain=m.relaxedDomain}}if(!b){try{if(!x.readonly){z.designMode="On"}}catch(q){}}if(b){p=r.getBody();n.hide(p);if(!x.readonly){p.contentEditable=true}n.show(p)}r.schema=new m.html.Schema(x);r.dom=new m.dom.DOMUtils(r.getDoc(),{keep_values:true,url_converter:r.convertURL,url_converter_scope:r,hex_colors:x.force_hex_style_colors,class_filter:x.class_filter,update_styles:1,fix_ie_paragraphs:1,schema:r.schema});r.parser=new m.html.DomParser(x,r.schema);r.parser.addAttributeFilter("name",function(s,t){var B=s.length,D,A,C,E;while(B--){E=s[B];if(E.name==="a"&&E.firstChild){C=E.parent;D=E.lastChild;do{A=D.prev;C.insert(D,E);D=A}while(D)}}});r.parser.addAttributeFilter("src,href,style",function(s,t){var A=s.length,B,D=r.dom,C;while(A--){B=s[A];C=B.attr(t);if(t==="style"){B.attr("data-mce-style",D.serializeStyle(D.parseStyle(C),B.name))}else{B.attr("data-mce-"+t,r.convertURL(C,t,B.name))}}});r.parser.addNodeFilter("script",function(s,t){var A=s.length;while(A--){s[A].attr("type","mce-text/javascript")}});r.parser.addNodeFilter("#cdata",function(s,t){var A=s.length,B;while(A--){B=s[A];B.type=8;B.name="#comment";B.value="[CDATA["+B.value+"]]"}});r.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(t,A){var B=t.length,C,s=r.schema.getNonEmptyElements();while(B--){C=t[B];if(C.isEmpty(s)){C.empty().append(new m.html.Node("br",1)).shortEnded=true}}});r.serializer=new m.dom.Serializer(x,r.dom,r.schema);r.selection=new m.dom.Selection(r.dom,r.getWin(),r.serializer);r.formatter=new m.Formatter(this);r.formatter.register({alignleft:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"left"}},{selector:"img,table",collapsed:false,styles:{"float":"left"}}],aligncenter:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"center"}},{selector:"img",collapsed:false,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:false,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"right"}},{selector:"img,table",collapsed:false,styles:{"float":"right"}}],alignfull:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"justify"}}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:true},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:true},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:false},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:false},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},removeformat:[{selector:"b,strong,em,i,font,u,strike",remove:"all",split:true,expand:false,block_expand:true,deep:true},{selector:"span",attributes:["style","class"],remove:"empty",split:true,expand:false,deep:true},{selector:"*",attributes:["style","class"],split:false,expand:false,deep:true}]});i("p h1 h2 h3 h4 h5 h6 div address pre div code dt dd samp".split(/\s/),function(s){r.formatter.register(s,{block:s,remove:"all"})});r.formatter.register(r.settings.formats);r.undoManager=new m.UndoManager(r);r.undoManager.onAdd.add(function(t,s){if(t.hasUndo()){return r.onChange.dispatch(r,s,t)}});r.undoManager.onUndo.add(function(t,s){return r.onUndo.dispatch(r,s,t)});r.undoManager.onRedo.add(function(t,s){return r.onRedo.dispatch(r,s,t)});r.forceBlocks=new m.ForceBlocks(r,{forced_root_block:x.forced_root_block});r.editorCommands=new m.EditorCommands(r);r.serializer.onPreProcess.add(function(s,t){return r.onPreProcess.dispatch(r,t,s)});r.serializer.onPostProcess.add(function(s,t){return r.onPostProcess.dispatch(r,t,s)});r.onPreInit.dispatch(r);if(!x.gecko_spellcheck){r.getBody().spellcheck=0}if(!x.readonly){r._addEvents()}r.controlManager.onPostRender.dispatch(r,r.controlManager);r.onPostRender.dispatch(r);if(x.directionality){r.getBody().dir=x.directionality}if(x.nowrap){r.getBody().style.whiteSpace="nowrap"}if(x.handle_node_change_callback){r.onNodeChange.add(function(t,s,A){r.execCallback("handle_node_change_callback",r.id,A,-1,-1,true,r.selection.isCollapsed())})}if(x.save_callback){r.onSaveContent.add(function(s,A){var t=r.execCallback("save_callback",r.id,A.content,r.getBody());if(t){A.content=t}})}if(x.onchange_callback){r.onChange.add(function(t,s){r.execCallback("onchange_callback",r,s)})}if(x.protect){r.onBeforeSetContent.add(function(s,t){if(x.protect){i(x.protect,function(A){t.content=t.content.replace(A,function(B){return""})})}})}if(x.convert_newlines_to_brs){r.onBeforeSetContent.add(function(s,t){if(t.initial){t.content=t.content.replace(/\r?\n/g,"
                    ")}})}if(x.preformatted){r.onPostProcess.add(function(s,t){t.content=t.content.replace(/^\s*/,"");t.content=t.content.replace(/<\/pre>\s*$/,"");if(t.set){t.content='
                    '+t.content+"
                    "}})}if(x.verify_css_classes){r.serializer.attribValueFilter=function(C,A){var B,t;if(C=="class"){if(!r.classesRE){t=r.dom.getClasses();if(t.length>0){B="";i(t,function(s){B+=(B?"|":"")+s["class"]});r.classesRE=new RegExp("("+B+")","gi")}}return !r.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(A)||r.classesRE.test(A)?A:""}return A}}if(x.cleanup_callback){r.onBeforeSetContent.add(function(s,t){t.content=r.execCallback("cleanup_callback","insert_to_editor",t.content,t)});r.onPreProcess.add(function(s,t){if(t.set){r.execCallback("cleanup_callback","insert_to_editor_dom",t.node,t)}if(t.get){r.execCallback("cleanup_callback","get_from_editor_dom",t.node,t)}});r.onPostProcess.add(function(s,t){if(t.set){t.content=r.execCallback("cleanup_callback","insert_to_editor",t.content,t)}if(t.get){t.content=r.execCallback("cleanup_callback","get_from_editor",t.content,t)}})}if(x.save_callback){r.onGetContent.add(function(s,t){if(t.save){t.content=r.execCallback("save_callback",r.id,t.content,r.getBody())}})}if(x.handle_event_callback){r.onEvent.add(function(s,t,A){if(r.execCallback("handle_event_callback",t,s,A)===false){j.cancel(t)}})}r.onSetContent.add(function(){r.addVisual(r.getBody())});if(x.padd_empty_editor){r.onPostProcess.add(function(s,t){t.content=t.content.replace(/^(]*>( | |\s|\u00a0|)<\/p>[\r\n]*|
                    [\r\n]*)$/,"")})}if(a){function u(s,t){i(s.dom.select("a"),function(B){var A=B.parentNode;if(s.dom.isBlock(A)&&A.lastChild===B){s.dom.add(A,"br",{"data-mce-bogus":1})}})}r.onExecCommand.add(function(s,t){if(t==="CreateLink"){u(s)}});r.onSetContent.add(r.selection.onSetContent.add(u));if(!x.readonly){try{z.designMode="Off";z.designMode="On"}catch(q){}}}setTimeout(function(){if(r.removed){return}r.load({initial:true,format:"html"});r.startContent=r.getContent({format:"raw"});r.undoManager.add();r.initialized=true;r.onInit.dispatch(r);r.execCallback("setupcontent_callback",r.id,r.getBody(),r.getDoc());r.execCallback("init_instance_callback",r);r.focus(true);r.nodeChanged({initial:1});i(r.contentCSS,function(s){r.dom.loadCSS(s)});if(x.auto_focus){setTimeout(function(){var s=m.get(x.auto_focus);s.selection.select(s.getBody(),1);s.selection.collapse(1);s.getWin().focus()},100)}},1);y=null},focus:function(s){var x,q=this,v=q.settings.content_editable,r,p,u=q.getDoc();if(!s){r=q.selection.getRng();if(r.item){p=r.item(0)}if(!v){q.getWin().focus()}if(p&&p.ownerDocument==u){r=u.body.createControlRange();r.addElement(p);r.select()}}if(m.activeEditor!=q){if((x=m.activeEditor)!=null){x.onDeactivate.dispatch(x,q)}q.onActivate.dispatch(q,x)}m._setActive(q)},execCallback:function(u){var p=this,r=p.settings[u],q;if(!r){return}if(p.callbackLookup&&(q=p.callbackLookup[u])){r=q.func;q=q.scope}if(d(r,"string")){q=r.replace(/\.\w+$/,"");q=q?m.resolve(q):0;r=m.resolve(r);p.callbackLookup=p.callbackLookup||{};p.callbackLookup[u]={func:r,scope:q}}return r.apply(q||p,Array.prototype.slice.call(arguments,1))},translate:function(p){var r=this.settings.language||"en",q=m.i18n;if(!p){return""}return q[r+"."+p]||p.replace(/{\#([^}]+)\}/g,function(t,s){return q[r+"."+s]||"{#"+s+"}"})},getLang:function(q,p){return m.i18n[(this.settings.language||"en")+"."+q]||(d(p)?p:"{#"+q+"}")},getParam:function(u,r,p){var s=m.trim,q=d(this.settings[u])?this.settings[u]:r,t;if(p==="hash"){t={};if(d(q,"string")){i(q.indexOf("=")>0?q.split(/[;,](?![^=;,]*(?:[;,]|$))/):q.split(","),function(x){x=x.split("=");if(x.length>1){t[s(x[0])]=s(x[1])}else{t[s(x[0])]=s(x)}})}else{t=q}return t}return q},nodeChanged:function(r){var p=this,q=p.selection,u=q.getStart()||p.getBody();if(p.initialized){r=r||{};u=b&&u.ownerDocument!=p.getDoc()?p.getBody():u;r.parents=[];p.dom.getParent(u,function(s){if(s.nodeName=="BODY"){return true}r.parents.push(s)});p.onNodeChange.dispatch(p,r?r.controlManager||p.controlManager:p.controlManager,u,q.isCollapsed(),r)}},addButton:function(r,q){var p=this;p.buttons=p.buttons||{};p.buttons[r]=q},addCommand:function(p,r,q){this.execCommands[p]={func:r,scope:q||this}},addQueryStateHandler:function(p,r,q){this.queryStateCommands[p]={func:r,scope:q||this}},addQueryValueHandler:function(p,r,q){this.queryValueCommands[p]={func:r,scope:q||this}},addShortcut:function(r,u,p,s){var q=this,v;if(!q.settings.custom_shortcuts){return false}q.shortcuts=q.shortcuts||{};if(d(p,"string")){v=p;p=function(){q.execCommand(v,false,null)}}if(d(p,"object")){v=p;p=function(){q.execCommand(v[0],v[1],v[2])}}i(g(r),function(t){var x={func:p,scope:s||this,desc:u,alt:false,ctrl:false,shift:false};i(g(t,"+"),function(y){switch(y){case"alt":case"ctrl":case"shift":x[y]=true;break;default:x.charCode=y.charCodeAt(0);x.keyCode=y.toUpperCase().charCodeAt(0)}});q.shortcuts[(x.ctrl?"ctrl":"")+","+(x.alt?"alt":"")+","+(x.shift?"shift":"")+","+x.keyCode]=x});return true},execCommand:function(x,v,z,p){var r=this,u=0,y,q;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(x)&&(!p||!p.skip_focus)){r.focus()}y={};r.onBeforeExecCommand.dispatch(r,x,v,z,y);if(y.terminate){return false}if(r.execCallback("execcommand_callback",r.id,r.selection.getNode(),x,v,z)){r.onExecCommand.dispatch(r,x,v,z,p);return true}if(y=r.execCommands[x]){q=y.func.call(y.scope,v,z);if(q!==true){r.onExecCommand.dispatch(r,x,v,z,p);return q}}i(r.plugins,function(s){if(s.execCommand&&s.execCommand(x,v,z)){r.onExecCommand.dispatch(r,x,v,z,p);u=1;return false}});if(u){return true}if(r.theme&&r.theme.execCommand&&r.theme.execCommand(x,v,z)){r.onExecCommand.dispatch(r,x,v,z,p);return true}if(r.editorCommands.execCommand(x,v,z)){r.onExecCommand.dispatch(r,x,v,z,p);return true}r.getDoc().execCommand(x,v,z);r.onExecCommand.dispatch(r,x,v,z,p)},queryCommandState:function(u){var q=this,v,r;if(q._isHidden()){return}if(v=q.queryStateCommands[u]){r=v.func.call(v.scope);if(r!==true){return r}}v=q.editorCommands.queryCommandState(u);if(v!==-1){return v}try{return this.getDoc().queryCommandState(u)}catch(p){}},queryCommandValue:function(v){var q=this,u,r;if(q._isHidden()){return}if(u=q.queryValueCommands[v]){r=u.func.call(u.scope);if(r!==true){return r}}u=q.editorCommands.queryCommandValue(v);if(d(u)){return u}try{return this.getDoc().queryCommandValue(v)}catch(p){}},show:function(){var p=this;n.show(p.getContainer());n.hide(p.id);p.load()},hide:function(){var p=this,q=p.getDoc();if(b&&q){q.execCommand("SelectAll")}p.save();n.hide(p.getContainer());n.setStyle(p.id,"display",p.orgDisplay)},isHidden:function(){return !n.isHidden(this.id)},setProgressState:function(p,q,r){this.onSetProgressState.dispatch(this,p,q,r);return p},load:function(s){var p=this,r=p.getElement(),q;if(r){s=s||{};s.load=true;q=p.setContent(d(r.value)?r.value:r.innerHTML,s);s.element=r;if(!s.no_events){p.onLoadContent.dispatch(p,s)}s.element=r=null;return q}},save:function(u){var p=this,s=p.getElement(),q,r;if(!s||!p.initialized){return}u=u||{};u.save=true;if(!u.no_events){p.undoManager.typing=false;p.undoManager.add()}u.element=s;q=u.content=p.getContent(u);if(!u.no_events){p.onSaveContent.dispatch(p,u)}q=u.content;if(!/TEXTAREA|INPUT/i.test(s.nodeName)){s.innerHTML=q;if(r=n.getParent(p.id,"form")){i(r.elements,function(t){if(t.name==p.id){t.value=q;return false}})}}else{s.value=q}u.element=s=null;return q},setContent:function(t,s){var r=this,q,p=r.getBody();s=s||{};s.format=s.format||"html";s.set=true;s.content=t;if(!s.no_events){r.onBeforeSetContent.dispatch(r,s)}t=s.content;if(!m.isIE&&(t.length===0||/^\s+$/.test(t))){p.innerHTML='
                    ';return}if(s.format!=="raw"){t=new m.html.Serializer({},r.schema).serialize(r.parser.parse(t))}s.content=m.trim(t);r.dom.setHTML(p,s.content);if(!s.no_events){r.onSetContent.dispatch(r,s)}return s.content},getContent:function(q){var p=this,r;q=q||{};q.format=q.format||"html";q.get=true;if(!q.no_events){p.onBeforeGetContent.dispatch(p,q)}if(q.format=="raw"){r=p.getBody().innerHTML}else{r=p.serializer.serialize(p.getBody(),q)}q.content=m.trim(r);if(!q.no_events){p.onGetContent.dispatch(p,q)}return q.content},isDirty:function(){var p=this;return m.trim(p.startContent)!=m.trim(p.getContent({format:"raw",no_events:1}))&&!p.isNotDirty},getContainer:function(){var p=this;if(!p.container){p.container=n.get(p.editorContainer||p.id+"_parent")}return p.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return n.get(this.settings.content_element||this.id)},getWin:function(){var p=this,q;if(!p.contentWindow){q=n.get(p.id+"_ifr");if(q){p.contentWindow=q.contentWindow}}return p.contentWindow},getDoc:function(){var q=this,p;if(!q.contentDocument){p=q.getWin();if(p){q.contentDocument=p.document}}return q.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(p,x,v){var q=this,r=q.settings;if(r.urlconverter_callback){return q.execCallback("urlconverter_callback",p,v,true,x)}if(!r.convert_urls||(v&&v.nodeName=="LINK")||p.indexOf("file:")===0){return p}if(r.relative_urls){return q.documentBaseURI.toRelative(p)}p=q.documentBaseURI.toAbsolute(p,r.remove_script_host);return p},addVisual:function(r){var p=this,q=p.settings;r=r||p.getBody();if(!d(p.hasVisual)){p.hasVisual=q.visual}i(p.dom.select("table,a",r),function(t){var s;switch(t.nodeName){case"TABLE":s=p.dom.getAttrib(t,"border");if(!s||s=="0"){if(p.hasVisual){p.dom.addClass(t,q.visual_table_class)}else{p.dom.removeClass(t,q.visual_table_class)}}return;case"A":s=p.dom.getAttrib(t,"name");if(s){if(p.hasVisual){p.dom.addClass(t,"mceItemAnchor")}else{p.dom.removeClass(t,"mceItemAnchor")}}return}});p.onVisualAid.dispatch(p,r,p.hasVisual)},remove:function(){var p=this,q=p.getContainer();p.removed=1;p.hide();p.execCallback("remove_instance_callback",p);p.onRemove.dispatch(p);p.onExecCommand.listeners=[];m.remove(p);n.remove(q)},destroy:function(q){var p=this;if(p.destroyed){return}if(!q){m.removeUnload(p.destroy);tinyMCE.onBeforeUnload.remove(p._beforeUnload);if(p.theme&&p.theme.destroy){p.theme.destroy()}p.controlManager.destroy();p.selection.destroy();p.dom.destroy();if(!p.settings.content_editable){j.clear(p.getWin());j.clear(p.getDoc())}j.clear(p.getBody());j.clear(p.formElement)}if(p.formElement){p.formElement.submit=p.formElement._mceOldSubmit;p.formElement._mceOldSubmit=null}p.contentAreaContainer=p.formElement=p.container=p.settings.content_element=p.bodyElement=p.contentDocument=p.contentWindow=null;if(p.selection){p.selection=p.selection.win=p.selection.dom=p.selection.dom.doc=null}p.destroyed=1},_addEvents:function(){var B=this,r,C=B.settings,q=B.dom,x={mouseup:"onMouseUp",mousedown:"onMouseDown",click:"onClick",keyup:"onKeyUp",keydown:"onKeyDown",keypress:"onKeyPress",submit:"onSubmit",reset:"onReset",contextmenu:"onContextMenu",dblclick:"onDblClick",paste:"onPaste"};function p(t,D){var s=t.type;if(B.removed){return}if(B.onEvent.dispatch(B,t,D)!==false){B[x[t.fakeType||t.type]].dispatch(B,t,D)}}i(x,function(t,s){switch(s){case"contextmenu":q.bind(B.getDoc(),s,p);break;case"paste":q.bind(B.getBody(),s,function(D){p(D)});break;case"submit":case"reset":q.bind(B.getElement().form||n.getParent(B.id,"form"),s,p);break;default:q.bind(C.content_editable?B.getBody():B.getDoc(),s,p)}});q.bind(C.content_editable?B.getBody():(a?B.getDoc():B.getWin()),"focus",function(s){B.focus(true)});if(m.isGecko){q.bind(B.getDoc(),"DOMNodeInserted",function(t){var s;t=t.target;if(t.nodeType===1&&t.nodeName==="IMG"&&(s=t.getAttribute("data-mce-src"))){t.src=B.documentBaseURI.toAbsolute(s)}})}if(a){function u(){var E=this,G=E.getDoc(),F=E.settings;if(a&&!F.readonly){if(E._isHidden()){try{if(!F.content_editable){G.designMode="On"}}catch(D){}}try{G.execCommand("styleWithCSS",0,false)}catch(D){if(!E._isHidden()){try{G.execCommand("useCSS",0,true)}catch(D){}}}if(!F.table_inline_editing){try{G.execCommand("enableInlineTableEditing",false,false)}catch(D){}}if(!F.object_resizing){try{G.execCommand("enableObjectResizing",false,false)}catch(D){}}}}B.onBeforeExecCommand.add(u);B.onMouseDown.add(u)}if(m.isWebKit){B.onClick.add(function(s,t){t=t.target;if(t.nodeName=="IMG"||(t.nodeName=="A"&&q.hasClass(t,"mceItemAnchor"))){B.selection.getSel().setBaseAndExtent(t,0,t,1);B.nodeChanged()}})}B.onMouseUp.add(B.nodeChanged);B.onKeyUp.add(function(s,t){var D=t.keyCode;if((D>=33&&D<=36)||(D>=37&&D<=40)||D==13||D==45||D==46||D==8||(m.isMac&&(D==91||D==93))||t.ctrlKey){B.nodeChanged()}});B.onReset.add(function(){B.setContent(B.startContent,{format:"raw"})});if(C.custom_shortcuts){if(C.custom_undo_redo_keyboard_shortcuts){B.addShortcut("ctrl+z",B.getLang("undo_desc"),"Undo");B.addShortcut("ctrl+y",B.getLang("redo_desc"),"Redo")}B.addShortcut("ctrl+b",B.getLang("bold_desc"),"Bold");B.addShortcut("ctrl+i",B.getLang("italic_desc"),"Italic");B.addShortcut("ctrl+u",B.getLang("underline_desc"),"Underline");for(r=1;r<=6;r++){B.addShortcut("ctrl+"+r,"",["FormatBlock",false,"h"+r])}B.addShortcut("ctrl+7","",["FormatBlock",false,"

                    "]);B.addShortcut("ctrl+8","",["FormatBlock",false,"

                    "]);B.addShortcut("ctrl+9","",["FormatBlock",false,"
                    "]);function v(t){var s=null;if(!t.altKey&&!t.ctrlKey&&!t.metaKey){return s}i(B.shortcuts,function(D){if(m.isMac&&D.ctrl!=t.metaKey){return}else{if(!m.isMac&&D.ctrl!=t.ctrlKey){return}}if(D.alt!=t.altKey){return}if(D.shift!=t.shiftKey){return}if(t.keyCode==D.keyCode||(t.charCode&&t.charCode==D.charCode)){s=D;return false}});return s}B.onKeyUp.add(function(s,t){var D=v(t);if(D){return j.cancel(t)}});B.onKeyPress.add(function(s,t){var D=v(t);if(D){return j.cancel(t)}});B.onKeyDown.add(function(s,t){var D=v(t);if(D){D.func.call(D.scope);return j.cancel(t)}})}if(m.isIE){q.bind(B.getDoc(),"controlselect",function(D){var t=B.resizeInfo,s;D=D.target;if(D.nodeName!=="IMG"){return}if(t){q.unbind(t.node,t.ev,t.cb)}if(!q.hasClass(D,"mceItemNoResize")){ev="resizeend";s=q.bind(D,ev,function(F){var E;F=F.target;if(E=q.getStyle(F,"width")){q.setAttrib(F,"width",E.replace(/[^0-9%]+/g,""));q.setStyle(F,"width","")}if(E=q.getStyle(F,"height")){q.setAttrib(F,"height",E.replace(/[^0-9%]+/g,""));q.setStyle(F,"height","")}})}else{ev="resizestart";s=q.bind(D,"resizestart",j.cancel,j)}t=B.resizeInfo={node:D,ev:ev,cb:s}});B.onKeyDown.add(function(s,D){var t;switch(D.keyCode){case 8:t=B.getDoc().selection;if(t.createRange&&t.createRange().item){s.dom.remove(t.createRange().item(0));return j.cancel(D)}}})}if(m.isOpera){B.onClick.add(function(s,t){j.prevent(t)})}if(C.custom_undo_redo){function y(){B.undoManager.typing=false;B.undoManager.add()}q.bind(B.getDoc(),"focusout",function(s){if(!B.removed&&B.undoManager.typing){y()}});B.dom.bind(B.dom.getRoot(),"dragend",function(s){y()});B.onKeyUp.add(function(t,F){var s,E,D;if(b&&F.keyCode==8){s=B.selection.getRng();if(s.parentElement){E=s.parentElement();D=B.selection.getBookmark();E.innerHTML=E.innerHTML;B.selection.moveToBookmark(D)}}if((F.keyCode>=33&&F.keyCode<=36)||(F.keyCode>=37&&F.keyCode<=40)||F.keyCode==13||F.keyCode==45||F.ctrlKey){y()}});B.onKeyDown.add(function(t,H){var s,F,E,G=H.keyCode;if(b&&G==46){s=B.selection.getRng();if(s.parentElement){F=s.parentElement();if(!B.undoManager.typing){B.undoManager.beforeChange();B.undoManager.typing=true;B.undoManager.add()}if(H.ctrlKey){s.moveEnd("word",1);s.select()}B.selection.getSel().clear();if(s.parentElement()==F){E=B.selection.getBookmark();try{F.innerHTML=F.innerHTML}catch(D){}B.selection.moveToBookmark(E)}H.preventDefault();return}}if((G>=33&&G<=36)||(G>=37&&G<=40)||G==13||G==45){if(m.isIE&&G==13){B.undoManager.beforeChange()}if(B.undoManager.typing){y()}return}if((G<16||G>20)&&G!=224&&G!=91&&!B.undoManager.typing){B.undoManager.beforeChange();B.undoManager.add();B.undoManager.typing=true}});B.onMouseDown.add(function(){if(B.undoManager.typing){y()}})}if(m.isGecko){function A(){var s=B.dom.getAttribs(B.selection.getStart().cloneNode(false));return function(){var t=B.selection.getStart();B.dom.removeAllAttribs(t);i(s,function(D){t.setAttributeNode(D.cloneNode(true))})}}function z(){var t=B.selection;return !t.isCollapsed()&&t.getStart()!=t.getEnd()}B.onKeyPress.add(function(s,D){var t;if((D.keyCode==8||D.keyCode==46)&&z()){t=A();B.getDoc().execCommand("delete",false,null);t();return j.cancel(D)}});B.dom.bind(B.getDoc(),"cut",function(t){var s;if(z()){s=A();B.onKeyUp.addToTop(j.cancel,j);setTimeout(function(){s();B.onKeyUp.remove(j.cancel,j)},0)}})}},_isHidden:function(){var p;if(!a){return 0}p=this.selection.getSel();return(!p||!p.rangeCount||p.rangeCount==0)}})})(tinymce);(function(c){var d=c.each,e,a=true,b=false;c.EditorCommands=function(n){var l=n.dom,p=n.selection,j={state:{},exec:{},value:{}},k=n.settings,o;function q(y,x,v){var u;y=y.toLowerCase();if(u=j.exec[y]){u(y,x,v);return a}return b}function m(v){var u;v=v.toLowerCase();if(u=j.state[v]){return u(v)}return -1}function h(v){var u;v=v.toLowerCase();if(u=j.value[v]){return u(v)}return b}function t(u,v){v=v||"exec";d(u,function(y,x){d(x.toLowerCase().split(","),function(z){j[v][z]=y})})}c.extend(this,{execCommand:q,queryCommandState:m,queryCommandValue:h,addCommands:t});function f(x,v,u){if(v===e){v=b}if(u===e){u=null}return n.getDoc().execCommand(x,v,u)}function s(u){return n.formatter.match(u)}function r(u,v){n.formatter.toggle(u,v?{value:v}:e)}function i(u){o=p.getBookmark(u)}function g(){p.moveToBookmark(o)}t({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(y){var x=n.getDoc(),u;try{f(y)}catch(v){u=a}if(u||!x.queryCommandSupported(y)){if(c.isGecko){n.windowManager.confirm(n.getLang("clipboard_msg"),function(z){if(z){open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")}})}else{n.windowManager.alert(n.getLang("clipboard_no_support"))}}},unlink:function(u){if(p.isCollapsed()){p.select(p.getNode())}f(u);p.collapse(b)},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(u){var v=u.substring(7);d("left,center,right,full".split(","),function(x){if(v!=x){n.formatter.remove("align"+x)}});r("align"+v);q("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(x){var u,v;f(x);u=l.getParent(p.getNode(),"ol,ul");if(u){v=u.parentNode;if(/^(H[1-6]|P|ADDRESS|PRE)$/.test(v.nodeName)){i();l.split(v,u);g()}}},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(u){r(u)},"ForeColor,HiliteColor,FontName":function(x,v,u){r(x,u)},FontSize:function(y,x,v){var u,z;if(v>=1&&v<=7){z=c.explode(k.font_size_style_values);u=c.explode(k.font_size_classes);if(u){v=u[v-1]||v}else{v=z[v-1]||v}}r(y,v)},RemoveFormat:function(u){n.formatter.remove(u)},mceBlockQuote:function(u){r("blockquote")},FormatBlock:function(x,v,u){return r(u||"p")},mceCleanup:function(){var u=p.getBookmark();n.setContent(n.getContent({cleanup:a}),{cleanup:a});p.moveToBookmark(u)},mceRemoveNode:function(y,x,v){var u=v||p.getNode();if(u!=n.getBody()){i();n.dom.remove(u,a);g()}},mceSelectNodeDepth:function(y,x,v){var u=0;l.getParent(p.getNode(),function(z){if(z.nodeType==1&&u++==v){p.select(z);return b}},n.getBody())},mceSelectNode:function(x,v,u){p.select(u)},mceInsertContent:function(z,D,E){var C,u,x,F,y,u,A,G,B;function v(I,J,H){var K=new c.dom.TreeWalker(H?I.nextSibling:I.previousSibling,J);while((I=K.current())){if((I.nodeType==3&&c.trim(I.nodeValue).length)||I.nodeName=="BR"||I.nodeName=="IMG"){return I}if(H){K.next()}else{K.prev()}}}B={content:E,format:"html"};p.onBeforeSetContent.dispatch(p,B);E=B.content;if(E.indexOf("{$caret}")==-1){E+="{$caret}"}p.setContent('\uFEFF',{no_events:false});l.setOuterHTML("__mce",E.replace(/\{\$caret\}/,'\uFEFF'));C=l.select("#__mce")[0];x=l.getRoot();if(C.previousSibling&&l.isBlock(C.previousSibling)||C.parentNode==x){y=v(C,x);if(y){if(y.nodeName=="BR"){y.parentNode.insertBefore(C,y)}else{l.insertAfter(C,y)}}}while(C){if(C===x){l.setOuterHTML(F,new c.html.Serializer({},n.schema).serialize(n.parser.parse(l.getOuterHTML(F))));break}F=C;C=C.parentNode}C=l.select("#__mce")[0];if(C){y=v(C,x)||v(C,x,true);l.remove(C);if(y){u=l.createRng();if(y.nodeType==3){u.setStart(y,y.length);u.setEnd(y,y.length)}else{if(y.nodeName=="BR"){u.setStartBefore(y);u.setEndBefore(y)}else{u.setStartAfter(y);u.setEndAfter(y)}}p.setRng(u);if(!c.isIE){y=l.create("span",null,"\u00a0");u.insertNode(y);A=l.getRect(y);G=l.getViewPort(n.getWin());if((A.y>G.y+G.h||A.yG.x+G.w||A.x")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual;n.addVisual()},mceReplaceContent:function(x,v,u){n.execCommand("mceInsertContent",false,u.replace(/\{\$selection\}/g,p.getContent({format:"text"})))},mceInsertLink:function(A,z,y){var x=l.getParent(p.getNode(),"a"),v,u;if(c.is(y,"string")){y={href:y}}y.href=y.href.replace(" ","%20");if(!x){if(c.isWebKit){v=l.getParent(p.getNode(),"img");if(v){u=v.style.cssFloat;v.style.cssFloat=null}}f("CreateLink",b,"javascript:mctmp(0);");if(u){v.style.cssFloat=u}d(l.select("a[href='javascript:mctmp(0);']"),function(B){l.setAttribs(B,y)})}else{if(y.href){l.setAttribs(x,y)}else{n.dom.remove(x,a)}}},selectAll:function(){var v=l.getRoot(),u=l.createRng();u.setStart(v,0);u.setEnd(v,v.childNodes.length);n.selection.setRng(u)}});t({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(u){return s("align"+u.substring(7))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(u){return s(u)},mceBlockQuote:function(){return s("blockquote")},Outdent:function(){var u;if(k.inline_styles){if((u=l.getParent(p.getStart(),l.isBlock))&&parseInt(u.style.paddingLeft)>0){return a}if((u=l.getParent(p.getEnd(),l.isBlock))&&parseInt(u.style.paddingLeft)>0){return a}}return m("InsertUnorderedList")||m("InsertOrderedList")||(!k.inline_styles&&!!l.getParent(p.getNode(),"BLOCKQUOTE"))},"InsertUnorderedList,InsertOrderedList":function(u){return l.getParent(p.getNode(),u=="insertunorderedlist"?"UL":"OL")}},"state");t({"FontSize,FontName":function(x){var v=0,u;if(u=l.getParent(p.getNode(),"span")){if(x=="fontsize"){v=u.style.fontSize}else{v=u.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()}}return v}},"value");if(k.custom_undo_redo){t({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}}})(tinymce);(function(b){var a=b.util.Dispatcher;b.UndoManager=function(e){var c,d=0,g=[];function f(){return b.trim(e.getContent({format:"raw",no_events:1}))}return c={typing:false,onAdd:new a(c),onUndo:new a(c),onRedo:new a(c),beforeChange:function(){if(g[d]){g[d].beforeBookmark=e.selection.getBookmark(2,true)}},add:function(l){var h,j=e.settings,k;l=l||{};l.content=f();k=g[d];if(k&&k.content==l.content){return null}if(j.custom_undo_redo_levels){if(g.length>j.custom_undo_redo_levels){for(h=0;h0){j=g[--d];e.setContent(j.content,{format:"raw"});e.selection.moveToBookmark(j.beforeBookmark);c.onUndo.dispatch(c,j)}return j},redo:function(){var h;if(d0||this.typing},hasRedo:function(){return d');q.replace(p,m);o.select(p,1)}return g}return d}l.create("tinymce.ForceBlocks",{ForceBlocks:function(m){var n=this,o=m.settings,p;n.editor=m;n.dom=m.dom;p=(o.forced_root_block||"p").toLowerCase();o.element=p.toUpperCase();m.onPreInit.add(n.setup,n);if(o.forced_root_block){m.onInit.add(n.forceRoots,n);m.onSetContent.add(n.forceRoots,n);m.onBeforeGetContent.add(n.forceRoots,n);m.onExecCommand.add(function(q,r){if(r=="mceInsertContent"){n.forceRoots();q.nodeChanged()}})}},setup:function(){var n=this,m=n.editor,p=m.settings,r=m.dom,o=m.selection;if(p.forced_root_block){m.onBeforeExecCommand.add(n.forceRoots,n);m.onKeyUp.add(n.forceRoots,n);m.onPreProcess.add(n.forceRoots,n)}if(p.force_br_newlines){if(c){m.onKeyPress.add(function(s,t){var u;if(t.keyCode==13&&o.getNode().nodeName!="LI"){o.setContent('
                    ',{format:"raw"});u=r.get("__");u.removeAttribute("id");o.select(u);o.collapse();return j.cancel(t)}})}}if(p.force_p_newlines){if(!c){m.onKeyPress.add(function(s,t){if(t.keyCode==13&&!t.shiftKey&&!n.insertPara(t)){j.cancel(t)}})}else{l.addUnload(function(){n._previousFormats=0});m.onKeyPress.add(function(s,t){n._previousFormats=0;if(t.keyCode==13&&!t.shiftKey&&s.selection.isCollapsed()&&p.keep_styles){n._previousFormats=k(s.selection.getStart())}});m.onKeyUp.add(function(t,v){if(v.keyCode==13&&!v.shiftKey){var u=t.selection.getStart(),s=n._previousFormats;if(!u.hasChildNodes()&&s){u=r.getParent(u,r.isBlock);if(u&&u.nodeName!="LI"){u.innerHTML="";if(n._previousFormats){u.appendChild(s.wrapper);s.inner.innerHTML="\uFEFF"}else{u.innerHTML="\uFEFF"}o.select(u,1);o.collapse(true);t.getDoc().execCommand("Delete",false,null);n._previousFormats=0}}}})}if(a){m.onKeyDown.add(function(s,t){if((t.keyCode==8||t.keyCode==46)&&!t.shiftKey){n.backspaceDelete(t,t.keyCode==8)}})}}if(l.isWebKit){function q(t){var s=o.getRng(),u,y=r.create("div",null," "),x,v=r.getViewPort(t.getWin()).h;s.insertNode(u=r.create("br"));s.setStartAfter(u);s.setEndAfter(u);o.setRng(s);if(o.getSel().focusNode==u.previousSibling){o.select(r.insertAfter(r.doc.createTextNode("\u00a0"),u));o.collapse(d)}r.insertAfter(y,u);x=r.getPos(y).y;r.remove(y);if(x>v){t.getWin().scrollTo(0,x)}}m.onKeyPress.add(function(s,t){if(t.keyCode==13&&(t.shiftKey||(p.force_br_newlines&&!r.getParent(o.getNode(),"h1,h2,h3,h4,h5,h6,ol,ul")))){q(s);j.cancel(t)}})}if(c){if(p.element!="P"){m.onKeyPress.add(function(s,t){n.lastElm=o.getNode().nodeName});m.onKeyUp.add(function(t,u){var x,v=o.getNode(),s=t.getBody();if(s.childNodes.length===1&&v.nodeName=="P"){v=r.rename(v,p.element);o.select(v);o.collapse();t.nodeChanged()}else{if(u.keyCode==13&&!u.shiftKey&&n.lastElm!="P"){x=r.getParent(v,"p");if(x){r.rename(x,p.element);t.nodeChanged()}}}})}}},find:function(u,p,q){var o=this.editor,m=o.getDoc().createTreeWalker(u,4,null,g),r=-1;while(u=m.nextNode()){r++;if(p==0&&u==q){return r}if(p==1&&r==q){return u}}return -1},forceRoots:function(v,H){var y=this,v=y.editor,L=v.getBody(),I=v.getDoc(),O=v.selection,z=O.getSel(),A=O.getRng(),M=-2,u,F,m,o,J=-16777215;var K,p,N,E,B,q=L.childNodes,D,C,x;for(D=q.length-1;D>=0;D--){K=q[D];if(K.nodeType===1&&K.getAttribute("data-mce-type")){p=null;continue}if(K.nodeType===3||(!y.dom.isBlock(K)&&K.nodeType!==8&&!/^(script|mce:script|style|mce:style)$/i.test(K.nodeName))){if(!p){if(K.nodeType!=3||/[^\s]/g.test(K.nodeValue)){if(M==-2&&A){if(!c||A.setStart){if(A.startContainer.nodeType==1&&(C=A.startContainer.childNodes[A.startOffset])&&C.nodeType==1){x=C.getAttribute("id");C.setAttribute("id","__mce")}else{if(v.dom.getParent(A.startContainer,function(n){return n===L})){F=A.startOffset;m=A.endOffset;M=y.find(L,0,A.startContainer);u=y.find(L,0,A.endContainer)}}}else{if(A.item){o=I.body.createTextRange();o.moveToElementText(A.item(0));A=o}o=I.body.createTextRange();o.moveToElementText(L);o.collapse(1);N=o.move("character",J)*-1;o=A.duplicate();o.collapse(1);E=o.move("character",J)*-1;o=A.duplicate();o.collapse(0);B=(o.move("character",J)*-1)-E;M=E-N;u=B}}p=v.dom.create(v.settings.forced_root_block);K.parentNode.replaceChild(p,K);p.appendChild(K)}}else{if(p.hasChildNodes()){p.insertBefore(K,p.firstChild)}else{p.appendChild(K)}}}else{p=null}}if(M!=-2){if(!c||A.setStart){p=L.getElementsByTagName(v.settings.element)[0];A=I.createRange();if(M!=-1){A.setStart(y.find(L,1,M),F)}else{A.setStart(p,0)}if(u!=-1){A.setEnd(y.find(L,1,u),m)}else{A.setEnd(p,0)}if(z){z.removeAllRanges();z.addRange(A)}}else{try{A=z.createRange();A.moveToElementText(L);A.collapse(1);A.moveStart("character",M);A.moveEnd("character",u);A.select()}catch(G){}}}else{if((!c||A.setStart)&&(C=v.dom.get("__mce"))){if(x){C.setAttribute("id",x)}else{C.removeAttribute("id")}A=I.createRange();A.setStartBefore(C);A.setEndBefore(C);O.setRng(A)}}},getParentBlock:function(o){var m=this.dom;return m.getParent(o,m.isBlock)},insertPara:function(R){var F=this,v=F.editor,N=v.dom,S=v.getDoc(),W=v.settings,G=v.selection.getSel(),H=G.getRangeAt(0),V=S.body;var K,L,I,P,O,q,o,u,z,m,D,U,p,x,J,M=N.getViewPort(v.getWin()),C,E,B;v.undoManager.beforeChange();K=S.createRange();K.setStart(G.anchorNode,G.anchorOffset);K.collapse(d);L=S.createRange();L.setStart(G.focusNode,G.focusOffset);L.collapse(d);I=K.compareBoundaryPoints(K.START_TO_END,L)<0;P=I?G.anchorNode:G.focusNode;O=I?G.anchorOffset:G.focusOffset;q=I?G.focusNode:G.anchorNode;o=I?G.focusOffset:G.anchorOffset;if(P===q&&/^(TD|TH)$/.test(P.nodeName)){if(P.firstChild.nodeName=="BR"){N.remove(P.firstChild)}if(P.childNodes.length==0){v.dom.add(P,W.element,null,"
                    ");U=v.dom.add(P,W.element,null,"
                    ")}else{J=P.innerHTML;P.innerHTML="";v.dom.add(P,W.element,null,J);U=v.dom.add(P,W.element,null,"
                    ")}H=S.createRange();H.selectNodeContents(U);H.collapse(1);v.selection.setRng(H);return g}if(P==V&&q==V&&V.firstChild&&v.dom.isBlock(V.firstChild)){P=q=P.firstChild;O=o=0;K=S.createRange();K.setStart(P,0);L=S.createRange();L.setStart(q,0)}P=P.nodeName=="HTML"?S.body:P;P=P.nodeName=="BODY"?P.firstChild:P;q=q.nodeName=="HTML"?S.body:q;q=q.nodeName=="BODY"?q.firstChild:q;u=F.getParentBlock(P);z=F.getParentBlock(q);m=u?u.nodeName:W.element;if(J=F.dom.getParent(u,"li,pre")){if(J.nodeName=="LI"){return e(v.selection,F.dom,J)}return d}if(u&&(u.nodeName=="CAPTION"||/absolute|relative|fixed/gi.test(N.getStyle(u,"position",1)))){m=W.element;u=null}if(z&&(z.nodeName=="CAPTION"||/absolute|relative|fixed/gi.test(N.getStyle(u,"position",1)))){m=W.element;z=null}if(/(TD|TABLE|TH|CAPTION)/.test(m)||(u&&m=="DIV"&&/left|right/gi.test(N.getStyle(u,"float",1)))){m=W.element;u=z=null}D=(u&&u.nodeName==m)?u.cloneNode(0):v.dom.create(m);U=(z&&z.nodeName==m)?z.cloneNode(0):v.dom.create(m);U.removeAttribute("id");if(/^(H[1-6])$/.test(m)&&f(H,u)){U=v.dom.create(W.element)}J=p=P;do{if(J==V||J.nodeType==9||F.dom.isBlock(J)||/(TD|TABLE|TH|CAPTION)/.test(J.nodeName)){break}p=J}while((J=J.previousSibling?J.previousSibling:J.parentNode));J=x=q;do{if(J==V||J.nodeType==9||F.dom.isBlock(J)||/(TD|TABLE|TH|CAPTION)/.test(J.nodeName)){break}x=J}while((J=J.nextSibling?J.nextSibling:J.parentNode));if(p.nodeName==m){K.setStart(p,0)}else{K.setStartBefore(p)}K.setEnd(P,O);D.appendChild(K.cloneContents()||S.createTextNode(""));try{L.setEndAfter(x)}catch(Q){}L.setStart(q,o);U.appendChild(L.cloneContents()||S.createTextNode(""));H=S.createRange();if(!p.previousSibling&&p.parentNode.nodeName==m){H.setStartBefore(p.parentNode)}else{if(K.startContainer.nodeName==m&&K.startOffset==0){H.setStartBefore(K.startContainer)}else{H.setStart(K.startContainer,K.startOffset)}}if(!x.nextSibling&&x.parentNode.nodeName==m){H.setEndAfter(x.parentNode)}else{H.setEnd(L.endContainer,L.endOffset)}H.deleteContents();if(b){v.getWin().scrollTo(0,M.y)}if(D.firstChild&&D.firstChild.nodeName==m){D.innerHTML=D.firstChild.innerHTML}if(U.firstChild&&U.firstChild.nodeName==m){U.innerHTML=U.firstChild.innerHTML}if(N.isEmpty(D)){D.innerHTML="
                    "}function T(y,s){var r=[],Y,X,t;y.innerHTML="";if(W.keep_styles){X=s;do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(X.nodeName)){Y=X.cloneNode(g);N.setAttrib(Y,"id","");r.push(Y)}}while(X=X.parentNode)}if(r.length>0){for(t=r.length-1,Y=y;t>=0;t--){Y=Y.appendChild(r[t])}r[0].innerHTML=b?"\u00a0":"
                    ";return r[0]}else{y.innerHTML=b?"\u00a0":"
                    "}}if(N.isEmpty(U)){B=T(U,q)}if(b&&parseFloat(opera.version())<9.5){H.insertNode(D);H.insertNode(U)}else{H.insertNode(U);H.insertNode(D)}U.normalize();D.normalize();function A(r){return S.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,g).nextNode()||r}H=S.createRange();H.selectNodeContents(a?A(B||U):B||U);H.collapse(1);G.removeAllRanges();G.addRange(H);C=v.dom.getPos(U).y;if(CM.y+M.h){v.getWin().scrollTo(0,C1||!F(ap))&&an===0){c.remove(ap,1);return}if(ag.inline||ag.wrapper){if(!ag.exact&&an===1){ap=ao(ap)}O(ab,function(ar){O(c.select(ar.inline,ap),function(au){var at;if(ar.wrap_links===false){at=au.parentNode;do{if(at.nodeName==="A"){return}}while(at=at.parentNode)}U(ar,af,au,ar.exact?au:null)})});if(x(ap.parentNode,Y,af)){c.remove(ap,1);ap=0;return B}if(ag.merge_with_parents){c.getParent(ap.parentNode,function(ar){if(x(ar,Y,af)){c.remove(ap,1);ap=0;return B}})}if(ap){ap=u(C(ap),ap);ap=u(ap,C(ap,B))}}})}if(ag){if(aa){X=c.createRng();X.setStartBefore(aa);X.setEndAfter(aa);ah(o(X,ab))}else{if(!ac||!ag.inline||c.select("td.mceSelected,th.mceSelected").length){var ai=V.selection.getNode();ae=q.getBookmark();ah(o(q.getRng(B),ab));if(ag.styles&&(ag.styles.color||ag.styles.textDecoration)){a.walk(ai,I,"childNodes");I(ai)}q.moveToBookmark(ae);q.setRng(Z(q.getRng(B)));V.nodeChanged()}else{Q("apply",Y,af)}}}}function A(Y,ah,ab){var ac=R(Y),aj=ac[0],ag,af,X;function aa(am){var al=am.startContainer,ar=am.startOffset,aq,ap,an,ao;if(al.nodeType==3&&ar>=al.nodeValue.length-1){al=al.parentNode;ar=s(al)+1}if(al.nodeType==1){an=al.childNodes;al=an[Math.min(ar,an.length-1)];aq=new t(al);if(ar>an.length-1){aq.next()}for(ap=aq.current();ap;ap=aq.next()){if(ap.nodeType==3&&!f(ap)){ao=c.create("a",null,E);ap.parentNode.insertBefore(ao,ap);am.setStart(ap,0);q.setRng(am);c.remove(ao);return}}}}function Z(ao){var an,am,al;an=a.grep(ao.childNodes);for(am=0,al=ac.length;am=0;Z--){if(P.apply[Z].name==Y){return true}}for(Z=P.remove.length-1;Z>=0;Z--){if(P.remove[Z].name==Y){return false}}return W(q.getNode())}aa=q.getNode();if(W(aa)){return B}X=q.getStart();if(X!=aa){if(W(X)){return B}}return S}function v(ad,ac){var aa,ab=[],Z={},Y,X,W;if(q.isCollapsed()){for(X=0;X=0;Y--){W=ad[X];if(P.remove[Y].name==W){Z[W]=true;break}}}for(Y=P.apply.length-1;Y>=0;Y--){for(X=0;X=0;X--){W=ac[X].selector;if(!W){return B}for(ab=Y.length-1;ab>=0;ab--){if(c.is(Y[ab],W)){return B}}}}return S}a.extend(this,{get:R,register:k,apply:T,remove:A,toggle:D,match:j,matchAll:v,matchNode:x,canApply:y});function h(W,X){if(g(W,X.inline)){return B}if(g(W,X.block)){return B}if(X.selector){return c.is(W,X.selector)}}function g(X,W){X=X||"";W=W||"";X=""+(X.nodeName||X);W=""+(W.nodeName||W);return X.toLowerCase()==W.toLowerCase()}function L(X,W){var Y=c.getStyle(X,W);if(W=="color"||W=="backgroundColor"){Y=c.toHex(Y)}if(W=="fontWeight"&&Y==700){Y="bold"}return""+Y}function r(W,X){if(typeof(W)!="string"){W=W(X)}else{if(X){W=W.replace(/%(\w+)/g,function(Z,Y){return X[Y]||Z})}}return W}function f(W){return W&&W.nodeType===3&&/^([\s\r\n]+|)$/.test(W.nodeValue)}function N(Y,X,W){var Z=c.create(X,W);Y.parentNode.insertBefore(Z,Y);Z.appendChild(Y);return Z}function o(W,ag,Z){var Y=W.startContainer,ad=W.startOffset,aj=W.endContainer,ae=W.endOffset,ai,af,ac;function ah(am,an,ak,al){var ao,ap;al=al||c.getRoot();for(;;){ao=am.parentNode;if(ao==al||(!ag[0].block_expand&&F(ao))){return am}for(ai=ao[an];ai&&ai!=am;ai=ai[ak]){if(ai.nodeType==1&&!H(ai)){return am}if(ai.nodeType==3&&!f(ai)){return am}}am=am.parentNode}return am}function ab(ak,al){if(al===p){al=ak.nodeType===3?ak.length:ak.childNodes.length}while(ak&&ak.hasChildNodes()){ak=ak.childNodes[al];if(ak){al=ak.nodeType===3?ak.length:ak.childNodes.length}}return{node:ak,offset:al}}if(Y.nodeType==1&&Y.hasChildNodes()){af=Y.childNodes.length-1;Y=Y.childNodes[ad>af?af:ad];if(Y.nodeType==3){ad=0}}if(aj.nodeType==1&&aj.hasChildNodes()){af=aj.childNodes.length-1;aj=aj.childNodes[ae>af?af:ae-1];if(aj.nodeType==3){ae=aj.nodeValue.length}}if(H(Y.parentNode)){Y=Y.parentNode}if(H(Y)){Y=Y.nextSibling||Y}if(H(aj.parentNode)){ae=c.nodeIndex(aj);aj=aj.parentNode}if(H(aj)&&aj.previousSibling){aj=aj.previousSibling;ae=aj.length}if(ag[0].inline){ac=ab(aj,ae);if(ac.node){while(ac.node&&ac.offset===0&&ac.node.previousSibling){ac=ab(ac.node.previousSibling)}if(ac.node&&ac.offset>0&&ac.node.nodeType===3&&ac.node.nodeValue.charAt(ac.offset-1)===" "){if(ac.offset>1){aj=ac.node;aj.splitText(ac.offset-1)}else{if(ac.node.previousSibling){aj=ac.node.previousSibling}}}}}if(ag[0].inline||ag[0].block_expand){Y=ah(Y,"firstChild","nextSibling");aj=ah(aj,"lastChild","previousSibling")}if(ag[0].selector&&ag[0].expand!==S&&!ag[0].inline){function aa(al,ak){var am,an,ap,ao;if(al.nodeType==3&&al.nodeValue.length==0&&al[ak]){al=al[ak]}am=m(al);for(an=0;anY?Y:Z]}return W}function Q(ab,X,aa){var Y,W=P[ab],ac=P[ab=="apply"?"remove":"apply"];function ad(){return P.apply.length||P.remove.length}function Z(){P.apply=[];P.remove=[]}function ae(af){O(P.apply.reverse(),function(ag){T(ag.name,ag.vars,af);if(ag.name==="forecolor"&&ag.vars.value){I(af.parentNode)}});O(P.remove.reverse(),function(ag){A(ag.name,ag.vars,af)});c.remove(af,1);Z()}for(Y=W.length-1;Y>=0;Y--){if(W[Y].name==X){return}}W.push({name:X,vars:aa});for(Y=ac.length-1;Y>=0;Y--){if(ac[Y].name==X){ac.splice(Y,1)}}if(ad()){V.getDoc().execCommand("FontName",false,"mceinline");P.lastRng=q.getRng();O(c.select("font,span"),function(ag){var af;if(b(ag)){af=q.getBookmark();ae(ag);q.moveToBookmark(af);V.nodeChanged()}});if(!P.isListening&&ad()){P.isListening=true;O("onKeyDown,onKeyUp,onKeyPress,onMouseUp".split(","),function(af){V[af].addToTop(function(ag,ah){if(ad()&&!a.dom.RangeUtils.compareRanges(P.lastRng,q.getRng())){O(c.select("font,span"),function(aj){var ak,ai;if(b(aj)){ak=aj.firstChild;if(ak){ae(aj);ai=c.createRng();ai.setStart(ak,ak.nodeValue.length);ai.setEnd(ak,ak.nodeValue.length);q.setRng(ai);ag.nodeChanged()}else{c.remove(aj)}}});if(ah.type=="keyup"||ah.type=="mouseup"){Z()}}})})}}}}})(tinymce);tinymce.onAddEditor.add(function(e,a){var d,h,g,c=a.settings;if(c.inline_styles){h=e.explode(c.font_size_style_values);function b(j,i){e.each(i,function(l,k){if(l){g.setStyle(j,k,l)}});g.rename(j,"span")}d={font:function(j,i){b(i,{backgroundColor:i.style.backgroundColor,color:i.color,fontFamily:i.face,fontSize:h[parseInt(i.size)-1]})},u:function(j,i){b(i,{textDecoration:"underline"})},strike:function(j,i){b(i,{textDecoration:"line-through"})}};function f(i,j){g=i.dom;if(c.convert_fonts_to_spans){e.each(g.select("font,u,strike",j.node),function(k){d[k.nodeName.toLowerCase()](a.dom,k)})}}a.onPreProcess.add(f);a.onSetContent.add(f);a.onInit.add(function(){a.selection.onSetContent.add(f)})}}); \ No newline at end of file diff --git a/app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce_popup.js b/app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce_popup.js new file mode 100644 index 0000000..f859d24 --- /dev/null +++ b/app/assets/javascripts/tinymce/jscripts/tiny_mce/tiny_mce_popup.js @@ -0,0 +1,5 @@ + +// Uncomment and change this document.domain value if you are loading the script cross subdomains +// document.domain = 'moxiecode.com'; + +var tinymce=null,tinyMCEPopup,tinyMCE;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance("tinymce.dom.DOMUtils",document);if(b.features.popup_css!==false){b.dom.loadCSS(b.features.popup_css||b.editor.settings.popup_css)}b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg("mce_inline");b.id=b.getWindowArg("mce_window_id");b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return(!window.frameElement&&window.dialogArguments)||opener||parent||top},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var a=this;setTimeout(function(){var b=a.dom.getViewPort(window);a.editor.windowManager.resizeBy(a.getWindowArg("mce_width")-b.w,a.getWindowArg("mce_height")-b.h,a.id||window)},10)},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false&&b.editor.settings.language_load!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write(' + diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-anim_basic_16x16.gif b/app/assets/stylesheets/jquery.ui/redmond/images/ui-anim_basic_16x16.gif new file mode 100644 index 0000000..085ccae Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-anim_basic_16x16.gif differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000..5b5dab2 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_flat_55_fbec88_40x100.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_flat_55_fbec88_40x100.png new file mode 100644 index 0000000..47acaad Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_flat_55_fbec88_40x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png new file mode 100644 index 0000000..9fb564f Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_85_dfeffc_1x400.png new file mode 100644 index 0000000..0149515 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_85_dfeffc_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000..4443fdc Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png new file mode 100644 index 0000000..81ecc36 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png new file mode 100644 index 0000000..4f3faf8 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png new file mode 100644 index 0000000..38c3833 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_217bc0_256x240.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_217bc0_256x240.png new file mode 100644 index 0000000..6f4bd87 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_217bc0_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_2e83ff_256x240.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000..09d1cdc Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_2e83ff_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_469bdd_256x240.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_469bdd_256x240.png new file mode 100644 index 0000000..51d0c92 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_469bdd_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_6da8d5_256x240.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_6da8d5_256x240.png new file mode 100644 index 0000000..9f3eafa Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_6da8d5_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_cd0a0a_256x240.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..2ab019b Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_cd0a0a_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_d8e7f3_256x240.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_d8e7f3_256x240.png new file mode 100644 index 0000000..ad2dc6f Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_d8e7f3_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_f9bd01_256x240.png b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_f9bd01_256x240.png new file mode 100644 index 0000000..7862502 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/redmond/images/ui-icons_f9bd01_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/redmond/jquery-ui-1.8.2.custom.css b/app/assets/stylesheets/jquery.ui/redmond/jquery-ui-1.8.2.custom.css new file mode 100644 index 0000000..9d78378 --- /dev/null +++ b/app/assets/stylesheets/jquery.ui/redmond/jquery-ui-1.8.2.custom.css @@ -0,0 +1,489 @@ +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +*/ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=5c9ccc&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=55&borderColorHeader=4297d7&fcHeader=ffffff&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=469bdd&bgColorDefault=dfeffc&bgTextureDefault=02_glass.png&bgImgOpacityDefault=85&borderColorDefault=c5dbec&fcDefault=2e6e9e&iconColorDefault=6da8d5&bgColorHover=d0e5f5&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=79b7e7&fcHover=1d5987&iconColorHover=217bc0&bgColorActive=f5f8f9&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=100&borderColorActive=79b7e7&fcActive=e17009&iconColorActive=f9bd01&bgColorHighlight=fbec88&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=fad42e&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px +*/ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #a6c9e2; background: #fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc url(images/ui-bg_gloss-wave_55_5c9ccc_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } +.ui-widget-header a { color: #ffffff; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #c5dbec; background: #dfeffc url(images/ui-bg_glass_85_dfeffc_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2e6e9e; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2e6e9e; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url(images/ui-bg_glass_75_d0e5f5_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1d5987; } +.ui-state-hover a, .ui-state-hover a:hover { color: #1d5987; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url(images/ui-bg_inset-hard_100_f5f8f9_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e17009; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #e17009; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fad42e; background: #fbec88 url(images/ui-bg_flat_55_fbec88_40x100.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_469bdd_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_469bdd_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_6da8d5_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_217bc0_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_f9bd01_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; } +.ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; } +.ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; } +.ui-corner-top { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; } +.ui-corner-right { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; } +.ui-corner-left { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; } +.ui-corner-all { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable +----------------------------------*/ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Selectable +----------------------------------*/ +.ui-selectable-helper { border:1px dotted black } +/* Accordion +----------------------------------*/ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +/* IE7-/Win - Fix extra vertical space in lists */ +.ui-accordion a { zoom: 1; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete +----------------------------------*/ +.ui-autocomplete { position: absolute; cursor: default; } +.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* Menu +----------------------------------*/ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* Button +----------------------------------*/ + +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ + + + + + +/* Dialog +----------------------------------*/ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* Slider +----------------------------------*/ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs +----------------------------------*/ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* Datepicker +----------------------------------*/ +.ui-datepicker { width: 17em; padding: .2em .2em 0; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* Progressbar +----------------------------------*/ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-anim_basic_16x16.gif b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-anim_basic_16x16.gif new file mode 100644 index 0000000..085ccae Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-anim_basic_16x16.gif differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000..5b5dab2 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png new file mode 100644 index 0000000..ac8b229 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_flat_75_ffffff_40x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000..ad3d634 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000..42ccba2 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000..5a46b47 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000..86c2baa Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000..4443fdc Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000..7c9fa6c Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_222222_256x240.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000..b273ff1 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_222222_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_2e83ff_256x240.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000..09d1cdc Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_2e83ff_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_454545_256x240.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000..59bd45b Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_454545_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_888888_256x240.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000..6d02426 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_888888_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_cd0a0a_256x240.png b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..2ab019b Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness/images/ui-icons_cd0a0a_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness/jquery-ui-1.8.2.custom.css b/app/assets/stylesheets/jquery.ui/smoothness/jquery-ui-1.8.2.custom.css new file mode 100644 index 0000000..3c4a611 --- /dev/null +++ b/app/assets/stylesheets/jquery.ui/smoothness/jquery-ui-1.8.2.custom.css @@ -0,0 +1,489 @@ +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +*/ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px +*/ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } +.ui-widget-header a { color: #222222; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable +----------------------------------*/ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Selectable +----------------------------------*/ +.ui-selectable-helper { border:1px dotted black } +/* Accordion +----------------------------------*/ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +/* IE7-/Win - Fix extra vertical space in lists */ +.ui-accordion a { zoom: 1; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete +----------------------------------*/ +.ui-autocomplete { position: absolute; cursor: default; } +.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* Menu +----------------------------------*/ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* Button +----------------------------------*/ + +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ + + + + + +/* Dialog +----------------------------------*/ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* Slider +----------------------------------*/ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs +----------------------------------*/ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* Datepicker +----------------------------------*/ +.ui-datepicker { width: 17em; padding: .2em .2em 0; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* Progressbar +----------------------------------*/ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-anim_basic_16x16.gif b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-anim_basic_16x16.gif new file mode 100644 index 0000000..085ccae Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-anim_basic_16x16.gif differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_0_aaaaaa_40x100.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000..5b5dab2 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_75_ffffff_40x100.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_75_ffffff_40x100.png new file mode 100644 index 0000000..ac8b229 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_flat_75_ffffff_40x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_55_fbf9ee_1x400.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000..ad3d634 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_65_ffffff_1x400.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000..42ccba2 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_dadada_1x400.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000..5a46b47 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_e6e6e6_1x400.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000..86c2baa Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_95_fef1ec_1x400.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000..4443fdc Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000..7c9fa6c Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_222222_256x240.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000..b273ff1 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_222222_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_2e83ff_256x240.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000..09d1cdc Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_2e83ff_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_454545_256x240.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000..59bd45b Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_454545_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_888888_256x240.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000..6d02426 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_888888_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_cd0a0a_256x240.png b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..2ab019b Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/smoothness_mod/images/ui-icons_cd0a0a_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/smoothness_mod/jquery-ui-1.8.2.custom.css b/app/assets/stylesheets/jquery.ui/smoothness_mod/jquery-ui-1.8.2.custom.css new file mode 100644 index 0000000..3fb1f3e --- /dev/null +++ b/app/assets/stylesheets/jquery.ui/smoothness_mod/jquery-ui-1.8.2.custom.css @@ -0,0 +1,489 @@ +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +*/ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px +*/ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border-bottom: 1px solid #aaaaaa; color: #222222; font-weight: bold; } +.ui-widget-header a { color: #222222; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all { -moz-border-radius-topleft: 4px; -webkit-border-radius-topleft: 4px; border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-radius-topright: 4px; border-radius-topright: 4px;} + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable +----------------------------------*/ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Selectable +----------------------------------*/ +.ui-selectable-helper { border:1px dotted black } +/* Accordion +----------------------------------*/ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +/* IE7-/Win - Fix extra vertical space in lists */ +.ui-accordion a { zoom: 1; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete +----------------------------------*/ +.ui-autocomplete { position: absolute; cursor: default; } +.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* Menu +----------------------------------*/ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* Button +----------------------------------*/ + +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ + + + + + +/* Dialog +----------------------------------*/ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* Slider +----------------------------------*/ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs +----------------------------------*/ +.ui-tabs { position: relative; padding: 0; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; border: 1px solid #aaa; border-top: 0; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* Datepicker +----------------------------------*/ +.ui-datepicker { width: 17em; padding: .2em .2em 0; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* Progressbar +----------------------------------*/ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-anim_basic_16x16.gif b/app/assets/stylesheets/jquery.ui/south-street/images/ui-anim_basic_16x16.gif new file mode 100644 index 0000000..085ccae Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-anim_basic_16x16.gif differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png new file mode 100644 index 0000000..a95fa33 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png new file mode 100644 index 0000000..709b5ab Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png new file mode 100644 index 0000000..6045f63 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png new file mode 100644 index 0000000..bfc39c6 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png new file mode 100644 index 0000000..677a902 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png new file mode 100644 index 0000000..ca80bff Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png new file mode 100644 index 0000000..5177335 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png new file mode 100644 index 0000000..b4cb824 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png new file mode 100644 index 0000000..8568394 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_808080_256x240.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_808080_256x240.png new file mode 100644 index 0000000..69ba6d8 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_808080_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_847e71_256x240.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_847e71_256x240.png new file mode 100644 index 0000000..b20c322 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_847e71_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_8dc262_256x240.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_8dc262_256x240.png new file mode 100644 index 0000000..0f58025 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_8dc262_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_cd0a0a_256x240.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..2ab019b Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_cd0a0a_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_eeeeee_256x240.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_eeeeee_256x240.png new file mode 100644 index 0000000..01bb36b Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_eeeeee_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_ffffff_256x240.png b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000..42f8f99 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/south-street/images/ui-icons_ffffff_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/south-street/jquery-ui-1.8.2.custom.css b/app/assets/stylesheets/jquery.ui/south-street/jquery-ui-1.8.2.custom.css new file mode 100644 index 0000000..cf2b236 --- /dev/null +++ b/app/assets/stylesheets/jquery.ui/south-street/jquery-ui-1.8.2.custom.css @@ -0,0 +1,489 @@ +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +*/ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=segoe%20ui,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=ece8da&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=100&borderColorHeader=d4ccb0&fcHeader=433f38&iconColorHeader=847e71&bgColorContent=f5f3e5&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=dfd9c3&fcContent=312e25&iconColorContent=808080&bgColorDefault=459e00&bgTextureDefault=04_highlight_hard.png&bgImgOpacityDefault=15&borderColorDefault=327E04&fcDefault=ffffff&iconColorDefault=eeeeee&bgColorHover=67b021&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=25&borderColorHover=327E04&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=fafaf4&bgTextureActive=04_highlight_hard.png&bgImgOpacityActive=100&borderColorActive=d4ccb0&fcActive=459e00&iconColorActive=8DC262&bgColorHighlight=fcf0ba&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=e8e1b5&fcHighlight=363636&iconColorHighlight=8DC262&bgColorError=ffedad&bgTextureError=03_highlight_soft.png&bgImgOpacityError=95&borderColorError=e3a345&fcError=cd5c0a&iconColorError=cd0a0a&bgColorOverlay=2b2922&bgTextureOverlay=05_inset_soft.png&bgImgOpacityOverlay=15&opacityOverlay=90&bgColorShadow=cccccc&bgTextureShadow=04_highlight_hard.png&bgImgOpacityShadow=95&opacityShadow=20&thicknessShadow=12px&offsetTopShadow=-12px&offsetLeftShadow=-12px&cornerRadiusShadow=10px +*/ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: segoe ui, Arial, sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: segoe ui, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #dfd9c3; background: #f5f3e5 url(images/ui-bg_highlight-hard_100_f5f3e5_1x100.png) 50% top repeat-x; color: #312e25; } +.ui-widget-content a { color: #312e25; } +.ui-widget-header { border: 1px solid #d4ccb0; background: #ece8da url(images/ui-bg_gloss-wave_100_ece8da_500x100.png) 50% 50% repeat-x; color: #433f38; font-weight: bold; } +.ui-widget-header a { color: #433f38; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #327e04; background: #459e00 url(images/ui-bg_highlight-hard_15_459e00_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #ffffff; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #327e04; background: #67b021 url(images/ui-bg_highlight-soft_25_67b021_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; } +.ui-state-hover a, .ui-state-hover a:hover { color: #ffffff; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #d4ccb0; background: #fafaf4 url(images/ui-bg_highlight-hard_100_fafaf4_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #459e00; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #459e00; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #e8e1b5; background: #fcf0ba url(images/ui-bg_glass_55_fcf0ba_1x400.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #e3a345; background: #ffedad url(images/ui-bg_highlight-soft_95_ffedad_1x100.png) 50% top repeat-x; color: #cd5c0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd5c0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd5c0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_808080_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_808080_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_847e71_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_eeeeee_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_8dc262_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_8dc262_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; } +.ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; } +.ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; } +.ui-corner-top { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; } +.ui-corner-right { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; } +.ui-corner-left { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; } +.ui-corner-all { -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; } + +/* Overlays */ +.ui-widget-overlay { background: #2b2922 url(images/ui-bg_inset-soft_15_2b2922_1x100.png) 50% bottom repeat-x; opacity: .90;filter:Alpha(Opacity=90); } +.ui-widget-shadow { margin: -12px 0 0 -12px; padding: 12px; background: #cccccc url(images/ui-bg_highlight-hard_95_cccccc_1x100.png) 50% top repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; }/* Resizable +----------------------------------*/ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Selectable +----------------------------------*/ +.ui-selectable-helper { border:1px dotted black } +/* Accordion +----------------------------------*/ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +/* IE7-/Win - Fix extra vertical space in lists */ +.ui-accordion a { zoom: 1; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete +----------------------------------*/ +.ui-autocomplete { position: absolute; cursor: default; } +.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* Menu +----------------------------------*/ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* Button +----------------------------------*/ + +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ + + + + + +/* Dialog +----------------------------------*/ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* Slider +----------------------------------*/ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs +----------------------------------*/ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* Datepicker +----------------------------------*/ +.ui-datepicker { width: 17em; padding: .2em .2em 0; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* Progressbar +----------------------------------*/ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-anim_basic_16x16.gif b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-anim_basic_16x16.gif new file mode 100644 index 0000000..085ccae Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-anim_basic_16x16.gif differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_diagonals-medium_20_d34d17_40x40.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_diagonals-medium_20_d34d17_40x40.png new file mode 100644 index 0000000..8083fb4 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_diagonals-medium_20_d34d17_40x40.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_30_cccccc_40x100.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_30_cccccc_40x100.png new file mode 100644 index 0000000..5473aff Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_30_cccccc_40x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_50_5c5c5c_40x100.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_50_5c5c5c_40x100.png new file mode 100644 index 0000000..5950a8d Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_flat_50_5c5c5c_40x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_30_888a85_500x100.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_30_888a85_500x100.png new file mode 100644 index 0000000..433eafd Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_30_888a85_500x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_45_918e88_500x100.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_45_918e88_500x100.png new file mode 100644 index 0000000..86b9c36 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_45_918e88_500x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_60_fece2f_500x100.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_60_fece2f_500x100.png new file mode 100644 index 0000000..01ccab3 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_60_fece2f_500x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_70_ffdd57_500x100.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_70_ffdd57_500x100.png new file mode 100644 index 0000000..f8bd104 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_70_ffdd57_500x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_90_fff9e5_500x100.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_90_fff9e5_500x100.png new file mode 100644 index 0000000..6e3ad2d Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_gloss-wave_90_fff9e5_500x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_0_feeebd_1x100.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_0_feeebd_1x100.png new file mode 100644 index 0000000..a9f667b Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_0_feeebd_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_70_feeebd_1x100.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_70_feeebd_1x100.png new file mode 100644 index 0000000..fac9e68 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_highlight-soft_70_feeebd_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_30_feeebd_1x100.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_30_feeebd_1x100.png new file mode 100644 index 0000000..8d0c384 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_30_feeebd_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_70_feeebd_1x100.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_70_feeebd_1x100.png new file mode 100644 index 0000000..5516cd8 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-bg_inset-soft_70_feeebd_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_3d3d3d_256x240.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_3d3d3d_256x240.png new file mode 100644 index 0000000..c216ba1 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_3d3d3d_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_bd7b00_256x240.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_bd7b00_256x240.png new file mode 100644 index 0000000..e81995d Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_bd7b00_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_d19405_256x240.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_d19405_256x240.png new file mode 100644 index 0000000..d168087 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_d19405_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_eb990f_256x240.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_eb990f_256x240.png new file mode 100644 index 0000000..fd0b00a Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_eb990f_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ed9f26_256x240.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ed9f26_256x240.png new file mode 100644 index 0000000..668e030 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ed9f26_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_fadc7a_256x240.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_fadc7a_256x240.png new file mode 100644 index 0000000..711a99d Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_fadc7a_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ffe180_256x240.png b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ffe180_256x240.png new file mode 100644 index 0000000..048e8e1 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny-mod/images/ui-icons_ffe180_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny-mod/jquery-ui-1.8.2.custom.css b/app/assets/stylesheets/jquery.ui/sunny-mod/jquery-ui-1.8.2.custom.css new file mode 100644 index 0000000..4eee668 --- /dev/null +++ b/app/assets/stylesheets/jquery.ui/sunny-mod/jquery-ui-1.8.2.custom.css @@ -0,0 +1,489 @@ +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +*/ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Segoe%20UI,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=8px&bgColorHeader=918e88&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=45&borderColorHeader=494437&fcHeader=ffffff&iconColorHeader=fadc7a&bgColorContent=feeebd&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=70&borderColorContent=8e846b&fcContent=383838&iconColorContent=d19405&bgColorDefault=fece2f&bgTextureDefault=12_gloss_wave.png&bgImgOpacityDefault=60&borderColorDefault=d19405&fcDefault=4c3000&iconColorDefault=3d3d3d&bgColorHover=ffdd57&bgTextureHover=12_gloss_wave.png&bgImgOpacityHover=70&borderColorHover=a45b13&fcHover=381f00&iconColorHover=bd7b00&bgColorActive=feeebd&bgTextureActive=05_inset_soft.png&bgImgOpacityActive=70&borderColorActive=655e4e&fcActive=0074c7&iconColorActive=eb990f&bgColorHighlight=fff9e5&bgTextureHighlight=12_gloss_wave.png&bgImgOpacityHighlight=90&borderColorHighlight=eeb420&fcHighlight=1f1f1f&iconColorHighlight=ed9f26&bgColorError=d34d17&bgTextureError=07_diagonals_medium.png&bgImgOpacityError=20&borderColorError=ffb73d&fcError=ffffff&iconColorError=ffe180&bgColorOverlay=5c5c5c&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=50&opacityOverlay=80&bgColorShadow=cccccc&bgTextureShadow=01_flat.png&bgImgOpacityShadow=30&opacityShadow=60&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px +*/ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Segoe UI, Arial, sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Segoe UI, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #8e846b; background: #feeebd url(images/ui-bg_highlight-soft_70_feeebd_1x100.png) 50% top repeat-x; color: #383838; } +.ui-widget-content a { color: #383838; } +.ui-widget-header { border: 1px solid #494437; background: #918e88 url(images/ui-bg_gloss-wave_45_918e88_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } +.ui-widget-header a { color: #ffffff; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d19405; background: #fece2f url(images/ui-bg_gloss-wave_60_fece2f_500x100.png) 50% 50% repeat-x; font-weight: bold; color: #4c3000; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #4c3000; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #a45b13; background: #ffdd57 url(images/ui-bg_gloss-wave_70_ffdd57_500x100.png) 50% 50% repeat-x; font-weight: bold; color: #381f00; } +.ui-state-hover a, .ui-state-hover a:hover { color: #381f00; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #655e4e; background: #feeebd url(images/ui-bg_inset-soft_70_feeebd_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #0074c7; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #0074c7; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #eeb420; background: #fff9e5 url(images/ui-bg_gloss-wave_90_fff9e5_500x100.png) 50% top repeat-x; color: #1f1f1f; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #1f1f1f; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #ffb73d; background: #d34d17 url(images/ui-bg_diagonals-medium_20_d34d17_40x40.png) 50% 50% repeat; color: #ffffff; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_d19405_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_d19405_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_fadc7a_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_3d3d3d_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_bd7b00_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_eb990f_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_ed9f26_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffe180_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 8px; -webkit-border-top-left-radius: 8px; border-top-left-radius: 8px; } +.ui-corner-tr { -moz-border-radius-topright: 8px; -webkit-border-top-right-radius: 8px; border-top-right-radius: 8px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 8px; -webkit-border-bottom-left-radius: 8px; border-bottom-left-radius: 8px; } +.ui-corner-br { -moz-border-radius-bottomright: 8px; -webkit-border-bottom-right-radius: 8px; border-bottom-right-radius: 8px; } +.ui-corner-top { -moz-border-radius-topleft: 8px; -webkit-border-top-left-radius: 8px; border-top-left-radius: 8px; -moz-border-radius-topright: 8px; -webkit-border-top-right-radius: 8px; border-top-right-radius: 8px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 8px; -webkit-border-bottom-left-radius: 8px; border-bottom-left-radius: 8px; -moz-border-radius-bottomright: 8px; -webkit-border-bottom-right-radius: 8px; border-bottom-right-radius: 8px; } +.ui-corner-right { -moz-border-radius-topright: 8px; -webkit-border-top-right-radius: 8px; border-top-right-radius: 8px; -moz-border-radius-bottomright: 8px; -webkit-border-bottom-right-radius: 8px; border-bottom-right-radius: 8px; } +.ui-corner-left { -moz-border-radius-topleft: 8px; -webkit-border-top-left-radius: 8px; border-top-left-radius: 8px; -moz-border-radius-bottomleft: 8px; -webkit-border-bottom-left-radius: 8px; border-bottom-left-radius: 8px; } +.ui-corner-all { -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } + +/* Overlays */ +.ui-widget-overlay { background: #5c5c5c url(images/ui-bg_flat_50_5c5c5c_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); } +.ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #cccccc url(images/ui-bg_flat_30_cccccc_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable +----------------------------------*/ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Selectable +----------------------------------*/ +.ui-selectable-helper { border:1px dotted black } +/* Accordion +----------------------------------*/ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +/* IE7-/Win - Fix extra vertical space in lists */ +.ui-accordion a { zoom: 1; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete +----------------------------------*/ +.ui-autocomplete { position: absolute; cursor: default; } +.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* Menu +----------------------------------*/ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* Button +----------------------------------*/ + +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ + + + + + +/* Dialog +----------------------------------*/ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* Slider +----------------------------------*/ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs +----------------------------------*/ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* Datepicker +----------------------------------*/ +.ui-datepicker { width: 17em; padding: .2em .2em 0; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* Progressbar +----------------------------------*/ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-anim_basic_16x16.gif b/app/assets/stylesheets/jquery.ui/sunny/images/ui-anim_basic_16x16.gif new file mode 100644 index 0000000..085ccae Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-anim_basic_16x16.gif differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png new file mode 100644 index 0000000..d8bd1be Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_flat_30_cccccc_40x100.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_flat_30_cccccc_40x100.png new file mode 100644 index 0000000..5473aff Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_flat_30_cccccc_40x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png new file mode 100644 index 0000000..5950a8d Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png new file mode 100644 index 0000000..7662917 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png new file mode 100644 index 0000000..01ccab3 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png new file mode 100644 index 0000000..66a7dec Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png new file mode 100644 index 0000000..6e3ad2d Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png new file mode 100644 index 0000000..8c5c35c Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png new file mode 100644 index 0000000..820b017 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_3d3d3d_256x240.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_3d3d3d_256x240.png new file mode 100644 index 0000000..12b7518 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_3d3d3d_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_bd7b00_256x240.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_bd7b00_256x240.png new file mode 100644 index 0000000..648d91b Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_bd7b00_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_d19405_256x240.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_d19405_256x240.png new file mode 100644 index 0000000..d168087 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_d19405_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_eb990f_256x240.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_eb990f_256x240.png new file mode 100644 index 0000000..fd0b00a Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_eb990f_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_ed9f26_256x240.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_ed9f26_256x240.png new file mode 100644 index 0000000..668e030 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_ed9f26_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_fadc7a_256x240.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_fadc7a_256x240.png new file mode 100644 index 0000000..711a99d Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_fadc7a_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_ffe180_256x240.png b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_ffe180_256x240.png new file mode 100644 index 0000000..2edc979 Binary files /dev/null and b/app/assets/stylesheets/jquery.ui/sunny/images/ui-icons_ffe180_256x240.png differ diff --git a/app/assets/stylesheets/jquery.ui/sunny/jquery-ui-1.8.2.custom.css b/app/assets/stylesheets/jquery.ui/sunny/jquery-ui-1.8.2.custom.css new file mode 100644 index 0000000..df768a9 --- /dev/null +++ b/app/assets/stylesheets/jquery.ui/sunny/jquery-ui-1.8.2.custom.css @@ -0,0 +1,489 @@ +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +*/ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Segoe%20UI,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=8px&bgColorHeader=817865&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=45&borderColorHeader=494437&fcHeader=ffffff&iconColorHeader=fadc7a&bgColorContent=feeebd&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=8e846b&fcContent=383838&iconColorContent=d19405&bgColorDefault=fece2f&bgTextureDefault=12_gloss_wave.png&bgImgOpacityDefault=60&borderColorDefault=d19405&fcDefault=4c3000&iconColorDefault=3d3d3d&bgColorHover=ffdd57&bgTextureHover=12_gloss_wave.png&bgImgOpacityHover=70&borderColorHover=a45b13&fcHover=381f00&iconColorHover=bd7b00&bgColorActive=ffffff&bgTextureActive=05_inset_soft.png&bgImgOpacityActive=30&borderColorActive=655e4e&fcActive=0074c7&iconColorActive=eb990f&bgColorHighlight=fff9e5&bgTextureHighlight=12_gloss_wave.png&bgImgOpacityHighlight=90&borderColorHighlight=eeb420&fcHighlight=1f1f1f&iconColorHighlight=ed9f26&bgColorError=d34d17&bgTextureError=07_diagonals_medium.png&bgImgOpacityError=20&borderColorError=ffb73d&fcError=ffffff&iconColorError=ffe180&bgColorOverlay=5c5c5c&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=50&opacityOverlay=80&bgColorShadow=cccccc&bgTextureShadow=01_flat.png&bgImgOpacityShadow=30&opacityShadow=60&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px +*/ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Segoe UI, Arial, sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Segoe UI, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #8e846b; background: #feeebd url(images/ui-bg_highlight-soft_100_feeebd_1x100.png) 50% top repeat-x; color: #383838; } +.ui-widget-content a { color: #383838; } +.ui-widget-header { border: 1px solid #494437; background: #817865 url(images/ui-bg_gloss-wave_45_817865_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } +.ui-widget-header a { color: #ffffff; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d19405; background: #fece2f url(images/ui-bg_gloss-wave_60_fece2f_500x100.png) 50% 50% repeat-x; font-weight: bold; color: #4c3000; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #4c3000; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #a45b13; background: #ffdd57 url(images/ui-bg_gloss-wave_70_ffdd57_500x100.png) 50% 50% repeat-x; font-weight: bold; color: #381f00; } +.ui-state-hover a, .ui-state-hover a:hover { color: #381f00; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #655e4e; background: #ffffff url(images/ui-bg_inset-soft_30_ffffff_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #0074c7; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #0074c7; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #eeb420; background: #fff9e5 url(images/ui-bg_gloss-wave_90_fff9e5_500x100.png) 50% top repeat-x; color: #1f1f1f; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #1f1f1f; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #ffb73d; background: #d34d17 url(images/ui-bg_diagonals-medium_20_d34d17_40x40.png) 50% 50% repeat; color: #ffffff; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_d19405_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_d19405_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_fadc7a_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_3d3d3d_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_bd7b00_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_eb990f_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_ed9f26_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffe180_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 8px; -webkit-border-top-left-radius: 8px; border-top-left-radius: 8px; } +.ui-corner-tr { -moz-border-radius-topright: 8px; -webkit-border-top-right-radius: 8px; border-top-right-radius: 8px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 8px; -webkit-border-bottom-left-radius: 8px; border-bottom-left-radius: 8px; } +.ui-corner-br { -moz-border-radius-bottomright: 8px; -webkit-border-bottom-right-radius: 8px; border-bottom-right-radius: 8px; } +.ui-corner-top { -moz-border-radius-topleft: 8px; -webkit-border-top-left-radius: 8px; border-top-left-radius: 8px; -moz-border-radius-topright: 8px; -webkit-border-top-right-radius: 8px; border-top-right-radius: 8px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 8px; -webkit-border-bottom-left-radius: 8px; border-bottom-left-radius: 8px; -moz-border-radius-bottomright: 8px; -webkit-border-bottom-right-radius: 8px; border-bottom-right-radius: 8px; } +.ui-corner-right { -moz-border-radius-topright: 8px; -webkit-border-top-right-radius: 8px; border-top-right-radius: 8px; -moz-border-radius-bottomright: 8px; -webkit-border-bottom-right-radius: 8px; border-bottom-right-radius: 8px; } +.ui-corner-left { -moz-border-radius-topleft: 8px; -webkit-border-top-left-radius: 8px; border-top-left-radius: 8px; -moz-border-radius-bottomleft: 8px; -webkit-border-bottom-left-radius: 8px; border-bottom-left-radius: 8px; } +.ui-corner-all { -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } + +/* Overlays */ +.ui-widget-overlay { background: #5c5c5c url(images/ui-bg_flat_50_5c5c5c_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); } +.ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #cccccc url(images/ui-bg_flat_30_cccccc_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable +----------------------------------*/ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Selectable +----------------------------------*/ +.ui-selectable-helper { border:1px dotted black } +/* Accordion +----------------------------------*/ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +/* IE7-/Win - Fix extra vertical space in lists */ +.ui-accordion a { zoom: 1; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete +----------------------------------*/ +.ui-autocomplete { position: absolute; cursor: default; } +.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* Menu +----------------------------------*/ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* Button +----------------------------------*/ + +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ + + + + + +/* Dialog +----------------------------------*/ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* Slider +----------------------------------*/ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs +----------------------------------*/ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* Datepicker +----------------------------------*/ +.ui-datepicker { width: 17em; padding: .2em .2em 0; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* Progressbar +----------------------------------*/ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/app/assets/stylesheets/lightbox.css b/app/assets/stylesheets/lightbox.css new file mode 100644 index 0000000..8f8a197 --- /dev/null +++ b/app/assets/stylesheets/lightbox.css @@ -0,0 +1,63 @@ +/* - - - - - - - - - - - - - - - - - - - - - + +Title : Lightbox CSS +Author : Kevin Hale +URL : http://particletree.com/features/lightbox-gone-wild/ + +Created : January 13, 2006 +Modified : February 1, 2006 + +- - - - - - - - - - - - - - - - - - - - - */ + +#lightbox { + display: none; + position: absolute; + top: 150px; + left: 50%; + z-index: 300; + width: 500px; + margin-left: -265px; + border: 1px solid #000; + text-align: left; + padding: 1em; + background: #FFF; +} + +#overlay{ + display:none; + position:absolute; + top:0; + left:0; + width:100%; + height:100%; + z-index:200; + background-color:#000; + -moz-opacity: 0.75; + opacity:.75; + filter: alpha(opacity=75); +} +#overlay[id]{ + position:fixed; +} + +#lightbox.done #lbLoadMessage{ + display:none; +} +#lightbox.done #lbContent{ + display:block; +} +#lightbox.loading #lbContent{ + display:none; +} +#lightbox.loading #lbLoadMessage{ + display:block; +} + +#lightbox.done img{ + width:100%; + height:100%; +} + +#lightbox select { + max-width: 100%; +} diff --git a/app/assets/stylesheets/search.css b/app/assets/stylesheets/search.css new file mode 100644 index 0000000..b218b92 --- /dev/null +++ b/app/assets/stylesheets/search.css @@ -0,0 +1,937 @@ + +.search-category-context { + margin: 30px 0px; +} +.controller-search #search-page { + position: relative; /* to the text appear on MSIE 6 */ + width: 100%; +} +.controller-search .current-cat-path { + padding-left: 25px; +} +.controller-search .current-cat-path * { + white-space: nowrap; +} +.controller-search #search-results { + margin-top: 5px; +} +.controller-search #search-whole-site { + text-align: right; + margin-top: -15px; +} +.controller-search #search-results h3 { + margin: 0px 0px 0px 20px; + position: relative; +} +.controller-search .search-results-box { + float: left; + width: 49%; + position: relative; +} +.controller-search .only-one-result-box .search-results-box { + width: auto; + float:none; +} +.controller-search .only-one-result-box .search-results-innerbox { + max-height: none; + width: 100%; + overflow: visible; + height:auto; + padding:inherit; +} +#search-results li a.icon { + display: block; + border: none; + padding-left: 20px; + background-repeat: no-repeat; +} +#search-results li .icon:hover { + background-color: transparent; +} +.controller-search .has_cat_list #product-categories-menu { + width: 20%; + float: left; +} +.controller-search #product-categories-menu a { + display: block; +} +.controller-search .msie6 #product-categories-menu a { + display: inline; +} +.controller-search #product-categories-menu div { + position: relative; +} +.controller-search #product-categories-menu ul { + position: relative; + margin: 0px 0px 0px 20px; + padding: 0px; +} +.controller-search #product-categories-menu small { + font-size: 75%; +} +.controller-search #product-categories-menu .cat-parent { + position: relative; + font-weight: bold; + margin: 2px 0px; + padding: 5px 0px 0px 10px; + list-style: none; + list-style-image: none; +} +.controller-search #product-categories-menu .cat-empty { + list-style: none; + color: #999; +} +.controller-search #product-categories-menu .cat-parent ul { + padding-bottom: 5px; + font-weight: normal; + font-size: 12px; +} +.controller-search #product-categories-menu .cat-parent li { + font-weight: normal; + margin: 0px; + padding: 0px; +} +.controller-search #product-categories-menu .sub-opening, +.controller-search #product-categories-menu .sub-closeing { + background-color: #FF8; +} +.controller-search #product-categories-menu .sub-opened { + background-color: #FF0; +} +.controller-search .msie .search-results-box.odd { + float: right; +} +.controller-search #content .search-results-box a.see-more { + z-index: 10; + position: absolute; + bottom: 0px; + right: 25px; + color: black; + text-decoration: none; + font-weight: bold; + font-size: 11px; + line-height: 11px; + background: #B8B8B8; + border: 1px solid #B8B8B8; + border-top: none; + padding: 0px 5px 2px 5px; +} +.controller-search #content .search-results-box a.see-more:hover { + background: #729FCF; + color: #FFF; + text-decoration: none; +} +.controller-search .multiple-results-boxes .search-results-innerbox.common-profile-list-block { + overflow: hidden; +} +.controller-search .search-results-innerbox { + padding: 8px 10px 10px 10px; + overflow: auto; + overflow-x: hidden; + height: 230px; + position: relative; /* work-arround-bug fo MSIE */ +} +.controller-search .search-results-innerbox hr { + clear: both; + display: block; + height: 0; + margin: 0; + overflow: hidden; + padding: 0; + visibility: hidden; +} +.controller-search .msie .search-results-innerbox hr { + display: inline; + clear: both; + margin: -10px 0px 0px 0px; + height: 0px; + visibility: hidden; +} +.search-results-type-article ul, +.controller-search #content .search-results-type-article li, +.controller-search #content .search-results-type-event ul, +.controller-search #content .search-results-type-event li { + margin: 0px; + padding: 0px; + list-style: none; +} +.controller-search #content .search-results-type-event li { + padding: 2px 0px 4px 0px; +} +.controller-search #content .search-results-type-article li { + padding: 10px 0; + background-repeat: no-repeat; +} +.controller-search #content .search-results-type-article li:hover, +.controller-search #content .search-results-type-event li:hover { + background-color: transparent; +} +.controller-search .search-results-type-article .item_meta, +.controller-search .search-results-type-event .item_meta { + font-size: 10px; + color: #888; +} +#content .only-one-result-box .search-results-enterprises li.vcard { + margin: 4.5px; +} +#content .search-results-box .vcard { + margin: 4.5px; + } +.search-results-type-article a { + min-height: 16px; + overflow: hidden; +} +.search-results-type-article ul { + margin: 0; + padding: 0; +} +.search-results-type-article li.article-item, +.search-tagged-items li.article-item, +.only-one-result-box li.search-product-item { + border-bottom: 1px solid #000; +} +.search-result-title { + display:inline-block; + font-size:1.2em; + font-weight:bold; + margin: 0 0 5px 0; + float: none; + color: #006577; +} +.search-product-item-second-column .search-result-title { + display:block; + margin:0 0 15px 0; +} +.search-article-tags, +.search-uploaded-file-description, +.search-article-author-name, +.search-article-categories, +.search-product-supplier, +.search-product-description, +.search-article-event-date { + margin:5px 0 0 0; + clear:both; +} +.search-article-description { + clear: both; +} +.search-article-body { + width: 80%; + margin-bottom: 7px; +} +.search-field-none { + color: #ccc; +} +.search-field-label { + font-size: 10px; + font-weight: bold; + text-transform: uppercase; + width: 110px; + display: block; +} +.search-product-item-third-column .search-field-label { + width: 150px; +} +.search-article-tags .search-article-tag, +.search-article-categories .search-article-category { + background: #BBB; + padding:0 2px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; + display: inline-block; + height:14px; + line-height: 14px; + color: #FFF; + font-size: 10px; +} +.search-article-tags a.search-article-tag, +.search-article-categories a.search-article-category { + text-decoration:none; +} +.search-article-tags a:hover.search-article-tag, +.search-article-categories a:hover.search-article-category { + background: #555753; + text-decoration:none; +} +.search-article-categories .search-article-category { + background: #B1DFEF; + color: #000; +} +.search-article-categories a:hover.search-article-category { + background: #1FA1D0; +} + +.search-article-author-changes { + padding-top: 5px; + float:right; + color:#999; + clear:both; +} +.search-article-author-changes a { + color:#999; + text-decoration:underline; +} +.search-article-author-changes a:hover { + color:#555; + text-decoration:none; +} +.search-results-innerbox .menu-submenu { + bottom: 107px; +} +.controller-search .search-results-type-product, +.controller-search .search-results-type-event { + overflow: auto; +} +li.search-product-item { + position: relative; + height: 60px; + overflow: hidden; + clear: both; +} +.search-product-price.with-discount { + text-decoration: line-through; + font-weight: normal; + font-size: 80%; + color: #444; +} +.search-product-price-textid { + clear: both; + float: left; + font-size: 70%; + padding: 4px 3px 0px 0px; + line-height: 14px; +} +.search-product-price { + float: left; + font-size: 120%; + font-weight: bold; + line-height: 14px; + padding: 4px 0px 0px 0px; +} +.search-product-unit { + float: left; + line-height: 14px; + font-size: 80%; + padding: 4px 0px 0px 0px; +} +.search-product-input-dots-to-price { + clear:both; + float:left; + background: url("/images/dotleaders.png") left 8px repeat-x; + width: 24em; + margin: 4px 0; +} +.search-product-input-name { + display: inline-block; + float: left; + padding-right: .5ex; + background-color: #EDEDED; + max-width: 161px; +} +.search-product-input-price { + display: inline-block; + float: right; + padding-left: .5ex; + background-color: #EDEDED; + max-width: 161px; +} +.search-product-inputs-info { + clear: both; + float: left; + border-top: 2px dotted #CCC; + width: 90%; + margin: 7px 0px; + padding-top: 7px; +} +.search-product-percentage-from-solidarity-economy { + padding-left: 19px; + background-image: url("/images/ecosol-tree-sprite.png"); + float: left; + font-size: 70%; + background-repeat: no-repeat; + height: 21px; + line-height: 21px; +} +.search-product-ecosol-percentage-icon-0 { + background-image: none; +} +.search-product-ecosol-percentage-icon-25 { + background-position: 0px -21px; +} +.search-product-ecosol-percentage-icon-50 { + background-position: 0px -42px; +} +.search-product-ecosol-percentage-icon-75, +.search-product-ecosol-percentage-icon-100 { + background-position: 0px -63px; +} +.search-product-price-details { + float: right; + text-transform: uppercase; + font-size: 80%; + line-height: 17px; +} +.controller-search #category-comments { + margin-left: 55%; +} +.controller-search #content .search-results-comments ul, +.controller-search #content .search-results-comments li, +.controller-search #content #category-comments ul, +.controller-search #content #category-comments li { + margin: 0px; + padding: 0px; + list-style: none; + color: #888; +} +.controller-search .search-results-comments .comment-picture, +.controller-search #category-comments .comment-picture { + width: 20px; + height: 20px; + margin: -2px 5px 0px 0px; +} +.controller-search #content .search-results-type-product ul, +.controller-search #content .search-results-type-product li { + margin: 0px; + padding: 0px; + list-style: none; + list-style-image: none; + font-size: 10px; + text-align: left; +} +.controller-search #content .search-results-type-product li strong { + font-size: 12px; + margin-left: 5px; +} +.controller-search #content .search-results-type-product li { + padding: 0px 0px 10px 0; + margin:0 0 10px 0; + height: auto; + min-height: 90px; + display:block; + width:100%; +} +.controller-search #content .search-results-type-product li li { + padding-bottom: 0px; +} +.controller-search .msie #content .search-results-type-product li li { + line-height: 12px; +} +.controller-search .product-pic span { + display: none; +} +.controller-search #content .search-results-type-product ul ul { + margin-left: 55px; +} +.controller-search .search-results-type-empty div { + text-align: center; + color: #DDD; + font-weight: bold; + font-size: 30px; + padding: 70px 10px 0px 0px; +} +.controller-search .profile-info { + text-align: left; +} +.controller-search #search-column-left { + float: left; + width: 21.5%; +} +#search-column-left .button-bar { + margin-top: 0px; +} +.controller-search #search-column-right { + float: right; + width: 76.5%; +} +.controller-search #facets-menu { + min-height: 300px; +} +.controller-search #facets-menu div { + position: relative; +} +.facets-applied { + float: left; + padding: 5px 0px 0px 0px; + width: 80%; +} +.facets-applied-label { + display: block; + font-size: 1em; + font-style: italic; + padding: 0 0 5px 0; +} +.facet-selected { + display: block; + color: #000; + font-size:0.9em; + float: left; + padding:4px 4px 4px 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -o-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px; + margin: 0px 5px 5px 0; + background: #B1B1B1; + text-decoration: none; +} +.facet-selected-label { + float: left; + margin: 0px 3px; + text-transform: uppercase; + font-weight: bold; +} +.facet-selected-name { + float: left; + margin: 0px 3px; + font-style:italic; +} +.facet-selected-remove { + float:left; + background: url("../images/icon_filter_exclude.png") no-repeat; + width: 12px; + height: 12px; + margin: 0px 4px; + background-position: 0px 2px; +} +.controller-search a:hover.facet-selected { + text-decoration: underline; +} +#facets-menu .facet-menu { + border-bottom: 1px solid #000; + margin-bottom: 15px; + padding-bottom: 10px; +} +#facets-menu .facet-menu-label { + background:#E8E8E8; + text-transform:uppercase; + padding:10px 10px 2px 10px; + margin:0 0 15px 0; +} +#facets-menu .facet-menu-options a { + font-size: 1em; +} +.facet-menu-item { + display: inline-block; + margin-bottom: 2px; + width: 100%; + padding:2px 0; +} +.facet-menu-less-options .facet-result-link-selected { + background-color: #B1B1B1; +} +.facet-menu-less-options .facet-result-link-selected .facet-result-extra-label, +.facet-menu-less-options .facet-result-link-selected .facet-result-count { + color: #777; +} +.facet-menu-less-options .facet-result-link-selected a { + border-left: 4px solid #000000; + padding-left: 4px; + color: #000 !important; +} +.facet-menu-more-options .facet-result-link-selected a { + border-left: 4px solid #000000; + padding-left: 4px; +} +.facet-menu-more-options { + width: 100%; + min-height: 32px; + background-position: center center; +} +.facet-result-extra-label { + font-size: 0.9em; + color: #000; +} +.facet-result-count { + font-size: 0.8em; + color: #959595; +} +li.search-product-item { + display:block; + float:none overflow:visible; + padding:10px 0; + margin:10px 0; + border-bottom:1px solid #ccc; + height:auto; + max-height:none; +} +li.search-product-item hr { + display:block; + margin:0; + clear: both; + border: none; + background: none; +} +.search-product-item-first-column, +.search-product-item-second-column, +.search-product-item-third-column { + float: left; + margin:0 !important; +} +.search-product-item-second-column { + width:54%; +} +.search-product-item-first-column { + width: 21%; + padding: 0 2% 0 0; +} +.search-product-item-third-column { + width: 21%; + padding: 0 0 0 2%; +} +.search-product-qualifier { + clear: both; + float: left; +} +.search-product-certifier { + float: left; +} +.only-one-result-box .search-enterprise-item { + clear:both; + padding:10px 0 !important; +} +.only-one-result-box .common-profile-list-block { + float: left; +} +.search-enterprise-item { + border-bottom: 1px solid #ccc; +} +.search-enterprise-item-column-left { + float:left; + width:10%; +} +.search-enterprise-item-column-left .common-profile-list-block { + margin:0 10px 0 0; +} +.search-enterprise-item-column-right { + float:right; + width: 83%; + padding-top: 5px; +} +.product-item-second-column, +.search-enterprise-item .search-enterprise-region-label, +.search-enterprise-item .search-enterprise-categorization-parent { + clear: both; + float: left; + display: inline-block; + font-weight: bold; + width: 120px; + text-transform:uppercase; +} +.common-profile-list-block span.search-enterprise-region-name, +.common-profile-list-block .search-enterprise-categorization-children { + display:inline-block; + width: 480px; +} +.search-enterprise-item .search-enterprise-item-column-right { + font-size:10px; +} +.search-enterprise-category { + clear: both; + float: left; + +} +.search-enterprise-item-column-right .search-enterprise-description { + margin: 0 0 5px; +} +.search-results-header { + font-size: 0.9em; + padding: 6px 0px 0px 0px; + margin:0 0 5px 0; + border-bottom: 2px dotted #999; +} +#search-filter-title { + font-weight: bold; + font-size: 130%; + line-height: 35px; +} +.search-results-header.search-no-results { + border-bottom: 0px; +} +.search-results-header .search-results-header-information { + border-bottom: 1px solid #555; + height: 20px; +} +#search-empty-query-error { + background: #F2F2F2; + border: 1px solid #CCCCCC; + padding: 10px; + width: 538px; + position: absolute; + display: none; + color: #ff0000 +} + + +/* Search field and button */ + +.search-field input { + vertical-align: middle; +} +.search-field .formfield { + height: 34px; + display: inline-block; +} +.box-1 .search-field .formfield input { + height: 25px; + width: 530px; +} +.box-2 .search-field .formfield input, +.box-3 .search-field .formfield input { + width: 165px; +} +#public-profile-search .search-field .formfield input { + height: 25px; + width: 395px; +} + +.search-field .formfield { + height: 34px; + display: inline-block; +} +#content #public-profile-search form .search-field input.button.submit { + width: 75px; +} + +form .search-field input:hover.button.submit { + background-color:#444; +} +.search-hint { + clear: both; + padding: 10px 0 10px 10px; + border-bottom: 1px solid #555; + font-size: 0.9em; +} +#content form .search-field input:hover.button.submit { + background-color:#444; +} + +#content form .search-field input.button.submit { + height: 30px; + max-height:none; +} + + +.facet-any-result-found { + font-size: 75%; + color: #AAA; + margin-bottom: 9px; + display: block; +} +.total-pages-found { + float: left; + width: 50%; + text-align: left; +} +.current-page { + float: right; + width: 50%; + text-align: right; +} +.facet-menu a.facet-options-toggle { + color: #000; + background-image: url("../images/icon_more_options.png"); + background-repeat: no-repeat; + padding: 0 0 0 20px; +} +.facet-menu a.facet-options-toggle.facet-more-options, +.facet-menu a.facet-options-toggle { + background-position: 0 0; +} +.facet-menu a.facet-options-toggle.facet-less-options { + background-position: 0 -32px; +} + +.search-content-first-column { + width: 130px; + min-height: 98px; + position: absolute; +} +.search-content-second-column { + margin-left: 140px; + width: auto; +} +.search-content-second-column tr:hover { + background-color: none; +} +.search-content-second-column td { + height: auto; +} +.search-results-articles li { + position: relative; +} + +a.search-blog-sample-item.icon, +.search-folder-items a, +.search-forum-items a, +.search-blog-items a { + border: none; + margin-bottom: 3px; + display: block; +} +ul.clean-list .search-content-second-column { + width:795px; +} +ul.clean-list .search-gallery-content { + width:655px +} +a.search-image-pic { + border: 1px solid #F2F2F2; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; + -moz-box-shadow: 2px 2px 1px #999999; + -webkit-box-shadow: 2px 2px 1px #999999; + -o-box-shadow: 2px 2px 1px #999999; + -khtml-box-shadow: 2px 2px 1px #999999; + box-shadow: 2px 2px 1px #999999; + display: block; + height: 98px; + width: 130px; + background-position: center center !important; + background-repeat: no-repeat; +} +.search-no-image { + border: 1px solid #777; + height: 98px; + width: 90%; + color: #777; + text-align: center; + font-size: 9px; + font-weight: bold; + text-transform: uppercase; + letter-spacing: 1px; + user-select: none; + border-radius: 5px; + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -khtml-border-radius: 5px; + display: table; +} +.search-no-image span { + display: table-cell; + vertical-align: middle; +} +.search-gallery-items a.search-image-pic { + float:left; + margin:0 2px; +} +.search-gallery .search-gallery-items { + float: left; + margin: 0 10px 0 0; + min-width: 130px; +} +.search-content-first-column .search-image-container .search-image-pic +.search-uploaded-file-first-column .search-image-container .search-image-pic { + display: block; + margin: 0 auto; + float: none; +} +.search-gallery .search-gallery-items .search-image-container { + display: block; + width: 50%; + float: left; +} +.search-gallery .search-gallery-items .search-image-container a.search-image-pic { + margin: 0 auto; + display:block; + float: none; +} +.search-gallery .search-gallery-content { + float: left; + width: 435px; +} +.search-content-first-column .icon-application-vnd-oasis-opendocument-text, +.search-content-first-column .icon-application-vnd-oasis-opendocument-spreadsheet, +.search-content-first-column .icon-text-content { + display:block; + width: 16px; + height: 16px; + -moz-border-radius: 0; + -webkit-border-radius: 0; + -o-border-radius: 0; + -khtml-border-radius: 0; + border-radius: 0; + margin: auto; + +} +.search-uploaded-file-line { + clear: both; + float: left; +} +.search-image-topic { + font-weight: bold; +} +.search-image-pic { + background-repeat: no-repeat; + background-position: 50% 50%; + width: 130px; + height: 130px; + display: block; +} +#search-input { + font-size: 140%; + color: #000; + vertical-align: middle; +} +#search-input.blur { + font-size: 140%; + font-style: italic; + color: #aaa; +} +.search-ordering { + float: right; + font-size: 0.9em; + font-style: italic; + margin: 0; + padding: 5px 0; +} +.search-ordering select { + display: block; + font-size:1.2em; + margin: 5px 0 0; + width: 100%; +} +.search-relevance { + font-size: smaller; + font-style: italic; + color: gray; +} +.search-relevance, +.search-result-text { + margin-left: 40px; +} + +/******** tagged-items list ***************************/ + +.search-tagged-items { + margin-top: 1em; +} +.controller-search .search-tagged-items li { + padding-left: 20px; + background-repeat: no-repeat; + background-position: left 2px; + border: none; +} +.controller-search .search-tagged-items .icon:hover { + background-color: transparent; +} +.controller-search .search-tagged-items .item_meta { + margin-top: 2px; +} + +.article-item { + clear: both; + display: block; + border-bottom:1px solid #ccc; + margin-bottom: 10px; +} diff --git a/app/assets/stylesheets/slideshow.css b/app/assets/stylesheets/slideshow.css new file mode 100644 index 0000000..f2cb2f6 --- /dev/null +++ b/app/assets/stylesheets/slideshow.css @@ -0,0 +1,55 @@ +body { + background-color:#000; + color:white; + padding-top:20px; + text-align: center; + font-family: Verdana, sans-serif; +} + +/* These hieghts and widths should be edited to your images */ +ul#slideshow { + padding-left: 0; + margin: 0 auto; +} + +a, a:link, a:visited { + color: #FFF; + text-decoration: bold; +} + +.back-button { + position: absolute; + right: 10px; + margin: 0px; + top: 3px +} + +.pika_main { + width: 680px; + height: 510px; + padding-right: 20px; + margin: 0 auto; + overflow: hidden; +} + +#slideshow li { + margin: 5px; + float: left; + border: 2px solid #222; +} + +/* thats all you NEED to edit. But continue if you'd like. */ +ul#slideshow li img{position:relative;cursor:pointer;} +.pika_main img{border:5px solid #222;} +.pika_main{position: relative;margin:0 auto;} +.pikachoose li{float:left;position:relative;overflow:hidden;list-style:none;} +.pika_play{position:absolute;top:10px;right:20px;z-index:1;} +.pika_play a{position:relative;margin-left:auto;cursor:pointer;} +.pika_play img{border:none !important;} +.pika_caption{width:100%;height:30px;text-align:center;} +.pika_navigation a{font-size: 12px;color:white;text-decoration: none;} +.pika_navigation a:hover{text-decoration: underline;} +.pika_navigation{padding-top:10px;clear:both;text-align:center;} + +/* SliderJS */ +.sliderjs{margin:0 auto;} diff --git a/app/assets/stylesheets/tasks.css b/app/assets/stylesheets/tasks.css new file mode 100644 index 0000000..425117a --- /dev/null +++ b/app/assets/stylesheets/tasks.css @@ -0,0 +1,46 @@ +.task_box { + position: relative; + border: 1px solid #888; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -khtml-border-radius: 10px; + border-radius: 10px; + padding: 6px 4px 9px 4px; + margin-top: 5px; + background: #EEE; +} + +.task_title { + margin: 0px; + display: block; + line-height: 28px; + font-size: 120%; +} + +.task_icon { + float: left; + margin-right: 10px; + width: 50px; + height: 50px; + text-align: center; +} + +.task_decisions { + float: right; + padding-right: 5px; +} + +.task_information { + line-height: 18px; + padding: 2px 0px; + clear: right; +} + +.task_information p { + margin: 0px; +} + +.task_target { + text-decoration: underline; + font-weight: bold; +} diff --git a/app/assets/stylesheets/thickbox.css b/app/assets/stylesheets/thickbox.css new file mode 100644 index 0000000..ab42e0e --- /dev/null +++ b/app/assets/stylesheets/thickbox.css @@ -0,0 +1,163 @@ +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +/**{padding: 0; margin: 0;}*/ + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_window { + font: 12px Arial, Helvetica, sans-serif; + color: #333333; +} + +#TB_secondLine { + font: 10px Arial, Helvetica, sans-serif; + color:#666666; +} + +#TB_window a:link {color: #666666;} +#TB_window a:visited {color: #666666;} +#TB_window a:hover {color: #000;} +#TB_window a:active {color: #666666;} +#TB_window a:focus{color: #666666;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_overlay { + position: fixed; + z-index:200; + top: 0px; + left: 0px; + height:100%; + width:100%; +} + +.TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;} +.TB_overlayBG { + background-color:#000; + filter:alpha(opacity=75); + -moz-opacity: 0.75; + opacity: 0.75; +} + +* html #TB_overlay { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_window { + position: fixed; + background: white; + z-index: 202; + color:#000000; + display:none; + border: 1px solid #000; + text-align:left; + top:50%; + left:50%; +} + +* html #TB_window { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_window img#TB_Image { + display:block; + margin: 15px 0 0 15px; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + border-top: 1px solid #666; + border-left: 1px solid #666; +} + +#TB_caption{ + height:25px; + padding:7px 30px 10px 25px; + float:left; +} + +#TB_closeWindow{ + height:25px; + padding:11px 25px 10px 0; + float:right; +} + +#TB_closeAjaxWindow{ + padding:7px 10px 5px 0; + margin-bottom:1px; + text-align:right; + float:right; +} + +#TB_ajaxWindowTitle{ + float:left; + padding:7px 0 5px 10px; + margin-bottom:1px; +} + +#TB_title{ + background-color:#e8e8e8; + height:27px; +} + +#TB_ajaxContent{ + clear:both; + padding:2px 15px 15px 15px; + overflow:auto; + text-align:left; + line-height:1.4em; +} + +#TB_ajaxContent.TB_modal{ + padding:15px; +} + +#TB_ajaxContent p{ + padding:5px 0px 5px 0px; +} + +#TB_load{ + position: fixed; + display:none; + height:13px; + width:208px; + z-index:203; + top: 50%; + left: 50%; + margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */ +} + +* html #TB_load { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_HideSelect{ + z-index:199; + position:fixed; + top: 0; + left: 0; + background-color:#fff; + border:none; + filter:alpha(opacity=0); + -moz-opacity: 0; + opacity: 0; + height:100%; + width:100%; +} + +* html #TB_HideSelect { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_iframeContent{ + clear:both; + border:none; + margin-bottom:-1px; + margin-top:1px; + _margin-bottom:1px; +} diff --git a/app/assets/stylesheets/tinymce.css b/app/assets/stylesheets/tinymce.css new file mode 100644 index 0000000..661117a --- /dev/null +++ b/app/assets/stylesheets/tinymce.css @@ -0,0 +1,27 @@ +body.mceContentBody, +body.mceContentBody th, +body.mceContentBody td { + font-size: 12px; +} + +object, embed { + border:1px dotted #cc0000; + background-position:center; + background-repeat:no-repeat; + background-color:#ffffcc; + display: block; + width: 150px; + height: 150px; + background-image: url(../designs/icons/tango/Tango/22x22/actions/media-playback-start.png); +} + +body.mceContentBody h2 { font-size: 18px } +body.mceContentBody h3 { font-size: 16px } +body.mceContentBody h4 { font-size: 14px } +body.mceContentBody h5 { font-size: 13px } +body.mceContentBody h6 { font-size: 12px } + +body.mceContentBody h1, body.mceContentBody h2, body.mceContentBody h3, +body.mceContentBody h4, body.mceContentBody h5, body.mceContentBody h6 { + margin: 10px 0px; +} diff --git a/app/assets/stylesheets/token-input-facebook.css b/app/assets/stylesheets/token-input-facebook.css new file mode 100644 index 0000000..8edd461 --- /dev/null +++ b/app/assets/stylesheets/token-input-facebook.css @@ -0,0 +1,126 @@ +/* Example tokeninput style #2: Facebook style */ +ul.token-input-list-facebook { + overflow: hidden; + height: auto !important; + height: 1%; + width: 400px; + border: 1px solid #8496ba; + cursor: text; + font-size: 12px; + font-family: Verdana; + min-height: 1px; + z-index: 999; + margin: 0; + padding: 0; + background-color: #fff; + list-style-type: none; + clear: left; +} + +ul.token-input-list-facebook li input { + border: 0; + width: 100px; + padding: 3px 8px; + background-color: white; + margin: 2px 0; + -webkit-appearance: caret; +} + +li.token-input-token-facebook { + overflow: hidden; + height: auto !important; + height: 15px; + margin: 3px; + padding: 1px 3px; + background-color: #eff2f7; + color: #000; + cursor: default; + border: 1px solid #ccd5e4; + font-size: 11px; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + float: left; + white-space: nowrap; +} + +li.token-input-token-facebook p { + display: inline; + padding: 0; + margin: 0; +} + +li.token-input-token-facebook span { + color: #a6b3cf; + margin-left: 5px; + font-weight: bold; + cursor: pointer; +} + +li.token-input-selected-token-facebook { + background-color: #5670a6; + border: 1px solid #3b5998; + color: #fff; +} + +li.token-input-input-token-facebook { + float: left; + margin: 0; + padding: 0; + list-style-type: none; +} + +div.token-input-dropdown-facebook { + position: absolute; + width: 400px; + background-color: #fff; + overflow: hidden; + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + cursor: default; + font-size: 11px; + font-family: Verdana; + z-index: 1; +} + +div.token-input-dropdown-facebook p { + margin: 0; + padding: 5px; + font-weight: bold; + color: #777; +} + +div.token-input-dropdown-facebook ul { + margin: 0; + padding: 0; +} + +div.token-input-dropdown-facebook ul li { + background-color: #fff; + padding: 3px; + margin: 0; + list-style-type: none; +} + +div.token-input-dropdown-facebook ul li.token-input-dropdown-item-facebook { + background-color: #fff; +} + +div.token-input-dropdown-facebook ul li.token-input-dropdown-item2-facebook { + background-color: #fff; +} + +div.token-input-dropdown-facebook ul li em { + font-weight: bold; + font-style: normal; +} + +div.token-input-dropdown-facebook ul li.token-input-selected-dropdown-item-facebook { + background-color: #3b5998; + color: #fff; +} +.token-input-blur-text-facebook { + font-style: italic; + color: #AAA; +} diff --git a/app/assets/stylesheets/token-input-facet.css b/app/assets/stylesheets/token-input-facet.css new file mode 100644 index 0000000..9f04e95 --- /dev/null +++ b/app/assets/stylesheets/token-input-facet.css @@ -0,0 +1,119 @@ +/* Example tokeninput style #1: Token vertical list*/ +ul.token-input-list-facet { + overflow: hidden; + height: auto !important; + height: 1%; + width: 95%; + border: 1px solid #999; + cursor: text; + font-size: 12px; + font-family: Verdana; + z-index: 999; + margin: 0; + padding: 0; + background-color: #fff; + list-style-type: none; + clear: left; +} + +ul.token-input-list-facet li { + list-style-type: none; +} + +ul.token-input-list-facet li input { + border: 0; + width: 350px; + padding: 3px 8px; + background-color: white; + -webkit-appearance: caret; +} + +li.token-input-token-facet { + overflow: hidden; + height: auto !important; + height: 1%; + margin: 3px; + padding: 3px 5px; + background-color: #d0efa0; + color: #000; + font-weight: bold; + cursor: default; + display: block; +} + +li.token-input-token-facet p { + float: left; + padding: 0; + margin: 0; +} + +li.token-input-token-facet span { + float: right; + color: #777; + cursor: pointer; +} + +li.token-input-selected-token-facet { + background-color: #08844e; + color: #fff; +} + +li.token-input-selected-token-facet span { + color: #bbb; +} + +div.token-input-dropdown-facet { + position: relative; + width: 95%; + height: 150px; + max-height: 200px; + background-color: #E5F4FB; + overflow: auto; + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + cursor: default; + font-size: 12px; + font-family: Verdana; + z-index: 1; +} + +div.token-input-dropdown-facet p { + margin: 0; + padding: 5px; + font-weight: bold; + color: #777; +} + +div.token-input-dropdown-facet ul { + margin: 0; + padding: 0; +} + +div.token-input-dropdown-facet ul li { + background-color: #E5F4FB; + padding: 3px; + list-style-type: none; +} + +div.token-input-dropdown-facet ul li.token-input-dropdown-item-facet { + background-color: #E5F4FB; +} + +div.token-input-dropdown-facet ul li.token-input-dropdown-item2-facet { + background-color: #E5F4FB; +} + +div.token-input-dropdown-facet ul li em { + font-weight: bold; + font-style: normal; +} + +div.token-input-dropdown-facet ul li.token-input-selected-dropdown-item-facet { + background-color: #d0efa0; +} + +.token-input-blur-text-facet { + font-style: italic; + color: #AAA; +} diff --git a/app/assets/stylesheets/token-input-mac.css b/app/assets/stylesheets/token-input-mac.css new file mode 100644 index 0000000..2ddcd13 --- /dev/null +++ b/app/assets/stylesheets/token-input-mac.css @@ -0,0 +1,208 @@ +/* Example tokeninput style #2: Mac Style */ +fieldset.token-input-mac { + position: relative; + padding: 0; + margin: 5px 0; + background: #fff; + width: 400px; + border: 1px solid #A4BDEC; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + +fieldset.token-input-mac.token-input-dropdown-mac { + border-radius: 10px 10px 0 0; + -moz-border-radius: 10px 10px 0 0; + -webkit-border-radius: 10px 10px 0 0; + box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); + -moz-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); + -webkit-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); +} + +ul.token-input-list-mac { + overflow: hidden; + height: auto !important; + height: 1%; + cursor: text; + font-size: 12px; + font-family: Verdana; + min-height: 1px; + z-index: 999; + margin: 0; + padding: 3px; + background: transparent; +} + +ul.token-input-list-mac.error { + border: 1px solid #C52020; +} + +ul.token-input-list-mac li { + list-style-type: none; +} + +li.token-input-token-mac p { + display: inline; + padding: 0; + margin: 0; +} + +li.token-input-token-mac span { + color: #a6b3cf; + margin-left: 5px; + font-weight: bold; + cursor: pointer; +} + +/* TOKENS */ + +li.token-input-token-mac { + font-family: "Lucida Grande", Arial, serif; + font-size: 9pt; + line-height: 12pt; + overflow: hidden; + height: 16px; + margin: 3px; + padding: 0 10px; + background: none; + background-color: #dee7f8; + color: #000; + cursor: default; + border: 1px solid #a4bdec; + border-radius: 15px; + -moz-border-radius: 15px; + -webkit-border-radius: 15px; + float: left; +} + +li.token-input-highlighted-token-mac { + background-color: #bbcef1; + border: 1px solid #598bec; + color: #000; +} + +li.token-input-selected-token-mac { + background-color: #598bec; + border: 1px solid transparent; + color: #fff; +} + +li.token-input-highlighted-token-mac span.token-input-delete-token-mac { + color: #000; +} + +li.token-input-selected-token-mac span.token-input-delete-token-mac { + color: #fff; +} + +li.token-input-input-token-mac { + border: none; + background: transparent; + float: left; + padding: 0; + margin: 0; +} + +li.token-input-input-token-mac input { + border: 0; + width: 100px; + padding: 3px; + background-color: transparent; + margin: 0; +} + +div.token-input-dropdown-mac { + position: absolute; + border: 1px solid #A4BDEC; + border-top: none; + left: -1px; + right: -1px; + background-color: #fff; + overflow: hidden; + cursor: default; + font-size: 10pt; + font-family: "Lucida Grande", Arial, serif; + padding: 5px; + border-radius: 0 0 10px 10px; + -moz-border-radius: 0 0 10px 10px; + -webkit-border-radius: 0 0 10px 10px; + box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); + -moz-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); + -webkit-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); + clip:rect(0px, 1000px, 1000px, -10px); +} + +div.token-input-dropdown-mac p { + font-size: 8pt; + margin: 0; + padding: 0 5px; + font-style: italic; + color: #aaa; +} + +div.token-input-dropdown-mac h3.token-input-dropdown-category-mac { + font-family: "Lucida Grande", Arial, serif; + font-size: 10pt; + font-weight: bold; + border: none; + padding: 0 5px; + margin: 0; +} + +div.token-input-dropdown-mac ul { + margin: 0; + padding: 0; +} + +div.token-input-dropdown-mac ul li { + list-style-type: none; + cursor: pointer; + background: none; + background-color: #fff; + margin: 0; + padding: 0 0 0 25px; +} + +div.token-input-dropdown-mac ul li.token-input-dropdown-item-mac { + background-color: #fff; +} + +div.token-input-dropdown-mac ul li.token-input-dropdown-item-mac.odd { + background-color: #ECF4F9; + border-radius: 15px; + -moz-border-radius: 15px; + -webkit-border-radius: 15px; +} + +div.token-input-dropdown-mac ul li.token-input-dropdown-item-mac span.token-input-dropdown-item-description-mac { + float: right; + font-size: 8pt; + font-style: italic; + padding: 0 10px 0 0; + color: #999; +} + +div.token-input-dropdown-mac ul li strong { + font-weight: bold; + text-decoration: underline; + font-style: none; +} + +div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac, +div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac.odd { + background-color: #598bec; + color: #fff; + border-radius: 15px; + -moz-border-radius: 15px; + -webkit-border-radius: 15px; +} + +div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac span.token-input-dropdown-item-description-mac, +div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac.odd span.token-input-dropdown-item-description-mac { + color: #fff; +} +.token-input-blur-text-mac { + font-style: italic; + color: #AAA; +} diff --git a/app/assets/stylesheets/token-input.css b/app/assets/stylesheets/token-input.css new file mode 100644 index 0000000..45062e9 --- /dev/null +++ b/app/assets/stylesheets/token-input.css @@ -0,0 +1,116 @@ +/* Example tokeninput style #1: Token vertical list*/ +ul.token-input-list { + overflow: hidden; + height: auto !important; + height: 1%; + width: 400px; + border: 1px solid #999; + cursor: text; + font-size: 12px; + font-family: Verdana; + z-index: 999; + margin: 0; + padding: 0; + background-color: #fff; + list-style-type: none; + clear: left; +} + +ul.token-input-list li { + list-style-type: none; +} + +ul.token-input-list li input { + border: 0; + width: 350px; + padding: 3px 8px; + background-color: white; + -webkit-appearance: caret; +} + +li.token-input-token { + overflow: hidden; + height: auto !important; + height: 1%; + margin: 3px; + padding: 3px 5px; + background-color: #d0efa0; + color: #000; + font-weight: bold; + cursor: default; + display: block; +} + +li.token-input-token p { + float: left; + padding: 0; + margin: 0; +} + +li.token-input-token span { + float: right; + color: #777; + cursor: pointer; +} + +li.token-input-selected-token { + background-color: #08844e; + color: #fff; +} + +li.token-input-selected-token span { + color: #bbb; +} + +div.token-input-dropdown { + position: absolute; + width: 400px; + background-color: #fff; + overflow: auto; + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + cursor: default; + font-size: 12px; + font-family: Verdana; + z-index: 1; +} + +div.token-input-dropdown p { + margin: 0; + padding: 5px; + font-weight: bold; + color: #777; +} + +div.token-input-dropdown ul { + margin: 0; + padding: 0; +} + +div.token-input-dropdown ul li { + background-color: #fff; + padding: 3px; + list-style-type: none; +} + +div.token-input-dropdown ul li.token-input-dropdown-item { + background-color: #fafafa; +} + +div.token-input-dropdown ul li.token-input-dropdown-item2 { + background-color: #fff; +} + +div.token-input-dropdown ul li em { + font-weight: bold; + font-style: normal; +} + +div.token-input-dropdown ul li.token-input-selected-dropdown-item { + background-color: #d0efa0; +} +.token-input-blur-text { + font-style: italic; + color: #AAA; +} diff --git a/public/images/balloon-footer.png b/public/images/balloon-footer.png deleted file mode 100644 index 3c1a606..0000000 Binary files a/public/images/balloon-footer.png and /dev/null differ diff --git a/public/images/balloon-header.png b/public/images/balloon-header.png deleted file mode 100644 index 054e5d3..0000000 Binary files a/public/images/balloon-header.png and /dev/null differ diff --git a/public/images/balloon-middle.png b/public/images/balloon-middle.png deleted file mode 100644 index 83cee0e..0000000 Binary files a/public/images/balloon-middle.png and /dev/null differ diff --git a/public/images/beta.gif b/public/images/beta.gif deleted file mode 100644 index 8a05ac4..0000000 Binary files a/public/images/beta.gif and /dev/null differ diff --git a/public/images/black-alpha-pixel-5.png b/public/images/black-alpha-pixel-5.png deleted file mode 100644 index a728b36..0000000 Binary files a/public/images/black-alpha-pixel-5.png and /dev/null differ diff --git a/public/images/black-alpha-pixel.png b/public/images/black-alpha-pixel.png deleted file mode 100644 index aca41eb..0000000 Binary files a/public/images/black-alpha-pixel.png and /dev/null differ diff --git a/public/images/blocks/1.png b/public/images/blocks/1.png deleted file mode 100644 index 7a3afb8..0000000 Binary files a/public/images/blocks/1.png and /dev/null differ diff --git a/public/images/blocks/1.svg b/public/images/blocks/1.svg deleted file mode 100644 index 6f78f11..0000000 --- a/public/images/blocks/1.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - 1 - - diff --git a/public/images/blocks/2.png b/public/images/blocks/2.png deleted file mode 100644 index 3675e5e..0000000 Binary files a/public/images/blocks/2.png and /dev/null differ diff --git a/public/images/blocks/2.svg b/public/images/blocks/2.svg deleted file mode 100644 index f79707e..0000000 --- a/public/images/blocks/2.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - 2 - - diff --git a/public/images/blocks/3.png b/public/images/blocks/3.png deleted file mode 100644 index bb2f7c5..0000000 Binary files a/public/images/blocks/3.png and /dev/null differ diff --git a/public/images/blocks/3.svg b/public/images/blocks/3.svg deleted file mode 100644 index 7731380..0000000 --- a/public/images/blocks/3.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - 3 - - diff --git a/public/images/bolota.gif b/public/images/bolota.gif deleted file mode 100644 index 2001476..0000000 Binary files a/public/images/bolota.gif and /dev/null differ diff --git a/public/images/borda-esq-aba-azul.gif b/public/images/borda-esq-aba-azul.gif deleted file mode 100644 index 0c356ae..0000000 Binary files a/public/images/borda-esq-aba-azul.gif and /dev/null differ diff --git a/public/images/bt-bookmark.gif b/public/images/bt-bookmark.gif deleted file mode 100644 index f7e3ce8..0000000 Binary files a/public/images/bt-bookmark.gif and /dev/null differ diff --git a/public/images/calendar_date_select/calendar.gif b/public/images/calendar_date_select/calendar.gif deleted file mode 100644 index 6b7b7ca..0000000 Binary files a/public/images/calendar_date_select/calendar.gif and /dev/null differ diff --git a/public/images/calendar_date_select/calendar.png b/public/images/calendar_date_select/calendar.png deleted file mode 100644 index 371f293..0000000 Binary files a/public/images/calendar_date_select/calendar.png and /dev/null differ diff --git a/public/images/catalog-expanders.png b/public/images/catalog-expanders.png deleted file mode 100644 index 395e0b2..0000000 Binary files a/public/images/catalog-expanders.png and /dev/null differ diff --git a/public/images/ccc.gif b/public/images/ccc.gif deleted file mode 100644 index 6066bef..0000000 Binary files a/public/images/ccc.gif and /dev/null differ diff --git a/public/images/colorbox/border.png b/public/images/colorbox/border.png deleted file mode 100644 index f463a10..0000000 Binary files a/public/images/colorbox/border.png and /dev/null differ diff --git a/public/images/colorbox/controls.png b/public/images/colorbox/controls.png deleted file mode 100644 index 9257176..0000000 Binary files a/public/images/colorbox/controls.png and /dev/null differ diff --git a/public/images/colorbox/ie6/borderBottomCenter.png b/public/images/colorbox/ie6/borderBottomCenter.png deleted file mode 100644 index 0d4475e..0000000 Binary files a/public/images/colorbox/ie6/borderBottomCenter.png and /dev/null differ diff --git a/public/images/colorbox/ie6/borderBottomLeft.png b/public/images/colorbox/ie6/borderBottomLeft.png deleted file mode 100644 index 2775eba..0000000 Binary files a/public/images/colorbox/ie6/borderBottomLeft.png and /dev/null differ diff --git a/public/images/colorbox/ie6/borderBottomRight.png b/public/images/colorbox/ie6/borderBottomRight.png deleted file mode 100644 index f7f5137..0000000 Binary files a/public/images/colorbox/ie6/borderBottomRight.png and /dev/null differ diff --git a/public/images/colorbox/ie6/borderMiddleLeft.png b/public/images/colorbox/ie6/borderMiddleLeft.png deleted file mode 100644 index a2d63d1..0000000 Binary files a/public/images/colorbox/ie6/borderMiddleLeft.png and /dev/null differ diff --git a/public/images/colorbox/ie6/borderMiddleRight.png b/public/images/colorbox/ie6/borderMiddleRight.png deleted file mode 100644 index fd7c3e8..0000000 Binary files a/public/images/colorbox/ie6/borderMiddleRight.png and /dev/null differ diff --git a/public/images/colorbox/ie6/borderTopCenter.png b/public/images/colorbox/ie6/borderTopCenter.png deleted file mode 100644 index 2937a9c..0000000 Binary files a/public/images/colorbox/ie6/borderTopCenter.png and /dev/null differ diff --git a/public/images/colorbox/ie6/borderTopLeft.png b/public/images/colorbox/ie6/borderTopLeft.png deleted file mode 100644 index f9d458b..0000000 Binary files a/public/images/colorbox/ie6/borderTopLeft.png and /dev/null differ diff --git a/public/images/colorbox/ie6/borderTopRight.png b/public/images/colorbox/ie6/borderTopRight.png deleted file mode 100644 index 74b8583..0000000 Binary files a/public/images/colorbox/ie6/borderTopRight.png and /dev/null differ diff --git a/public/images/colorbox/loading.gif b/public/images/colorbox/loading.gif deleted file mode 100644 index b4695d8..0000000 Binary files a/public/images/colorbox/loading.gif and /dev/null differ diff --git a/public/images/colorbox/loading_background.png b/public/images/colorbox/loading_background.png deleted file mode 100644 index 6ae83e6..0000000 Binary files a/public/images/colorbox/loading_background.png and /dev/null differ diff --git a/public/images/colorbox/overlay.png b/public/images/colorbox/overlay.png deleted file mode 100644 index 53ea98f..0000000 Binary files a/public/images/colorbox/overlay.png and /dev/null differ diff --git a/public/images/colorpicker/apply.png b/public/images/colorpicker/apply.png deleted file mode 100644 index 56ef039..0000000 Binary files a/public/images/colorpicker/apply.png and /dev/null differ diff --git a/public/images/colorpicker/gradiente.png b/public/images/colorpicker/gradiente.png deleted file mode 100644 index 8af6749..0000000 Binary files a/public/images/colorpicker/gradiente.png and /dev/null differ diff --git a/public/images/colorpicker/indic.gif b/public/images/colorpicker/indic.gif deleted file mode 100644 index f9fa95e..0000000 Binary files a/public/images/colorpicker/indic.gif and /dev/null differ diff --git a/public/images/colorpicker/overlay.png b/public/images/colorpicker/overlay.png deleted file mode 100644 index 561cdd9..0000000 Binary files a/public/images/colorpicker/overlay.png and /dev/null differ diff --git a/public/images/colorpicker/select.gif b/public/images/colorpicker/select.gif deleted file mode 100644 index 599f7f1..0000000 Binary files a/public/images/colorpicker/select.gif and /dev/null differ diff --git a/public/images/comment-owner-bg-L.png b/public/images/comment-owner-bg-L.png deleted file mode 100644 index 457eaa1..0000000 Binary files a/public/images/comment-owner-bg-L.png and /dev/null differ diff --git a/public/images/comment-owner-bg-N.png b/public/images/comment-owner-bg-N.png deleted file mode 100644 index f515550..0000000 Binary files a/public/images/comment-owner-bg-N.png and /dev/null differ diff --git a/public/images/comment-owner-bg-NL.png b/public/images/comment-owner-bg-NL.png deleted file mode 100644 index ebbe1c5..0000000 Binary files a/public/images/comment-owner-bg-NL.png and /dev/null differ diff --git a/public/images/comment-owner-bg-NO.png b/public/images/comment-owner-bg-NO.png deleted file mode 100644 index 3482700..0000000 Binary files a/public/images/comment-owner-bg-NO.png and /dev/null differ diff --git a/public/images/comment-owner-bg-O.png b/public/images/comment-owner-bg-O.png deleted file mode 100644 index 4a73252..0000000 Binary files a/public/images/comment-owner-bg-O.png and /dev/null differ diff --git a/public/images/comment-owner-bg-S.png b/public/images/comment-owner-bg-S.png deleted file mode 100644 index 04b0ca3..0000000 Binary files a/public/images/comment-owner-bg-S.png and /dev/null differ diff --git a/public/images/comment-owner-bg-SL.png b/public/images/comment-owner-bg-SL.png deleted file mode 100644 index 9eaa0fd..0000000 Binary files a/public/images/comment-owner-bg-SL.png and /dev/null differ diff --git a/public/images/comment-owner-bg-SO.png b/public/images/comment-owner-bg-SO.png deleted file mode 100644 index b939083..0000000 Binary files a/public/images/comment-owner-bg-SO.png and /dev/null differ diff --git a/public/images/comment-reply-owner-bg.png b/public/images/comment-reply-owner-bg.png deleted file mode 100644 index a25aeb3..0000000 Binary files a/public/images/comment-reply-owner-bg.png and /dev/null differ diff --git a/public/images/control-panel/Makefile b/public/images/control-panel/Makefile deleted file mode 100644 index 3a03653..0000000 --- a/public/images/control-panel/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -PNGS = $(patsubst %.svg, %.png, $(wildcard *.svg)) -GIFS = $(patsubst %.svg, %.gif, $(wildcard *.svg)) - -%.png: %.svg - inkscape -w 48 -h 48 -e $@ $< - -%.gif : %.png - convert $< $@ - -all: $(GIFS) $(PNGS) - -clean: - rm -f $(GIFS) $(PNGS) diff --git a/public/images/control-panel/application-certificate.gif b/public/images/control-panel/application-certificate.gif deleted file mode 100644 index 745aee4..0000000 Binary files a/public/images/control-panel/application-certificate.gif and /dev/null differ diff --git a/public/images/control-panel/application-certificate.png b/public/images/control-panel/application-certificate.png deleted file mode 100644 index 8936758..0000000 Binary files a/public/images/control-panel/application-certificate.png and /dev/null differ diff --git a/public/images/control-panel/application-certificate.svg b/public/images/control-panel/application-certificate.svg deleted file mode 100644 index 077f741..0000000 --- a/public/images/control-panel/application-certificate.svg +++ /dev/null @@ -1,443 +0,0 @@ - - - - - - image/svg+xml - - - - - - CertificateJakub Steinercertificate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/images/control-panel/blocks.gif b/public/images/control-panel/blocks.gif deleted file mode 100644 index 6eb69f2..0000000 Binary files a/public/images/control-panel/blocks.gif and /dev/null differ diff --git a/public/images/control-panel/blocks.png b/public/images/control-panel/blocks.png deleted file mode 100644 index d2ef64b..0000000 Binary files a/public/images/control-panel/blocks.png and /dev/null differ diff --git a/public/images/control-panel/blocks.svg b/public/images/control-panel/blocks.svg deleted file mode 100644 index 0f5c510..0000000 --- a/public/images/control-panel/blocks.svg +++ /dev/null @@ -1,334 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Justify Right - 2005-10-29 - - - Andreas Nilsson - - - - - justify - left - format - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/control-panel/contact.gif b/public/images/control-panel/contact.gif deleted file mode 100644 index 25c56b3..0000000 Binary files a/public/images/control-panel/contact.gif and /dev/null differ diff --git a/public/images/control-panel/contact.png b/public/images/control-panel/contact.png deleted file mode 100644 index e85a140..0000000 Binary files a/public/images/control-panel/contact.png and /dev/null differ diff --git a/public/images/control-panel/contact.svg b/public/images/control-panel/contact.svg deleted file mode 100644 index f20c4cb..0000000 --- a/public/images/control-panel/contact.svg +++ /dev/null @@ -1,795 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Jakub Steiner - - - http://jimmac.musichall.cz - - New Contact - - - address - contact - e-mail - person - information - card - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Fulana - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Fulana - - diff --git a/public/images/control-panel/edit-profile-enterprise.gif b/public/images/control-panel/edit-profile-enterprise.gif deleted file mode 100644 index f87d3fb..0000000 Binary files a/public/images/control-panel/edit-profile-enterprise.gif and /dev/null differ diff --git a/public/images/control-panel/edit-profile-enterprise.png b/public/images/control-panel/edit-profile-enterprise.png deleted file mode 100644 index 39854d4..0000000 Binary files a/public/images/control-panel/edit-profile-enterprise.png and /dev/null differ diff --git a/public/images/control-panel/edit-profile-enterprise.svg b/public/images/control-panel/edit-profile-enterprise.svg deleted file mode 100644 index 5ad24c0..0000000 --- a/public/images/control-panel/edit-profile-enterprise.svg +++ /dev/null @@ -1,549 +0,0 @@ - -image/svg+xmlGo HomeJakub Steinerhttp://jimmac.musichall.czhomereturngodefaultuserdirectoryTuomas Kuosmanen - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/images/control-panel/edit-profile-group.gif b/public/images/control-panel/edit-profile-group.gif deleted file mode 100644 index a3e5008..0000000 Binary files a/public/images/control-panel/edit-profile-group.gif and /dev/null differ diff --git a/public/images/control-panel/edit-profile-group.png b/public/images/control-panel/edit-profile-group.png deleted file mode 100644 index 0ca3a80..0000000 Binary files a/public/images/control-panel/edit-profile-group.png and /dev/null differ diff --git a/public/images/control-panel/edit-profile-group.svg b/public/images/control-panel/edit-profile-group.svg deleted file mode 100644 index f7fc51d..0000000 --- a/public/images/control-panel/edit-profile-group.svg +++ /dev/null @@ -1,675 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - People - - - Jakub Steiner - - - http://jimmac.musichall.cz - - - users - people - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/control-panel/edit-profile.gif b/public/images/control-panel/edit-profile.gif deleted file mode 100644 index 8de4ef0..0000000 Binary files a/public/images/control-panel/edit-profile.gif and /dev/null differ diff --git a/public/images/control-panel/edit-profile.png b/public/images/control-panel/edit-profile.png deleted file mode 100644 index bf406c9..0000000 Binary files a/public/images/control-panel/edit-profile.png and /dev/null differ diff --git a/public/images/control-panel/edit-profile.svg b/public/images/control-panel/edit-profile.svg deleted file mode 100644 index d5edfba..0000000 --- a/public/images/control-panel/edit-profile.svg +++ /dev/null @@ -1,590 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - People - - - Jakub Steiner - - - http://jimmac.musichall.cz - - - users - people - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/control-panel/editpaste.gif b/public/images/control-panel/editpaste.gif deleted file mode 100644 index 534717f..0000000 Binary files a/public/images/control-panel/editpaste.gif and /dev/null differ diff --git a/public/images/control-panel/editpaste.png b/public/images/control-panel/editpaste.png deleted file mode 100644 index 1116e53..0000000 Binary files a/public/images/control-panel/editpaste.png and /dev/null differ diff --git a/public/images/control-panel/editpaste.svg b/public/images/control-panel/editpaste.svg deleted file mode 120000 index 587b2f0..0000000 --- a/public/images/control-panel/editpaste.svg +++ /dev/null @@ -1 +0,0 @@ -/usr/share/icons/Tango/scalable/actions/editpaste.svg \ No newline at end of file diff --git a/public/images/control-panel/email.gif b/public/images/control-panel/email.gif deleted file mode 100644 index b4043d1..0000000 Binary files a/public/images/control-panel/email.gif and /dev/null differ diff --git a/public/images/control-panel/email.png b/public/images/control-panel/email.png deleted file mode 100644 index b611be2..0000000 Binary files a/public/images/control-panel/email.png and /dev/null differ diff --git a/public/images/control-panel/email.svg b/public/images/control-panel/email.svg deleted file mode 120000 index 300cd62..0000000 --- a/public/images/control-panel/email.svg +++ /dev/null @@ -1 +0,0 @@ -/usr/share/icons/Tango/scalable/apps/email.svg \ No newline at end of file diff --git a/public/images/control-panel/emblem-favorite.gif b/public/images/control-panel/emblem-favorite.gif deleted file mode 100644 index 37e3c8f..0000000 Binary files a/public/images/control-panel/emblem-favorite.gif and /dev/null differ diff --git a/public/images/control-panel/emblem-favorite.png b/public/images/control-panel/emblem-favorite.png deleted file mode 100644 index f17e861..0000000 Binary files a/public/images/control-panel/emblem-favorite.png and /dev/null differ diff --git a/public/images/control-panel/emblem-favorite.svg b/public/images/control-panel/emblem-favorite.svg deleted file mode 120000 index d2c3e04..0000000 --- a/public/images/control-panel/emblem-favorite.svg +++ /dev/null @@ -1 +0,0 @@ -/usr/share/icons/Tango/scalable/emblems/emblem-favorite.svg \ No newline at end of file diff --git a/public/images/control-panel/header-footer.gif b/public/images/control-panel/header-footer.gif deleted file mode 100644 index bf23f9f..0000000 Binary files a/public/images/control-panel/header-footer.gif and /dev/null differ diff --git a/public/images/control-panel/header-footer.png b/public/images/control-panel/header-footer.png deleted file mode 100644 index 97b9be5..0000000 Binary files a/public/images/control-panel/header-footer.png and /dev/null differ diff --git a/public/images/control-panel/header-footer.svg b/public/images/control-panel/header-footer.svg deleted file mode 100644 index 901b275..0000000 --- a/public/images/control-panel/header-footer.svg +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Justify Right - 2005-10-29 - - - Andreas Nilsson - - - - - justify - left - format - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/control-panel/important.gif b/public/images/control-panel/important.gif deleted file mode 100644 index c4d634b..0000000 Binary files a/public/images/control-panel/important.gif and /dev/null differ diff --git a/public/images/control-panel/important.png b/public/images/control-panel/important.png deleted file mode 100644 index a80d024..0000000 Binary files a/public/images/control-panel/important.png and /dev/null differ diff --git a/public/images/control-panel/important.svg b/public/images/control-panel/important.svg deleted file mode 120000 index 239577f..0000000 --- a/public/images/control-panel/important.svg +++ /dev/null @@ -1 +0,0 @@ -/usr/share/icons/Tango/scalable/status/important.svg \ No newline at end of file diff --git a/public/images/control-panel/mail-mark-junk.png b/public/images/control-panel/mail-mark-junk.png deleted file mode 100644 index d14f23f..0000000 Binary files a/public/images/control-panel/mail-mark-junk.png and /dev/null differ diff --git a/public/images/control-panel/mail-mark-junk.svg b/public/images/control-panel/mail-mark-junk.svg deleted file mode 100644 index 0163175..0000000 --- a/public/images/control-panel/mail-mark-junk.svg +++ /dev/null @@ -1,504 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Jakub Steiner - - - http://jimmac.musichall.cz - - Mark mail as Junk - - - mail - spam - junk - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/control-panel/package.gif b/public/images/control-panel/package.gif deleted file mode 100644 index e14a2a7..0000000 Binary files a/public/images/control-panel/package.gif and /dev/null differ diff --git a/public/images/control-panel/package.png b/public/images/control-panel/package.png deleted file mode 100644 index 37c8365..0000000 Binary files a/public/images/control-panel/package.png and /dev/null differ diff --git a/public/images/control-panel/package.svg b/public/images/control-panel/package.svg deleted file mode 100644 index 47beed7..0000000 --- a/public/images/control-panel/package.svg +++ /dev/null @@ -1,485 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Package - - - Jakub Steiner - - - http://jimmac.musichall.cz/ - - - package - archive - tarball - tar - bzip - gzip - zip - arj - tar - jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/control-panel/password.gif b/public/images/control-panel/password.gif deleted file mode 100644 index 019c78a..0000000 Binary files a/public/images/control-panel/password.gif and /dev/null differ diff --git a/public/images/control-panel/password.png b/public/images/control-panel/password.png deleted file mode 100644 index e40fa21..0000000 Binary files a/public/images/control-panel/password.png and /dev/null differ diff --git a/public/images/control-panel/password.svg b/public/images/control-panel/password.svg deleted file mode 120000 index 916daa0..0000000 --- a/public/images/control-panel/password.svg +++ /dev/null @@ -1 +0,0 @@ -../../designs/icons/tango/mod/scalable/actions/password.svg \ No newline at end of file diff --git a/public/images/control-panel/preferences-desktop-wallpaper.gif b/public/images/control-panel/preferences-desktop-wallpaper.gif deleted file mode 100644 index 1971a50..0000000 Binary files a/public/images/control-panel/preferences-desktop-wallpaper.gif and /dev/null differ diff --git a/public/images/control-panel/preferences-desktop-wallpaper.png b/public/images/control-panel/preferences-desktop-wallpaper.png deleted file mode 100644 index 79e76c7..0000000 Binary files a/public/images/control-panel/preferences-desktop-wallpaper.png and /dev/null differ diff --git a/public/images/control-panel/preferences-desktop-wallpaper.svg b/public/images/control-panel/preferences-desktop-wallpaper.svg deleted file mode 120000 index 7292175..0000000 --- a/public/images/control-panel/preferences-desktop-wallpaper.svg +++ /dev/null @@ -1 +0,0 @@ -/usr/share/icons/Tango/scalable/apps/preferences-desktop-wallpaper.svg \ No newline at end of file diff --git a/public/images/control-panel/set-geolocation.gif b/public/images/control-panel/set-geolocation.gif deleted file mode 100644 index 3cc321b..0000000 Binary files a/public/images/control-panel/set-geolocation.gif and /dev/null differ diff --git a/public/images/control-panel/set-geolocation.png b/public/images/control-panel/set-geolocation.png deleted file mode 100644 index d6f8170..0000000 Binary files a/public/images/control-panel/set-geolocation.png and /dev/null differ diff --git a/public/images/control-panel/stop.gif b/public/images/control-panel/stop.gif deleted file mode 100644 index 0b3cd56..0000000 Binary files a/public/images/control-panel/stop.gif and /dev/null differ diff --git a/public/images/control-panel/stop.png b/public/images/control-panel/stop.png deleted file mode 100644 index 6fe29db..0000000 Binary files a/public/images/control-panel/stop.png and /dev/null differ diff --git a/public/images/control-panel/stop.svg b/public/images/control-panel/stop.svg deleted file mode 100644 index 04ce3a7..0000000 --- a/public/images/control-panel/stop.svg +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Stop - 2005-10-16 - - - Andreas Nilsson - - - - - stop - halt - error - - - - - - Jakub Steiner - - - - - - - - - - - - - - - - - - diff --git a/public/images/control-panel/system-file-manager.gif b/public/images/control-panel/system-file-manager.gif deleted file mode 100644 index 419c98c..0000000 Binary files a/public/images/control-panel/system-file-manager.gif and /dev/null differ diff --git a/public/images/control-panel/system-file-manager.png b/public/images/control-panel/system-file-manager.png deleted file mode 100644 index 65a9c73..0000000 Binary files a/public/images/control-panel/system-file-manager.png and /dev/null differ diff --git a/public/images/control-panel/system-file-manager.svg b/public/images/control-panel/system-file-manager.svg deleted file mode 120000 index a2bf4ff..0000000 --- a/public/images/control-panel/system-file-manager.svg +++ /dev/null @@ -1 +0,0 @@ -/usr/share/icons/Tango/scalable/apps/system-file-manager.svg \ No newline at end of file diff --git a/public/images/control-panel/system-users.gif b/public/images/control-panel/system-users.gif deleted file mode 100644 index c99fbb4..0000000 Binary files a/public/images/control-panel/system-users.gif and /dev/null differ diff --git a/public/images/control-panel/system-users.png b/public/images/control-panel/system-users.png deleted file mode 100644 index 33a3bec..0000000 Binary files a/public/images/control-panel/system-users.png and /dev/null differ diff --git a/public/images/control-panel/system-users.svg b/public/images/control-panel/system-users.svg deleted file mode 120000 index 5b52232..0000000 --- a/public/images/control-panel/system-users.svg +++ /dev/null @@ -1 +0,0 @@ -/usr/share/icons/Tango/scalable/apps/system-users.svg \ No newline at end of file diff --git a/public/images/control-panel/text-editor-disabled.gif b/public/images/control-panel/text-editor-disabled.gif deleted file mode 100644 index 5b1a9f0..0000000 Binary files a/public/images/control-panel/text-editor-disabled.gif and /dev/null differ diff --git a/public/images/control-panel/text-editor-disabled.png b/public/images/control-panel/text-editor-disabled.png deleted file mode 120000 index 9ac54ac..0000000 --- a/public/images/control-panel/text-editor-disabled.png +++ /dev/null @@ -1 +0,0 @@ -../../designs/icons/tango/mod/48x48/apps/text-editor.png \ No newline at end of file diff --git a/public/images/control-panel/text-editor-disabled.svg b/public/images/control-panel/text-editor-disabled.svg deleted file mode 120000 index 2d77626..0000000 --- a/public/images/control-panel/text-editor-disabled.svg +++ /dev/null @@ -1 +0,0 @@ -../../designs/icons/tango/mod/scalable/apps/text-editor.svg \ No newline at end of file diff --git a/public/images/control-panel/text-editor.gif b/public/images/control-panel/text-editor.gif deleted file mode 100644 index b923b13..0000000 Binary files a/public/images/control-panel/text-editor.gif and /dev/null differ diff --git a/public/images/control-panel/text-editor.png b/public/images/control-panel/text-editor.png deleted file mode 100644 index bd26767..0000000 Binary files a/public/images/control-panel/text-editor.png and /dev/null differ diff --git a/public/images/control-panel/text-editor.svg b/public/images/control-panel/text-editor.svg deleted file mode 120000 index 117e78f..0000000 --- a/public/images/control-panel/text-editor.svg +++ /dev/null @@ -1 +0,0 @@ -/usr/share/icons/Tango/scalable/apps/text-editor.svg \ No newline at end of file diff --git a/public/images/doc/activation-conlusion.en.png b/public/images/doc/activation-conlusion.en.png deleted file mode 100644 index 48581a2..0000000 Binary files a/public/images/doc/activation-conlusion.en.png and /dev/null differ diff --git a/public/images/doc/activation-conlusion.pt.png b/public/images/doc/activation-conlusion.pt.png deleted file mode 100644 index c146160..0000000 Binary files a/public/images/doc/activation-conlusion.pt.png and /dev/null differ diff --git a/public/images/doc/activation-question.en.png b/public/images/doc/activation-question.en.png deleted file mode 100644 index 6bdbf2c..0000000 Binary files a/public/images/doc/activation-question.en.png and /dev/null differ diff --git a/public/images/doc/activation-question.pt.png b/public/images/doc/activation-question.pt.png deleted file mode 100644 index 4f495bf..0000000 Binary files a/public/images/doc/activation-question.pt.png and /dev/null differ diff --git a/public/images/doc/add-member-enterprise.en.png b/public/images/doc/add-member-enterprise.en.png deleted file mode 100644 index d869a95..0000000 Binary files a/public/images/doc/add-member-enterprise.en.png and /dev/null differ diff --git a/public/images/doc/add-member-enterprise.pt.png b/public/images/doc/add-member-enterprise.pt.png deleted file mode 100644 index c08e6a3..0000000 Binary files a/public/images/doc/add-member-enterprise.pt.png and /dev/null differ diff --git a/public/images/doc/admin-panel-export-users.en.png b/public/images/doc/admin-panel-export-users.en.png deleted file mode 100644 index c3b99d0..0000000 Binary files a/public/images/doc/admin-panel-export-users.en.png and /dev/null differ diff --git a/public/images/doc/admin-panel-export-users.pt.png b/public/images/doc/admin-panel-export-users.pt.png deleted file mode 100644 index 81887c3..0000000 Binary files a/public/images/doc/admin-panel-export-users.pt.png and /dev/null differ diff --git a/public/images/doc/admin-panel-manage-users.en.png b/public/images/doc/admin-panel-manage-users.en.png deleted file mode 100644 index c287fc8..0000000 Binary files a/public/images/doc/admin-panel-manage-users.en.png and /dev/null differ diff --git a/public/images/doc/admin-panel-manage-users.pt.png b/public/images/doc/admin-panel-manage-users.pt.png deleted file mode 100644 index cbe1e9a..0000000 Binary files a/public/images/doc/admin-panel-manage-users.pt.png and /dev/null differ diff --git a/public/images/doc/admin-panel-send-email.en.png b/public/images/doc/admin-panel-send-email.en.png deleted file mode 100644 index e9ea313..0000000 Binary files a/public/images/doc/admin-panel-send-email.en.png and /dev/null differ diff --git a/public/images/doc/admin-panel-send-email.pt.png b/public/images/doc/admin-panel-send-email.pt.png deleted file mode 100644 index 0a54e73..0000000 Binary files a/public/images/doc/admin-panel-send-email.pt.png and /dev/null differ diff --git a/public/images/doc/admin-send-email.en.png b/public/images/doc/admin-send-email.en.png deleted file mode 100644 index 59c1b4f..0000000 Binary files a/public/images/doc/admin-send-email.en.png and /dev/null differ diff --git a/public/images/doc/admin-send-email.pt.png b/public/images/doc/admin-send-email.pt.png deleted file mode 100644 index 2db17f3..0000000 Binary files a/public/images/doc/admin-send-email.pt.png and /dev/null differ diff --git a/public/images/doc/advanced-article-archives-list.en.png b/public/images/doc/advanced-article-archives-list.en.png deleted file mode 100644 index 246cac1..0000000 Binary files a/public/images/doc/advanced-article-archives-list.en.png and /dev/null differ diff --git a/public/images/doc/advanced-article-archives-list.pt.png b/public/images/doc/advanced-article-archives-list.pt.png deleted file mode 100644 index 91fdf51..0000000 Binary files a/public/images/doc/advanced-article-archives-list.pt.png and /dev/null differ diff --git a/public/images/doc/advanced-article-created-link.en.png b/public/images/doc/advanced-article-created-link.en.png deleted file mode 100644 index 47c90fa..0000000 Binary files a/public/images/doc/advanced-article-created-link.en.png and /dev/null differ diff --git a/public/images/doc/advanced-article-created-link.pt.png b/public/images/doc/advanced-article-created-link.pt.png deleted file mode 100644 index 50059b3..0000000 Binary files a/public/images/doc/advanced-article-created-link.pt.png and /dev/null differ diff --git a/public/images/doc/advanced-article-created-object.en.png b/public/images/doc/advanced-article-created-object.en.png deleted file mode 100644 index 6244572..0000000 Binary files a/public/images/doc/advanced-article-created-object.en.png and /dev/null differ diff --git a/public/images/doc/advanced-article-created-object.pt.png b/public/images/doc/advanced-article-created-object.pt.png deleted file mode 100644 index d4f0a69..0000000 Binary files a/public/images/doc/advanced-article-created-object.pt.png and /dev/null differ diff --git a/public/images/doc/advanced-article-insert-html.en.png b/public/images/doc/advanced-article-insert-html.en.png deleted file mode 100644 index 61609c5..0000000 Binary files a/public/images/doc/advanced-article-insert-html.en.png and /dev/null differ diff --git a/public/images/doc/advanced-article-insert-html.pt.png b/public/images/doc/advanced-article-insert-html.pt.png deleted file mode 100644 index 9d5410d..0000000 Binary files a/public/images/doc/advanced-article-insert-html.pt.png and /dev/null differ diff --git a/public/images/doc/advanced-article-insert-links.en.png b/public/images/doc/advanced-article-insert-links.en.png deleted file mode 100644 index b9c475f..0000000 Binary files a/public/images/doc/advanced-article-insert-links.en.png and /dev/null differ diff --git a/public/images/doc/advanced-article-insert-links.pt.png b/public/images/doc/advanced-article-insert-links.pt.png deleted file mode 100644 index fde699e..0000000 Binary files a/public/images/doc/advanced-article-insert-links.pt.png and /dev/null differ diff --git a/public/images/doc/advanced-article-popup-insert-html.en.png b/public/images/doc/advanced-article-popup-insert-html.en.png deleted file mode 100644 index c5b495d..0000000 Binary files a/public/images/doc/advanced-article-popup-insert-html.en.png and /dev/null differ diff --git a/public/images/doc/advanced-article-popup-insert-html.pt.png b/public/images/doc/advanced-article-popup-insert-html.pt.png deleted file mode 100644 index bfa7f39..0000000 Binary files a/public/images/doc/advanced-article-popup-insert-html.pt.png and /dev/null differ diff --git a/public/images/doc/advanced-article-popup-insert-link.en.png b/public/images/doc/advanced-article-popup-insert-link.en.png deleted file mode 100644 index 1d10469..0000000 Binary files a/public/images/doc/advanced-article-popup-insert-link.en.png and /dev/null differ diff --git a/public/images/doc/advanced-article-popup-insert-link.pt.png b/public/images/doc/advanced-article-popup-insert-link.pt.png deleted file mode 100644 index a01a24c..0000000 Binary files a/public/images/doc/advanced-article-popup-insert-link.pt.png and /dev/null differ diff --git a/public/images/doc/advanced-article-upload-images.en.png b/public/images/doc/advanced-article-upload-images.en.png deleted file mode 100644 index cf506a7..0000000 Binary files a/public/images/doc/advanced-article-upload-images.en.png and /dev/null differ diff --git a/public/images/doc/advanced-article-upload-images.pt.png b/public/images/doc/advanced-article-upload-images.pt.png deleted file mode 100644 index e790653..0000000 Binary files a/public/images/doc/advanced-article-upload-images.pt.png and /dev/null differ diff --git a/public/images/doc/article-bigger-spread-view.en.png b/public/images/doc/article-bigger-spread-view.en.png deleted file mode 100644 index 926b587..0000000 Binary files a/public/images/doc/article-bigger-spread-view.en.png and /dev/null differ diff --git a/public/images/doc/article-bigger-spread-view.pt.png b/public/images/doc/article-bigger-spread-view.pt.png deleted file mode 100644 index a404e26..0000000 Binary files a/public/images/doc/article-bigger-spread-view.pt.png and /dev/null differ diff --git a/public/images/doc/article-block.en.png b/public/images/doc/article-block.en.png deleted file mode 100644 index 2cc6404..0000000 Binary files a/public/images/doc/article-block.en.png and /dev/null differ diff --git a/public/images/doc/article-block.pt.png b/public/images/doc/article-block.pt.png deleted file mode 100644 index 3b19b60..0000000 Binary files a/public/images/doc/article-block.pt.png and /dev/null differ diff --git a/public/images/doc/article-creation-categorization.en.png b/public/images/doc/article-creation-categorization.en.png deleted file mode 100644 index 4da74d0..0000000 Binary files a/public/images/doc/article-creation-categorization.en.png and /dev/null differ diff --git a/public/images/doc/article-creation-categorization.pt.png b/public/images/doc/article-creation-categorization.pt.png deleted file mode 100644 index 288fa65..0000000 Binary files a/public/images/doc/article-creation-categorization.pt.png and /dev/null differ diff --git a/public/images/doc/article-creation-category-choosen.en.png b/public/images/doc/article-creation-category-choosen.en.png deleted file mode 100644 index a878bd1..0000000 Binary files a/public/images/doc/article-creation-category-choosen.en.png and /dev/null differ diff --git a/public/images/doc/article-creation-category-choosen.pt.png b/public/images/doc/article-creation-category-choosen.pt.png deleted file mode 100644 index cda070d..0000000 Binary files a/public/images/doc/article-creation-category-choosen.pt.png and /dev/null differ diff --git a/public/images/doc/article-creation-options.en.png b/public/images/doc/article-creation-options.en.png deleted file mode 100644 index 601a97c..0000000 Binary files a/public/images/doc/article-creation-options.en.png and /dev/null differ diff --git a/public/images/doc/article-creation-options.pt.png b/public/images/doc/article-creation-options.pt.png deleted file mode 100644 index bee4a35..0000000 Binary files a/public/images/doc/article-creation-options.pt.png and /dev/null differ diff --git a/public/images/doc/article-creation-tags.en.png b/public/images/doc/article-creation-tags.en.png deleted file mode 100644 index 2c7f370..0000000 Binary files a/public/images/doc/article-creation-tags.en.png and /dev/null differ diff --git a/public/images/doc/article-creation-tags.pt.png b/public/images/doc/article-creation-tags.pt.png deleted file mode 100644 index b5a3904..0000000 Binary files a/public/images/doc/article-creation-tags.pt.png and /dev/null differ diff --git a/public/images/doc/article-spread-view.en.png b/public/images/doc/article-spread-view.en.png deleted file mode 100644 index 05be735..0000000 Binary files a/public/images/doc/article-spread-view.en.png and /dev/null differ diff --git a/public/images/doc/article-spread-view.pt.png b/public/images/doc/article-spread-view.pt.png deleted file mode 100644 index 841336f..0000000 Binary files a/public/images/doc/article-spread-view.pt.png and /dev/null differ diff --git a/public/images/doc/article-spread.en.png b/public/images/doc/article-spread.en.png deleted file mode 100644 index 1f7b797..0000000 Binary files a/public/images/doc/article-spread.en.png and /dev/null differ diff --git a/public/images/doc/article-spread.pt.png b/public/images/doc/article-spread.pt.png deleted file mode 100644 index 393b0a4..0000000 Binary files a/public/images/doc/article-spread.pt.png and /dev/null differ diff --git a/public/images/doc/article-text-lead.en.png b/public/images/doc/article-text-lead.en.png deleted file mode 100644 index 48cf0ee..0000000 Binary files a/public/images/doc/article-text-lead.en.png and /dev/null differ diff --git a/public/images/doc/article-text-lead.pt.png b/public/images/doc/article-text-lead.pt.png deleted file mode 100644 index c3c8577..0000000 Binary files a/public/images/doc/article-text-lead.pt.png and /dev/null differ diff --git a/public/images/doc/article-text.en.png b/public/images/doc/article-text.en.png deleted file mode 100644 index 19dd7f1..0000000 Binary files a/public/images/doc/article-text.en.png and /dev/null differ diff --git a/public/images/doc/article-text.pt.png b/public/images/doc/article-text.pt.png deleted file mode 100644 index 93aace1..0000000 Binary files a/public/images/doc/article-text.pt.png and /dev/null differ diff --git a/public/images/doc/block-actions.en.png b/public/images/doc/block-actions.en.png deleted file mode 100644 index bf79472..0000000 Binary files a/public/images/doc/block-actions.en.png and /dev/null differ diff --git a/public/images/doc/blog-buttons.en.png b/public/images/doc/blog-buttons.en.png deleted file mode 100644 index 45ce077..0000000 Binary files a/public/images/doc/blog-buttons.en.png and /dev/null differ diff --git a/public/images/doc/blog-buttons.pt.png b/public/images/doc/blog-buttons.pt.png deleted file mode 100644 index 41a1162..0000000 Binary files a/public/images/doc/blog-buttons.pt.png and /dev/null differ diff --git a/public/images/doc/box-register.en.png b/public/images/doc/box-register.en.png deleted file mode 100644 index 4461066..0000000 Binary files a/public/images/doc/box-register.en.png and /dev/null differ diff --git a/public/images/doc/box-register.pt.png b/public/images/doc/box-register.pt.png deleted file mode 100644 index cde860d..0000000 Binary files a/public/images/doc/box-register.pt.png and /dev/null differ diff --git a/public/images/doc/change-password.en.png b/public/images/doc/change-password.en.png deleted file mode 100644 index b3b5f42..0000000 Binary files a/public/images/doc/change-password.en.png and /dev/null differ diff --git a/public/images/doc/change-password.pt.png b/public/images/doc/change-password.pt.png deleted file mode 100644 index c7f7c03..0000000 Binary files a/public/images/doc/change-password.pt.png and /dev/null differ diff --git a/public/images/doc/changing-role-enterprise-member.en.png b/public/images/doc/changing-role-enterprise-member.en.png deleted file mode 100644 index d5848d7..0000000 Binary files a/public/images/doc/changing-role-enterprise-member.en.png and /dev/null differ diff --git a/public/images/doc/changing-role-enterprise-member.pt.png b/public/images/doc/changing-role-enterprise-member.pt.png deleted file mode 100644 index 9ecd8e6..0000000 Binary files a/public/images/doc/changing-role-enterprise-member.pt.png and /dev/null differ diff --git a/public/images/doc/closed-comment-box.en.png b/public/images/doc/closed-comment-box.en.png deleted file mode 100644 index b5975bd..0000000 Binary files a/public/images/doc/closed-comment-box.en.png and /dev/null differ diff --git a/public/images/doc/closed-comment-box.pt.png b/public/images/doc/closed-comment-box.pt.png deleted file mode 100644 index 146d316..0000000 Binary files a/public/images/doc/closed-comment-box.pt.png and /dev/null differ diff --git a/public/images/doc/cms-article-icons.en.png b/public/images/doc/cms-article-icons.en.png deleted file mode 100644 index 937fb5b..0000000 Binary files a/public/images/doc/cms-article-icons.en.png and /dev/null differ diff --git a/public/images/doc/cms-article-icons.pt.png b/public/images/doc/cms-article-icons.pt.png deleted file mode 100644 index 937fb5b..0000000 Binary files a/public/images/doc/cms-article-icons.pt.png and /dev/null differ diff --git a/public/images/doc/cms-article-types.en.png b/public/images/doc/cms-article-types.en.png deleted file mode 100644 index 3a993d0..0000000 Binary files a/public/images/doc/cms-article-types.en.png and /dev/null differ diff --git a/public/images/doc/cms-article-types.pt.png b/public/images/doc/cms-article-types.pt.png deleted file mode 100644 index f1fcdbd..0000000 Binary files a/public/images/doc/cms-article-types.pt.png and /dev/null differ diff --git a/public/images/doc/cms-blog-creation.en.png b/public/images/doc/cms-blog-creation.en.png deleted file mode 100644 index 00ee42d..0000000 Binary files a/public/images/doc/cms-blog-creation.en.png and /dev/null differ diff --git a/public/images/doc/cms-blog-creation.pt.png b/public/images/doc/cms-blog-creation.pt.png deleted file mode 100644 index 262fd67..0000000 Binary files a/public/images/doc/cms-blog-creation.pt.png and /dev/null differ diff --git a/public/images/doc/cms-blog-public-visualization.en.png b/public/images/doc/cms-blog-public-visualization.en.png deleted file mode 100644 index 9e641a3..0000000 Binary files a/public/images/doc/cms-blog-public-visualization.en.png and /dev/null differ diff --git a/public/images/doc/cms-blog-public-visualization.pt.png b/public/images/doc/cms-blog-public-visualization.pt.png deleted file mode 100644 index a139e99..0000000 Binary files a/public/images/doc/cms-blog-public-visualization.pt.png and /dev/null differ diff --git a/public/images/doc/cms-folder-icons.en.png b/public/images/doc/cms-folder-icons.en.png deleted file mode 100644 index 77f28e5..0000000 Binary files a/public/images/doc/cms-folder-icons.en.png and /dev/null differ diff --git a/public/images/doc/cms-folder-icons.pt.png b/public/images/doc/cms-folder-icons.pt.png deleted file mode 100644 index 77f28e5..0000000 Binary files a/public/images/doc/cms-folder-icons.pt.png and /dev/null differ diff --git a/public/images/doc/cms-gallery-public-visualization.en.png b/public/images/doc/cms-gallery-public-visualization.en.png deleted file mode 100644 index 1feca64..0000000 Binary files a/public/images/doc/cms-gallery-public-visualization.en.png and /dev/null differ diff --git a/public/images/doc/cms-gallery-public-visualization.pt.png b/public/images/doc/cms-gallery-public-visualization.pt.png deleted file mode 100644 index 0b6ab4f..0000000 Binary files a/public/images/doc/cms-gallery-public-visualization.pt.png and /dev/null differ diff --git a/public/images/doc/cms-new-article.en.png b/public/images/doc/cms-new-article.en.png deleted file mode 100644 index 52db253..0000000 Binary files a/public/images/doc/cms-new-article.en.png and /dev/null differ diff --git a/public/images/doc/cms-new-article.pt.png b/public/images/doc/cms-new-article.pt.png deleted file mode 100644 index 8e0c2e9..0000000 Binary files a/public/images/doc/cms-new-article.pt.png and /dev/null differ diff --git a/public/images/doc/cms-spread-article-icon.en.png b/public/images/doc/cms-spread-article-icon.en.png deleted file mode 100644 index 9fac2ee..0000000 Binary files a/public/images/doc/cms-spread-article-icon.en.png and /dev/null differ diff --git a/public/images/doc/cms-spread-article-icon.pt.png b/public/images/doc/cms-spread-article-icon.pt.png deleted file mode 100644 index b929e35..0000000 Binary files a/public/images/doc/cms-spread-article-icon.pt.png and /dev/null differ diff --git a/public/images/doc/cms-uploading-files.en.png b/public/images/doc/cms-uploading-files.en.png deleted file mode 100644 index 22caa37..0000000 Binary files a/public/images/doc/cms-uploading-files.en.png and /dev/null differ diff --git a/public/images/doc/cms-uploading-files.pt.png b/public/images/doc/cms-uploading-files.pt.png deleted file mode 100644 index adb4ae1..0000000 Binary files a/public/images/doc/cms-uploading-files.pt.png and /dev/null differ diff --git a/public/images/doc/cms.en.png b/public/images/doc/cms.en.png deleted file mode 100644 index 2d96e9a..0000000 Binary files a/public/images/doc/cms.en.png and /dev/null differ diff --git a/public/images/doc/cms.pt.png b/public/images/doc/cms.pt.png deleted file mode 100644 index 604b422..0000000 Binary files a/public/images/doc/cms.pt.png and /dev/null differ diff --git a/public/images/doc/comments-of-logged-in-out-person.en.png b/public/images/doc/comments-of-logged-in-out-person.en.png deleted file mode 100644 index 1a45728..0000000 Binary files a/public/images/doc/comments-of-logged-in-out-person.en.png and /dev/null differ diff --git a/public/images/doc/comments-of-logged-in-out-person.pt.png b/public/images/doc/comments-of-logged-in-out-person.pt.png deleted file mode 100644 index cd59290..0000000 Binary files a/public/images/doc/comments-of-logged-in-out-person.pt.png and /dev/null differ diff --git a/public/images/doc/comments.en.png b/public/images/doc/comments.en.png deleted file mode 100644 index 04c6f13..0000000 Binary files a/public/images/doc/comments.en.png and /dev/null differ diff --git a/public/images/doc/comments.pt.png b/public/images/doc/comments.pt.png deleted file mode 100644 index 0722ff0..0000000 Binary files a/public/images/doc/comments.pt.png and /dev/null differ diff --git a/public/images/doc/communities-block.en.png b/public/images/doc/communities-block.en.png deleted file mode 100644 index 46a15d5..0000000 Binary files a/public/images/doc/communities-block.en.png and /dev/null differ diff --git a/public/images/doc/communities-block.pt.png b/public/images/doc/communities-block.pt.png deleted file mode 100644 index 369d80d..0000000 Binary files a/public/images/doc/communities-block.pt.png and /dev/null differ diff --git a/public/images/doc/communities-search-field.en.png b/public/images/doc/communities-search-field.en.png deleted file mode 100644 index 26765db..0000000 Binary files a/public/images/doc/communities-search-field.en.png and /dev/null differ diff --git a/public/images/doc/communities-search-field.pt.png b/public/images/doc/communities-search-field.pt.png deleted file mode 100644 index de54299..0000000 Binary files a/public/images/doc/communities-search-field.pt.png and /dev/null differ diff --git a/public/images/doc/communities-search-results-with-example.en.png b/public/images/doc/communities-search-results-with-example.en.png deleted file mode 100644 index 3bd39bf..0000000 Binary files a/public/images/doc/communities-search-results-with-example.en.png and /dev/null differ diff --git a/public/images/doc/communities-search-results-with-example.pt.png b/public/images/doc/communities-search-results-with-example.pt.png deleted file mode 100644 index 0914edc..0000000 Binary files a/public/images/doc/communities-search-results-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/community-balloon-closed-en.png b/public/images/doc/community-balloon-closed-en.png deleted file mode 100644 index 70d4439..0000000 Binary files a/public/images/doc/community-balloon-closed-en.png and /dev/null differ diff --git a/public/images/doc/community-balloon-closed.en.png b/public/images/doc/community-balloon-closed.en.png deleted file mode 100644 index 70d4439..0000000 Binary files a/public/images/doc/community-balloon-closed.en.png and /dev/null differ diff --git a/public/images/doc/community-balloon-en.png b/public/images/doc/community-balloon-en.png deleted file mode 100644 index 8442c47..0000000 Binary files a/public/images/doc/community-balloon-en.png and /dev/null differ diff --git a/public/images/doc/community-balloon-pt.png b/public/images/doc/community-balloon-pt.png deleted file mode 100644 index 710d91e..0000000 Binary files a/public/images/doc/community-balloon-pt.png and /dev/null differ diff --git a/public/images/doc/community-balloon.en.png b/public/images/doc/community-balloon.en.png deleted file mode 100644 index 8442c47..0000000 Binary files a/public/images/doc/community-balloon.en.png and /dev/null differ diff --git a/public/images/doc/community-balloon.pt.png b/public/images/doc/community-balloon.pt.png deleted file mode 100644 index 710d91e..0000000 Binary files a/public/images/doc/community-balloon.pt.png and /dev/null differ diff --git a/public/images/doc/community-control-panel-manage-members.en.png b/public/images/doc/community-control-panel-manage-members.en.png deleted file mode 100644 index 4fce019..0000000 Binary files a/public/images/doc/community-control-panel-manage-members.en.png and /dev/null differ diff --git a/public/images/doc/community-control-panel-manage-members.pt.png b/public/images/doc/community-control-panel-manage-members.pt.png deleted file mode 100644 index 1533876..0000000 Binary files a/public/images/doc/community-control-panel-manage-members.pt.png and /dev/null differ diff --git a/public/images/doc/community-control-panel-with-approval-task.en.png b/public/images/doc/community-control-panel-with-approval-task.en.png deleted file mode 100644 index 49729a9..0000000 Binary files a/public/images/doc/community-control-panel-with-approval-task.en.png and /dev/null differ diff --git a/public/images/doc/community-control-panel-with-approval-task.pt.png b/public/images/doc/community-control-panel-with-approval-task.pt.png deleted file mode 100644 index 4664e06..0000000 Binary files a/public/images/doc/community-control-panel-with-approval-task.pt.png and /dev/null differ diff --git a/public/images/doc/community-control-panel-with-tasks.en.png b/public/images/doc/community-control-panel-with-tasks.en.png deleted file mode 100644 index 3e45fd4..0000000 Binary files a/public/images/doc/community-control-panel-with-tasks.en.png and /dev/null differ diff --git a/public/images/doc/community-control-panel-with-tasks.pt.png b/public/images/doc/community-control-panel-with-tasks.pt.png deleted file mode 100644 index a3a6205..0000000 Binary files a/public/images/doc/community-control-panel-with-tasks.pt.png and /dev/null differ diff --git a/public/images/doc/community-creation-form.en.png b/public/images/doc/community-creation-form.en.png deleted file mode 100644 index 3c353ab..0000000 Binary files a/public/images/doc/community-creation-form.en.png and /dev/null differ diff --git a/public/images/doc/community-creation-form.pt.png b/public/images/doc/community-creation-form.pt.png deleted file mode 100644 index 3a9b66e..0000000 Binary files a/public/images/doc/community-creation-form.pt.png and /dev/null differ diff --git a/public/images/doc/community-creation.en.png b/public/images/doc/community-creation.en.png deleted file mode 100644 index dbf8707..0000000 Binary files a/public/images/doc/community-creation.en.png and /dev/null differ diff --git a/public/images/doc/community-creation.pt.png b/public/images/doc/community-creation.pt.png deleted file mode 100644 index 364407c..0000000 Binary files a/public/images/doc/community-creation.pt.png and /dev/null differ diff --git a/public/images/doc/community-edit-sideboxes.en.png b/public/images/doc/community-edit-sideboxes.en.png deleted file mode 100644 index 0f395a7..0000000 Binary files a/public/images/doc/community-edit-sideboxes.en.png and /dev/null differ diff --git a/public/images/doc/community-edit-sideboxes.pt.png b/public/images/doc/community-edit-sideboxes.pt.png deleted file mode 100644 index 49390ac..0000000 Binary files a/public/images/doc/community-edit-sideboxes.pt.png and /dev/null differ diff --git a/public/images/doc/community-image-block.en.png b/public/images/doc/community-image-block.en.png deleted file mode 100644 index 0146336..0000000 Binary files a/public/images/doc/community-image-block.en.png and /dev/null differ diff --git a/public/images/doc/community-image-block.pt.png b/public/images/doc/community-image-block.pt.png deleted file mode 100644 index 4b3ae8b..0000000 Binary files a/public/images/doc/community-image-block.pt.png and /dev/null differ diff --git a/public/images/doc/community-import-invitation-step-1.en.png b/public/images/doc/community-import-invitation-step-1.en.png deleted file mode 100644 index de440c0..0000000 Binary files a/public/images/doc/community-import-invitation-step-1.en.png and /dev/null differ diff --git a/public/images/doc/community-import-invitation-step-1.pt.png b/public/images/doc/community-import-invitation-step-1.pt.png deleted file mode 100644 index b1b0705..0000000 Binary files a/public/images/doc/community-import-invitation-step-1.pt.png and /dev/null differ diff --git a/public/images/doc/community-import-invitation-step-2.en.png b/public/images/doc/community-import-invitation-step-2.en.png deleted file mode 100644 index c71559b..0000000 Binary files a/public/images/doc/community-import-invitation-step-2.en.png and /dev/null differ diff --git a/public/images/doc/community-import-invitation-step-2.pt.png b/public/images/doc/community-import-invitation-step-2.pt.png deleted file mode 100644 index 9c99f0a..0000000 Binary files a/public/images/doc/community-import-invitation-step-2.pt.png and /dev/null differ diff --git a/public/images/doc/community-info-block.en.png b/public/images/doc/community-info-block.en.png deleted file mode 100644 index 80a0dc2..0000000 Binary files a/public/images/doc/community-info-block.en.png and /dev/null differ diff --git a/public/images/doc/community-info-block.pt.png b/public/images/doc/community-info-block.pt.png deleted file mode 100644 index 6484dae..0000000 Binary files a/public/images/doc/community-info-block.pt.png and /dev/null differ diff --git a/public/images/doc/community-manually-invitation-step-1.en.png b/public/images/doc/community-manually-invitation-step-1.en.png deleted file mode 100644 index 70d0e05..0000000 Binary files a/public/images/doc/community-manually-invitation-step-1.en.png and /dev/null differ diff --git a/public/images/doc/community-manually-invitation-step-1.pt.png b/public/images/doc/community-manually-invitation-step-1.pt.png deleted file mode 100644 index 910ce4b..0000000 Binary files a/public/images/doc/community-manually-invitation-step-1.pt.png and /dev/null differ diff --git a/public/images/doc/community-manually-invitation-step-2.en.png b/public/images/doc/community-manually-invitation-step-2.en.png deleted file mode 100644 index c532136..0000000 Binary files a/public/images/doc/community-manually-invitation-step-2.en.png and /dev/null differ diff --git a/public/images/doc/community-manually-invitation-step-2.pt.png b/public/images/doc/community-manually-invitation-step-2.pt.png deleted file mode 100644 index 645b6ae..0000000 Binary files a/public/images/doc/community-manually-invitation-step-2.pt.png and /dev/null differ diff --git a/public/images/doc/community-members-with-invitation-button.en.png b/public/images/doc/community-members-with-invitation-button.en.png deleted file mode 100644 index 8b4044f..0000000 Binary files a/public/images/doc/community-members-with-invitation-button.en.png and /dev/null differ diff --git a/public/images/doc/community-members-with-invitation-button.pt.png b/public/images/doc/community-members-with-invitation-button.pt.png deleted file mode 100644 index 999f7ad..0000000 Binary files a/public/images/doc/community-members-with-invitation-button.pt.png and /dev/null differ diff --git a/public/images/doc/community-members-with-send-mail-button.en.png b/public/images/doc/community-members-with-send-mail-button.en.png deleted file mode 100644 index 9dac666..0000000 Binary files a/public/images/doc/community-members-with-send-mail-button.en.png and /dev/null differ diff --git a/public/images/doc/community-members-with-send-mail-button.pt.png b/public/images/doc/community-members-with-send-mail-button.pt.png deleted file mode 100644 index 2d9629d..0000000 Binary files a/public/images/doc/community-members-with-send-mail-button.pt.png and /dev/null differ diff --git a/public/images/doc/community-network-block.en.png b/public/images/doc/community-network-block.en.png deleted file mode 100644 index 4749abe..0000000 Binary files a/public/images/doc/community-network-block.en.png and /dev/null differ diff --git a/public/images/doc/community-network-block.pt.png b/public/images/doc/community-network-block.pt.png deleted file mode 100644 index 04bb67e..0000000 Binary files a/public/images/doc/community-network-block.pt.png and /dev/null differ diff --git a/public/images/doc/community-send-email.en.png b/public/images/doc/community-send-email.en.png deleted file mode 100644 index a6bacb3..0000000 Binary files a/public/images/doc/community-send-email.en.png and /dev/null differ diff --git a/public/images/doc/community-send-email.pt.png b/public/images/doc/community-send-email.pt.png deleted file mode 100644 index 9b34ab2..0000000 Binary files a/public/images/doc/community-send-email.pt.png and /dev/null differ diff --git a/public/images/doc/community-sideboxes-add-block.en.png b/public/images/doc/community-sideboxes-add-block.en.png deleted file mode 100644 index 98ab03a..0000000 Binary files a/public/images/doc/community-sideboxes-add-block.en.png and /dev/null differ diff --git a/public/images/doc/community-sideboxes-add-block.pt.png b/public/images/doc/community-sideboxes-add-block.pt.png deleted file mode 100644 index d11b97f..0000000 Binary files a/public/images/doc/community-sideboxes-add-block.pt.png and /dev/null differ diff --git a/public/images/doc/confirmation-adding-friend.en.png b/public/images/doc/confirmation-adding-friend.en.png deleted file mode 100644 index 2842c02..0000000 Binary files a/public/images/doc/confirmation-adding-friend.en.png and /dev/null differ diff --git a/public/images/doc/confirmation-adding-friend.pt.png b/public/images/doc/confirmation-adding-friend.pt.png deleted file mode 100644 index 4b97a5f..0000000 Binary files a/public/images/doc/confirmation-adding-friend.pt.png and /dev/null differ diff --git a/public/images/doc/contact-button.en.png b/public/images/doc/contact-button.en.png deleted file mode 100644 index 44d4098..0000000 Binary files a/public/images/doc/contact-button.en.png and /dev/null differ diff --git a/public/images/doc/contact-button.pt.png b/public/images/doc/contact-button.pt.png deleted file mode 100644 index 53f8b3a..0000000 Binary files a/public/images/doc/contact-button.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-change-password.en.png b/public/images/doc/control-panel-change-password.en.png deleted file mode 100644 index 5b94cbc..0000000 Binary files a/public/images/doc/control-panel-change-password.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-change-password.pt.png b/public/images/doc/control-panel-change-password.pt.png deleted file mode 100644 index b9838ab..0000000 Binary files a/public/images/doc/control-panel-change-password.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-community-edit-appearance.en.png b/public/images/doc/control-panel-community-edit-appearance.en.png deleted file mode 100644 index f3046d2..0000000 Binary files a/public/images/doc/control-panel-community-edit-appearance.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-community-edit-appearance.pt.png b/public/images/doc/control-panel-community-edit-appearance.pt.png deleted file mode 100644 index 3e5c95d..0000000 Binary files a/public/images/doc/control-panel-community-edit-appearance.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-community-edit-header-footer.en.png b/public/images/doc/control-panel-community-edit-header-footer.en.png deleted file mode 100644 index 9890418..0000000 Binary files a/public/images/doc/control-panel-community-edit-header-footer.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-community-edit-header-footer.pt.png b/public/images/doc/control-panel-community-edit-header-footer.pt.png deleted file mode 100644 index 9589ee9..0000000 Binary files a/public/images/doc/control-panel-community-edit-header-footer.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-community-edit-sideboxes.en.png b/public/images/doc/control-panel-community-edit-sideboxes.en.png deleted file mode 100644 index 5440988..0000000 Binary files a/public/images/doc/control-panel-community-edit-sideboxes.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-community-edit-sideboxes.pt.png b/public/images/doc/control-panel-community-edit-sideboxes.pt.png deleted file mode 100644 index 6c9054f..0000000 Binary files a/public/images/doc/control-panel-community-edit-sideboxes.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-content-management.en.png b/public/images/doc/control-panel-content-management.en.png deleted file mode 100644 index 3671235..0000000 Binary files a/public/images/doc/control-panel-content-management.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-content-management.pt.png b/public/images/doc/control-panel-content-management.pt.png deleted file mode 100644 index 39c565d..0000000 Binary files a/public/images/doc/control-panel-content-management.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-create-blog.en.png b/public/images/doc/control-panel-create-blog.en.png deleted file mode 100644 index 3913701..0000000 Binary files a/public/images/doc/control-panel-create-blog.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-create-blog.pt.png b/public/images/doc/control-panel-create-blog.pt.png deleted file mode 100644 index 341adbd..0000000 Binary files a/public/images/doc/control-panel-create-blog.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-disable-enterprise.en.png b/public/images/doc/control-panel-disable-enterprise.en.png deleted file mode 100644 index 9fc1e15..0000000 Binary files a/public/images/doc/control-panel-disable-enterprise.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-disable-enterprise.pt.png b/public/images/doc/control-panel-disable-enterprise.pt.png deleted file mode 100644 index c38e122..0000000 Binary files a/public/images/doc/control-panel-disable-enterprise.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-enterprise-edit-appearance.en.png b/public/images/doc/control-panel-enterprise-edit-appearance.en.png deleted file mode 100644 index 9042254..0000000 Binary files a/public/images/doc/control-panel-enterprise-edit-appearance.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-enterprise-edit-appearance.pt.png b/public/images/doc/control-panel-enterprise-edit-appearance.pt.png deleted file mode 100644 index 47143dc..0000000 Binary files a/public/images/doc/control-panel-enterprise-edit-appearance.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-enterprise-edit-header-footer.en.png b/public/images/doc/control-panel-enterprise-edit-header-footer.en.png deleted file mode 100644 index 91c5aea..0000000 Binary files a/public/images/doc/control-panel-enterprise-edit-header-footer.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-enterprise-edit-header-footer.pt.png b/public/images/doc/control-panel-enterprise-edit-header-footer.pt.png deleted file mode 100644 index 7821395..0000000 Binary files a/public/images/doc/control-panel-enterprise-edit-header-footer.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-enterprise-edit-profile-info.en.png b/public/images/doc/control-panel-enterprise-edit-profile-info.en.png deleted file mode 100644 index 37d7736..0000000 Binary files a/public/images/doc/control-panel-enterprise-edit-profile-info.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-enterprise-edit-profile-info.pt.png b/public/images/doc/control-panel-enterprise-edit-profile-info.pt.png deleted file mode 100644 index 4727106..0000000 Binary files a/public/images/doc/control-panel-enterprise-edit-profile-info.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-enterprise-edit-sideboxes.en.png b/public/images/doc/control-panel-enterprise-edit-sideboxes.en.png deleted file mode 100644 index b403b01..0000000 Binary files a/public/images/doc/control-panel-enterprise-edit-sideboxes.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-enterprise-edit-sideboxes.pt.png b/public/images/doc/control-panel-enterprise-edit-sideboxes.pt.png deleted file mode 100644 index b0e0e38..0000000 Binary files a/public/images/doc/control-panel-enterprise-edit-sideboxes.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-manage-groups.en.png b/public/images/doc/control-panel-manage-groups.en.png deleted file mode 100644 index d6be071..0000000 Binary files a/public/images/doc/control-panel-manage-groups.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-manage-groups.pt.png b/public/images/doc/control-panel-manage-groups.pt.png deleted file mode 100644 index 1648f81..0000000 Binary files a/public/images/doc/control-panel-manage-groups.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-manage-members.en.png b/public/images/doc/control-panel-manage-members.en.png deleted file mode 100644 index 79069db..0000000 Binary files a/public/images/doc/control-panel-manage-members.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-manage-members.pt.png b/public/images/doc/control-panel-manage-members.pt.png deleted file mode 100644 index e41577d..0000000 Binary files a/public/images/doc/control-panel-manage-members.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-manage-products.en.png b/public/images/doc/control-panel-manage-products.en.png deleted file mode 100644 index 99884d9..0000000 Binary files a/public/images/doc/control-panel-manage-products.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-manage-products.pt.png b/public/images/doc/control-panel-manage-products.pt.png deleted file mode 100644 index 78a71bd..0000000 Binary files a/public/images/doc/control-panel-manage-products.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-menu.en.png b/public/images/doc/control-panel-menu.en.png deleted file mode 100644 index b671241..0000000 Binary files a/public/images/doc/control-panel-menu.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-menu.pt.png b/public/images/doc/control-panel-menu.pt.png deleted file mode 100644 index f57794c..0000000 Binary files a/public/images/doc/control-panel-menu.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-person-delete-profile.en.png b/public/images/doc/control-panel-person-delete-profile.en.png deleted file mode 100644 index d8908a3..0000000 Binary files a/public/images/doc/control-panel-person-delete-profile.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-person-delete-profile.pt.png b/public/images/doc/control-panel-person-delete-profile.pt.png deleted file mode 100644 index 584ab75..0000000 Binary files a/public/images/doc/control-panel-person-delete-profile.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-person-edit-profile-info.en.png b/public/images/doc/control-panel-person-edit-profile-info.en.png deleted file mode 100644 index 3634455..0000000 Binary files a/public/images/doc/control-panel-person-edit-profile-info.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-person-edit-profile-info.pt.png b/public/images/doc/control-panel-person-edit-profile-info.pt.png deleted file mode 100644 index d728831..0000000 Binary files a/public/images/doc/control-panel-person-edit-profile-info.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-user-edit-appearance.en.png b/public/images/doc/control-panel-user-edit-appearance.en.png deleted file mode 100644 index 043be82..0000000 Binary files a/public/images/doc/control-panel-user-edit-appearance.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-user-edit-appearance.pt.png b/public/images/doc/control-panel-user-edit-appearance.pt.png deleted file mode 100644 index 888e741..0000000 Binary files a/public/images/doc/control-panel-user-edit-appearance.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-user-edit-header-footer.en.png b/public/images/doc/control-panel-user-edit-header-footer.en.png deleted file mode 100644 index 3f0f3b3..0000000 Binary files a/public/images/doc/control-panel-user-edit-header-footer.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-user-edit-header-footer.pt.png b/public/images/doc/control-panel-user-edit-header-footer.pt.png deleted file mode 100644 index 82aa363..0000000 Binary files a/public/images/doc/control-panel-user-edit-header-footer.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-user-edit-sideboxes.en.png b/public/images/doc/control-panel-user-edit-sideboxes.en.png deleted file mode 100644 index 0e9684e..0000000 Binary files a/public/images/doc/control-panel-user-edit-sideboxes.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-user-edit-sideboxes.pt.png b/public/images/doc/control-panel-user-edit-sideboxes.pt.png deleted file mode 100644 index e7c183a..0000000 Binary files a/public/images/doc/control-panel-user-edit-sideboxes.pt.png and /dev/null differ diff --git a/public/images/doc/control-panel-with-tasks.en.png b/public/images/doc/control-panel-with-tasks.en.png deleted file mode 100644 index 7e070db..0000000 Binary files a/public/images/doc/control-panel-with-tasks.en.png and /dev/null differ diff --git a/public/images/doc/control-panel-with-tasks.pt.png b/public/images/doc/control-panel-with-tasks.pt.png deleted file mode 100644 index 0302de5..0000000 Binary files a/public/images/doc/control-panel-with-tasks.pt.png and /dev/null differ diff --git a/public/images/doc/disable-enterprise-confirmation.en.png b/public/images/doc/disable-enterprise-confirmation.en.png deleted file mode 100644 index 4779e18..0000000 Binary files a/public/images/doc/disable-enterprise-confirmation.en.png and /dev/null differ diff --git a/public/images/doc/disable-enterprise-confirmation.pt.png b/public/images/doc/disable-enterprise-confirmation.pt.png deleted file mode 100644 index d885a97..0000000 Binary files a/public/images/doc/disable-enterprise-confirmation.pt.png and /dev/null differ diff --git a/public/images/doc/disabled-enterprise-block.en.png b/public/images/doc/disabled-enterprise-block.en.png deleted file mode 100644 index 592367a..0000000 Binary files a/public/images/doc/disabled-enterprise-block.en.png and /dev/null differ diff --git a/public/images/doc/disabled-enterprise-block.pt.png b/public/images/doc/disabled-enterprise-block.pt.png deleted file mode 100644 index 23b9164..0000000 Binary files a/public/images/doc/disabled-enterprise-block.pt.png and /dev/null differ diff --git a/public/images/doc/edit-appearance.en.png b/public/images/doc/edit-appearance.en.png deleted file mode 100644 index 94d5a30..0000000 Binary files a/public/images/doc/edit-appearance.en.png and /dev/null differ diff --git a/public/images/doc/edit-appearance.pt.png b/public/images/doc/edit-appearance.pt.png deleted file mode 100644 index 7682d1f..0000000 Binary files a/public/images/doc/edit-appearance.pt.png and /dev/null differ diff --git a/public/images/doc/edit-block.en.png b/public/images/doc/edit-block.en.png deleted file mode 100644 index fa0e8fc..0000000 Binary files a/public/images/doc/edit-block.en.png and /dev/null differ diff --git a/public/images/doc/edit-block.pt.png b/public/images/doc/edit-block.pt.png deleted file mode 100644 index 6168fbc..0000000 Binary files a/public/images/doc/edit-block.pt.png and /dev/null differ diff --git a/public/images/doc/edit-header-footer.en.png b/public/images/doc/edit-header-footer.en.png deleted file mode 100644 index e5aed7b..0000000 Binary files a/public/images/doc/edit-header-footer.en.png and /dev/null differ diff --git a/public/images/doc/edit-header-footer.pt.png b/public/images/doc/edit-header-footer.pt.png deleted file mode 100644 index b112891..0000000 Binary files a/public/images/doc/edit-header-footer.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-activation-box.en.png b/public/images/doc/enterprise-activation-box.en.png deleted file mode 100644 index e28acbb..0000000 Binary files a/public/images/doc/enterprise-activation-box.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-activation-box.pt.png b/public/images/doc/enterprise-activation-box.pt.png deleted file mode 100644 index a18c614..0000000 Binary files a/public/images/doc/enterprise-activation-box.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-activation-terms.en.png b/public/images/doc/enterprise-activation-terms.en.png deleted file mode 100644 index 4262657..0000000 Binary files a/public/images/doc/enterprise-activation-terms.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-activation-terms.pt.png b/public/images/doc/enterprise-activation-terms.pt.png deleted file mode 100644 index b900b92..0000000 Binary files a/public/images/doc/enterprise-activation-terms.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-categories.en.png b/public/images/doc/enterprise-edit-profile-categories.en.png deleted file mode 100644 index 6756ca3..0000000 Binary files a/public/images/doc/enterprise-edit-profile-categories.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-categories.pt.png b/public/images/doc/enterprise-edit-profile-categories.pt.png deleted file mode 100644 index b189075..0000000 Binary files a/public/images/doc/enterprise-edit-profile-categories.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-info-add-picture.en.png b/public/images/doc/enterprise-edit-profile-info-add-picture.en.png deleted file mode 100644 index 653b816..0000000 Binary files a/public/images/doc/enterprise-edit-profile-info-add-picture.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-info-add-picture.pt.png b/public/images/doc/enterprise-edit-profile-info-add-picture.pt.png deleted file mode 100644 index cf82fed..0000000 Binary files a/public/images/doc/enterprise-edit-profile-info-add-picture.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-info-change-picture.en.png b/public/images/doc/enterprise-edit-profile-info-change-picture.en.png deleted file mode 100644 index d342a76..0000000 Binary files a/public/images/doc/enterprise-edit-profile-info-change-picture.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-info-change-picture.pt.png b/public/images/doc/enterprise-edit-profile-info-change-picture.pt.png deleted file mode 100644 index 0b67347..0000000 Binary files a/public/images/doc/enterprise-edit-profile-info-change-picture.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-info-general-information.en.png b/public/images/doc/enterprise-edit-profile-info-general-information.en.png deleted file mode 100644 index 5bbdacf..0000000 Binary files a/public/images/doc/enterprise-edit-profile-info-general-information.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-info-general-information.pt.png b/public/images/doc/enterprise-edit-profile-info-general-information.pt.png deleted file mode 100644 index 6c4665f..0000000 Binary files a/public/images/doc/enterprise-edit-profile-info-general-information.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-info-moderation-options.en.png b/public/images/doc/enterprise-edit-profile-info-moderation-options.en.png deleted file mode 100644 index de4f009..0000000 Binary files a/public/images/doc/enterprise-edit-profile-info-moderation-options.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-info-moderation-options.pt.png b/public/images/doc/enterprise-edit-profile-info-moderation-options.pt.png deleted file mode 100644 index 6cbce4d..0000000 Binary files a/public/images/doc/enterprise-edit-profile-info-moderation-options.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-privacy-options.en.png b/public/images/doc/enterprise-edit-profile-privacy-options.en.png deleted file mode 100644 index 9bf2f36..0000000 Binary files a/public/images/doc/enterprise-edit-profile-privacy-options.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-profile-privacy-options.pt.png b/public/images/doc/enterprise-edit-profile-privacy-options.pt.png deleted file mode 100644 index 7abad6f..0000000 Binary files a/public/images/doc/enterprise-edit-profile-privacy-options.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-sideboxes.en.png b/public/images/doc/enterprise-edit-sideboxes.en.png deleted file mode 100644 index 9709b04..0000000 Binary files a/public/images/doc/enterprise-edit-sideboxes.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-edit-sideboxes.pt.png b/public/images/doc/enterprise-edit-sideboxes.pt.png deleted file mode 100644 index 685383d..0000000 Binary files a/public/images/doc/enterprise-edit-sideboxes.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-image-block.en.png b/public/images/doc/enterprise-image-block.en.png deleted file mode 100644 index 5706beb..0000000 Binary files a/public/images/doc/enterprise-image-block.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-image-block.pt.png b/public/images/doc/enterprise-image-block.pt.png deleted file mode 100644 index de0465c..0000000 Binary files a/public/images/doc/enterprise-image-block.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-info-block.en.png b/public/images/doc/enterprise-info-block.en.png deleted file mode 100644 index b14cfa9..0000000 Binary files a/public/images/doc/enterprise-info-block.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-info-block.pt.png b/public/images/doc/enterprise-info-block.pt.png deleted file mode 100644 index dcef6a8..0000000 Binary files a/public/images/doc/enterprise-info-block.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-members-list.en.png b/public/images/doc/enterprise-members-list.en.png deleted file mode 100644 index b548320..0000000 Binary files a/public/images/doc/enterprise-members-list.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-members-list.pt.png b/public/images/doc/enterprise-members-list.pt.png deleted file mode 100644 index 3aaf647..0000000 Binary files a/public/images/doc/enterprise-members-list.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-network-block.en.png b/public/images/doc/enterprise-network-block.en.png deleted file mode 100644 index 558d307..0000000 Binary files a/public/images/doc/enterprise-network-block.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-network-block.pt.png b/public/images/doc/enterprise-network-block.pt.png deleted file mode 100644 index 35a607c..0000000 Binary files a/public/images/doc/enterprise-network-block.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-new-product-last-category.en.png b/public/images/doc/enterprise-new-product-last-category.en.png deleted file mode 100644 index af9e3b2..0000000 Binary files a/public/images/doc/enterprise-new-product-last-category.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-new-product-no-category.en.png b/public/images/doc/enterprise-new-product-no-category.en.png deleted file mode 100644 index 9805877..0000000 Binary files a/public/images/doc/enterprise-new-product-no-category.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-new-product-second-category.en.png b/public/images/doc/enterprise-new-product-second-category.en.png deleted file mode 100644 index e19ef19..0000000 Binary files a/public/images/doc/enterprise-new-product-second-category.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-product-add-input-button.en.png b/public/images/doc/enterprise-product-add-input-button.en.png deleted file mode 100644 index 7cb22f1..0000000 Binary files a/public/images/doc/enterprise-product-add-input-button.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-product-add-input-form.en.png b/public/images/doc/enterprise-product-add-input-form.en.png deleted file mode 100644 index 0165230..0000000 Binary files a/public/images/doc/enterprise-product-add-input-form.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-product-change-image-form.en.png b/public/images/doc/enterprise-product-change-image-form.en.png deleted file mode 100644 index 52a3d21..0000000 Binary files a/public/images/doc/enterprise-product-change-image-form.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-product-complete.en.png b/public/images/doc/enterprise-product-complete.en.png deleted file mode 100644 index 70a14d4..0000000 Binary files a/public/images/doc/enterprise-product-complete.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-product-edit-basic-info-form.en.png b/public/images/doc/enterprise-product-edit-basic-info-form.en.png deleted file mode 100644 index 3ff2d5f..0000000 Binary files a/public/images/doc/enterprise-product-edit-basic-info-form.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-product-edit-description-form.en.png b/public/images/doc/enterprise-product-edit-description-form.en.png deleted file mode 100644 index 4572f12..0000000 Binary files a/public/images/doc/enterprise-product-edit-description-form.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-product-edit-name-form.en.png b/public/images/doc/enterprise-product-edit-name-form.en.png deleted file mode 100644 index e32e399..0000000 Binary files a/public/images/doc/enterprise-product-edit-name-form.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-product-list-new-product-button.en.png b/public/images/doc/enterprise-product-list-new-product-button.en.png deleted file mode 100644 index 0286dc1..0000000 Binary files a/public/images/doc/enterprise-product-list-new-product-button.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-product-list-new-product-button.pt.png b/public/images/doc/enterprise-product-list-new-product-button.pt.png deleted file mode 100644 index c769dbe..0000000 Binary files a/public/images/doc/enterprise-product-list-new-product-button.pt.png and /dev/null differ diff --git a/public/images/doc/enterprise-product.en.png b/public/images/doc/enterprise-product.en.png deleted file mode 100644 index 04ab1ed..0000000 Binary files a/public/images/doc/enterprise-product.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-sideboxes-add-block.en.png b/public/images/doc/enterprise-sideboxes-add-block.en.png deleted file mode 100644 index 4b3dae0..0000000 Binary files a/public/images/doc/enterprise-sideboxes-add-block.en.png and /dev/null differ diff --git a/public/images/doc/enterprise-sideboxes-add-block.pt.png b/public/images/doc/enterprise-sideboxes-add-block.pt.png deleted file mode 100644 index fb01164..0000000 Binary files a/public/images/doc/enterprise-sideboxes-add-block.pt.png and /dev/null differ diff --git a/public/images/doc/enterprises-block.en.png b/public/images/doc/enterprises-block.en.png deleted file mode 100644 index 7ce8361..0000000 Binary files a/public/images/doc/enterprises-block.en.png and /dev/null differ diff --git a/public/images/doc/enterprises-block.pt.png b/public/images/doc/enterprises-block.pt.png deleted file mode 100644 index 4300756..0000000 Binary files a/public/images/doc/enterprises-block.pt.png and /dev/null differ diff --git a/public/images/doc/enterprises-search-field.en.png b/public/images/doc/enterprises-search-field.en.png deleted file mode 100644 index edfbe04..0000000 Binary files a/public/images/doc/enterprises-search-field.en.png and /dev/null differ diff --git a/public/images/doc/enterprises-search-field.pt.png b/public/images/doc/enterprises-search-field.pt.png deleted file mode 100644 index 32ccdba..0000000 Binary files a/public/images/doc/enterprises-search-field.pt.png and /dev/null differ diff --git a/public/images/doc/enterprises-search-results-with-example.en.png b/public/images/doc/enterprises-search-results-with-example.en.png deleted file mode 100644 index 259f05f..0000000 Binary files a/public/images/doc/enterprises-search-results-with-example.en.png and /dev/null differ diff --git a/public/images/doc/enterprises-search-results-with-example.pt.png b/public/images/doc/enterprises-search-results-with-example.pt.png deleted file mode 100644 index 32ccdba..0000000 Binary files a/public/images/doc/enterprises-search-results-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/environment-homepage-with-login-button.en.png b/public/images/doc/environment-homepage-with-login-button.en.png deleted file mode 100644 index 763258a..0000000 Binary files a/public/images/doc/environment-homepage-with-login-button.en.png and /dev/null differ diff --git a/public/images/doc/environment-homepage-with-login-button.pt.png b/public/images/doc/environment-homepage-with-login-button.pt.png deleted file mode 100644 index e334d46..0000000 Binary files a/public/images/doc/environment-homepage-with-login-button.pt.png and /dev/null differ diff --git a/public/images/doc/favorite-enterprises-block.en.png b/public/images/doc/favorite-enterprises-block.en.png deleted file mode 100644 index 31863db..0000000 Binary files a/public/images/doc/favorite-enterprises-block.en.png and /dev/null differ diff --git a/public/images/doc/favorite-enterprises-block.pt.png b/public/images/doc/favorite-enterprises-block.pt.png deleted file mode 100644 index 0f51963..0000000 Binary files a/public/images/doc/favorite-enterprises-block.pt.png and /dev/null differ diff --git a/public/images/doc/feed-reader-block.en.png b/public/images/doc/feed-reader-block.en.png deleted file mode 100644 index 7ae67dd..0000000 Binary files a/public/images/doc/feed-reader-block.en.png and /dev/null differ diff --git a/public/images/doc/feed-reader-block.pt.png b/public/images/doc/feed-reader-block.pt.png deleted file mode 100644 index 44d4b65..0000000 Binary files a/public/images/doc/feed-reader-block.pt.png and /dev/null differ diff --git a/public/images/doc/friends-block.en.png b/public/images/doc/friends-block.en.png deleted file mode 100644 index 6a1a522..0000000 Binary files a/public/images/doc/friends-block.en.png and /dev/null differ diff --git a/public/images/doc/friends-block.pt.png b/public/images/doc/friends-block.pt.png deleted file mode 100644 index 14ef697..0000000 Binary files a/public/images/doc/friends-block.pt.png and /dev/null differ diff --git a/public/images/doc/gallery-buttons.en.png b/public/images/doc/gallery-buttons.en.png deleted file mode 100644 index cd757fb..0000000 Binary files a/public/images/doc/gallery-buttons.en.png and /dev/null differ diff --git a/public/images/doc/gallery-buttons.pt.png b/public/images/doc/gallery-buttons.pt.png deleted file mode 100644 index 62cc7ca..0000000 Binary files a/public/images/doc/gallery-buttons.pt.png and /dev/null differ diff --git a/public/images/doc/groups-list-with-create-community.en.png b/public/images/doc/groups-list-with-create-community.en.png deleted file mode 100644 index c39383d..0000000 Binary files a/public/images/doc/groups-list-with-create-community.en.png and /dev/null differ diff --git a/public/images/doc/groups-list-with-create-community.pt.png b/public/images/doc/groups-list-with-create-community.pt.png deleted file mode 100644 index 677b1e3..0000000 Binary files a/public/images/doc/groups-list-with-create-community.pt.png and /dev/null differ diff --git a/public/images/doc/groups-list-with-manage-community.en.png b/public/images/doc/groups-list-with-manage-community.en.png deleted file mode 100644 index 0dddd50..0000000 Binary files a/public/images/doc/groups-list-with-manage-community.en.png and /dev/null differ diff --git a/public/images/doc/groups-list-with-manage-community.pt.png b/public/images/doc/groups-list-with-manage-community.pt.png deleted file mode 100644 index 5cafebe..0000000 Binary files a/public/images/doc/groups-list-with-manage-community.pt.png and /dev/null differ diff --git a/public/images/doc/groups-list-with-manage-enterprise.en.png b/public/images/doc/groups-list-with-manage-enterprise.en.png deleted file mode 100644 index d882c53..0000000 Binary files a/public/images/doc/groups-list-with-manage-enterprise.en.png and /dev/null differ diff --git a/public/images/doc/groups-list-with-manage-enterprise.pt.png b/public/images/doc/groups-list-with-manage-enterprise.pt.png deleted file mode 100644 index a767ccd..0000000 Binary files a/public/images/doc/groups-list-with-manage-enterprise.pt.png and /dev/null differ diff --git a/public/images/doc/join-community-confirmation.en.png b/public/images/doc/join-community-confirmation.en.png deleted file mode 100644 index 3cf45ee..0000000 Binary files a/public/images/doc/join-community-confirmation.en.png and /dev/null differ diff --git a/public/images/doc/join-community-confirmation.pt.png b/public/images/doc/join-community-confirmation.pt.png deleted file mode 100644 index 3a9bda9..0000000 Binary files a/public/images/doc/join-community-confirmation.pt.png and /dev/null differ diff --git a/public/images/doc/joining-community-button.en.png b/public/images/doc/joining-community-button.en.png deleted file mode 100644 index d943e66..0000000 Binary files a/public/images/doc/joining-community-button.en.png and /dev/null differ diff --git a/public/images/doc/joining-community-button.pt.png b/public/images/doc/joining-community-button.pt.png deleted file mode 100644 index d7febd8..0000000 Binary files a/public/images/doc/joining-community-button.pt.png and /dev/null differ diff --git a/public/images/doc/links-block.en.png b/public/images/doc/links-block.en.png deleted file mode 100644 index f78bddf..0000000 Binary files a/public/images/doc/links-block.en.png and /dev/null differ diff --git a/public/images/doc/links-block.pt.png b/public/images/doc/links-block.pt.png deleted file mode 100644 index 1d55f4b..0000000 Binary files a/public/images/doc/links-block.pt.png and /dev/null differ diff --git a/public/images/doc/location-map-block.en.png b/public/images/doc/location-map-block.en.png deleted file mode 100644 index b199417..0000000 Binary files a/public/images/doc/location-map-block.en.png and /dev/null differ diff --git a/public/images/doc/location-map-block.pt.png b/public/images/doc/location-map-block.pt.png deleted file mode 100644 index 3c356d5..0000000 Binary files a/public/images/doc/location-map-block.pt.png and /dev/null differ diff --git a/public/images/doc/manage-friends.en.png b/public/images/doc/manage-friends.en.png deleted file mode 100644 index 3ffb496..0000000 Binary files a/public/images/doc/manage-friends.en.png and /dev/null differ diff --git a/public/images/doc/manage-friends.pt.png b/public/images/doc/manage-friends.pt.png deleted file mode 100644 index c2c969b..0000000 Binary files a/public/images/doc/manage-friends.pt.png and /dev/null differ diff --git a/public/images/doc/members-block.en.png b/public/images/doc/members-block.en.png deleted file mode 100644 index eb38bdb..0000000 Binary files a/public/images/doc/members-block.en.png and /dev/null differ diff --git a/public/images/doc/members-block.pt.png b/public/images/doc/members-block.pt.png deleted file mode 100644 index 700d188..0000000 Binary files a/public/images/doc/members-block.pt.png and /dev/null differ diff --git a/public/images/doc/menu-admin.en.png b/public/images/doc/menu-admin.en.png deleted file mode 100644 index e1a0e5f..0000000 Binary files a/public/images/doc/menu-admin.en.png and /dev/null differ diff --git a/public/images/doc/menu-admin.pt.png b/public/images/doc/menu-admin.pt.png deleted file mode 100644 index dad58fa..0000000 Binary files a/public/images/doc/menu-admin.pt.png and /dev/null differ diff --git a/public/images/doc/menu-communities.en.png b/public/images/doc/menu-communities.en.png deleted file mode 100644 index b20ec3f..0000000 Binary files a/public/images/doc/menu-communities.en.png and /dev/null differ diff --git a/public/images/doc/menu-communities.pt.png b/public/images/doc/menu-communities.pt.png deleted file mode 100644 index 21ca281..0000000 Binary files a/public/images/doc/menu-communities.pt.png and /dev/null differ diff --git a/public/images/doc/menu-control-panel.en.png b/public/images/doc/menu-control-panel.en.png deleted file mode 100644 index b671241..0000000 Binary files a/public/images/doc/menu-control-panel.en.png and /dev/null differ diff --git a/public/images/doc/menu-control-panel.pt.png b/public/images/doc/menu-control-panel.pt.png deleted file mode 100644 index f57794c..0000000 Binary files a/public/images/doc/menu-control-panel.pt.png and /dev/null differ diff --git a/public/images/doc/menu-enterprises.en.png b/public/images/doc/menu-enterprises.en.png deleted file mode 100644 index a4cb929..0000000 Binary files a/public/images/doc/menu-enterprises.en.png and /dev/null differ diff --git a/public/images/doc/menu-enterprises.pt.png b/public/images/doc/menu-enterprises.pt.png deleted file mode 100644 index 5131f18..0000000 Binary files a/public/images/doc/menu-enterprises.pt.png and /dev/null differ diff --git a/public/images/doc/menu-logout.en.png b/public/images/doc/menu-logout.en.png deleted file mode 100644 index b9cf98b..0000000 Binary files a/public/images/doc/menu-logout.en.png and /dev/null differ diff --git a/public/images/doc/menu-logout.pt.png b/public/images/doc/menu-logout.pt.png deleted file mode 100644 index 8958acc..0000000 Binary files a/public/images/doc/menu-logout.pt.png and /dev/null differ diff --git a/public/images/doc/menu-more-active-communities.en.png b/public/images/doc/menu-more-active-communities.en.png deleted file mode 100644 index 1386852..0000000 Binary files a/public/images/doc/menu-more-active-communities.en.png and /dev/null differ diff --git a/public/images/doc/menu-more-active-communities.pt.png b/public/images/doc/menu-more-active-communities.pt.png deleted file mode 100644 index 5a9f7b4..0000000 Binary files a/public/images/doc/menu-more-active-communities.pt.png and /dev/null differ diff --git a/public/images/doc/menu-more-active-people.en.png b/public/images/doc/menu-more-active-people.en.png deleted file mode 100644 index a52b8f8..0000000 Binary files a/public/images/doc/menu-more-active-people.en.png and /dev/null differ diff --git a/public/images/doc/menu-more-active-people.pt.png b/public/images/doc/menu-more-active-people.pt.png deleted file mode 100644 index ff662eb..0000000 Binary files a/public/images/doc/menu-more-active-people.pt.png and /dev/null differ diff --git a/public/images/doc/menu-more-popular-communities.en.png b/public/images/doc/menu-more-popular-communities.en.png deleted file mode 100644 index 20c473f..0000000 Binary files a/public/images/doc/menu-more-popular-communities.en.png and /dev/null differ diff --git a/public/images/doc/menu-more-popular-communities.pt.png b/public/images/doc/menu-more-popular-communities.pt.png deleted file mode 100644 index a7699d8..0000000 Binary files a/public/images/doc/menu-more-popular-communities.pt.png and /dev/null differ diff --git a/public/images/doc/menu-more-popular-people.en.png b/public/images/doc/menu-more-popular-people.en.png deleted file mode 100644 index 99db373..0000000 Binary files a/public/images/doc/menu-more-popular-people.en.png and /dev/null differ diff --git a/public/images/doc/menu-more-popular-people.pt.png b/public/images/doc/menu-more-popular-people.pt.png deleted file mode 100644 index 8643597..0000000 Binary files a/public/images/doc/menu-more-popular-people.pt.png and /dev/null differ diff --git a/public/images/doc/menu-more-recent-communities.en.png b/public/images/doc/menu-more-recent-communities.en.png deleted file mode 100644 index 7d4af84..0000000 Binary files a/public/images/doc/menu-more-recent-communities.en.png and /dev/null differ diff --git a/public/images/doc/menu-more-recent-communities.pt.png b/public/images/doc/menu-more-recent-communities.pt.png deleted file mode 100644 index 149ebd3..0000000 Binary files a/public/images/doc/menu-more-recent-communities.pt.png and /dev/null differ diff --git a/public/images/doc/menu-more-recent-people.en.png b/public/images/doc/menu-more-recent-people.en.png deleted file mode 100644 index 1deaa69..0000000 Binary files a/public/images/doc/menu-more-recent-people.en.png and /dev/null differ diff --git a/public/images/doc/menu-more-recent-people.pt.png b/public/images/doc/menu-more-recent-people.pt.png deleted file mode 100644 index 0de31be..0000000 Binary files a/public/images/doc/menu-more-recent-people.pt.png and /dev/null differ diff --git a/public/images/doc/menu-people.en.png b/public/images/doc/menu-people.en.png deleted file mode 100644 index 6a84b6a..0000000 Binary files a/public/images/doc/menu-people.en.png and /dev/null differ diff --git a/public/images/doc/menu-people.pt.png b/public/images/doc/menu-people.pt.png deleted file mode 100644 index 08353ef..0000000 Binary files a/public/images/doc/menu-people.pt.png and /dev/null differ diff --git a/public/images/doc/menu-products.en.png b/public/images/doc/menu-products.en.png deleted file mode 100644 index 1b062c1..0000000 Binary files a/public/images/doc/menu-products.en.png and /dev/null differ diff --git a/public/images/doc/menu-products.pt.png b/public/images/doc/menu-products.pt.png deleted file mode 100644 index 45cebfe..0000000 Binary files a/public/images/doc/menu-products.pt.png and /dev/null differ diff --git a/public/images/doc/menu-search.en.png b/public/images/doc/menu-search.en.png deleted file mode 100644 index e718ba6..0000000 Binary files a/public/images/doc/menu-search.en.png and /dev/null differ diff --git a/public/images/doc/menu-search.pt.png b/public/images/doc/menu-search.pt.png deleted file mode 100644 index df3bfa1..0000000 Binary files a/public/images/doc/menu-search.pt.png and /dev/null differ diff --git a/public/images/doc/more-active-communities-detail.en.png b/public/images/doc/more-active-communities-detail.en.png deleted file mode 100644 index d5cc3c4..0000000 Binary files a/public/images/doc/more-active-communities-detail.en.png and /dev/null differ diff --git a/public/images/doc/more-active-communities-detail.pt.png b/public/images/doc/more-active-communities-detail.pt.png deleted file mode 100644 index 0e6f41c..0000000 Binary files a/public/images/doc/more-active-communities-detail.pt.png and /dev/null differ diff --git a/public/images/doc/more-active-communities-with-example.en.png b/public/images/doc/more-active-communities-with-example.en.png deleted file mode 100644 index 570e2c3..0000000 Binary files a/public/images/doc/more-active-communities-with-example.en.png and /dev/null differ diff --git a/public/images/doc/more-active-communities-with-example.pt.png b/public/images/doc/more-active-communities-with-example.pt.png deleted file mode 100644 index ee863f4..0000000 Binary files a/public/images/doc/more-active-communities-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/more-active-communities.en.png b/public/images/doc/more-active-communities.en.png deleted file mode 100644 index add1251..0000000 Binary files a/public/images/doc/more-active-communities.en.png and /dev/null differ diff --git a/public/images/doc/more-active-communities.pt.png b/public/images/doc/more-active-communities.pt.png deleted file mode 100644 index 665636a..0000000 Binary files a/public/images/doc/more-active-communities.pt.png and /dev/null differ diff --git a/public/images/doc/more-active-people-detail.en.png b/public/images/doc/more-active-people-detail.en.png deleted file mode 100644 index e9d0e3f..0000000 Binary files a/public/images/doc/more-active-people-detail.en.png and /dev/null differ diff --git a/public/images/doc/more-active-people-detail.pt.png b/public/images/doc/more-active-people-detail.pt.png deleted file mode 100644 index 0344790..0000000 Binary files a/public/images/doc/more-active-people-detail.pt.png and /dev/null differ diff --git a/public/images/doc/more-active-people-with-example.en.png b/public/images/doc/more-active-people-with-example.en.png deleted file mode 100644 index 1b04b79..0000000 Binary files a/public/images/doc/more-active-people-with-example.en.png and /dev/null differ diff --git a/public/images/doc/more-active-people-with-example.pt.png b/public/images/doc/more-active-people-with-example.pt.png deleted file mode 100644 index f140310..0000000 Binary files a/public/images/doc/more-active-people-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/more-active-people.en.png b/public/images/doc/more-active-people.en.png deleted file mode 100644 index 130e22b..0000000 Binary files a/public/images/doc/more-active-people.en.png and /dev/null differ diff --git a/public/images/doc/more-active-people.pt.png b/public/images/doc/more-active-people.pt.png deleted file mode 100644 index 4642ab2..0000000 Binary files a/public/images/doc/more-active-people.pt.png and /dev/null differ diff --git a/public/images/doc/more-popular-communities-detail.en.png b/public/images/doc/more-popular-communities-detail.en.png deleted file mode 100644 index cfc3847..0000000 Binary files a/public/images/doc/more-popular-communities-detail.en.png and /dev/null differ diff --git a/public/images/doc/more-popular-communities-detail.pt.png b/public/images/doc/more-popular-communities-detail.pt.png deleted file mode 100644 index 01864e0..0000000 Binary files a/public/images/doc/more-popular-communities-detail.pt.png and /dev/null differ diff --git a/public/images/doc/more-popular-communities-with-example.en.png b/public/images/doc/more-popular-communities-with-example.en.png deleted file mode 100644 index 16ef87c..0000000 Binary files a/public/images/doc/more-popular-communities-with-example.en.png and /dev/null differ diff --git a/public/images/doc/more-popular-communities-with-example.pt.png b/public/images/doc/more-popular-communities-with-example.pt.png deleted file mode 100644 index 60898cf..0000000 Binary files a/public/images/doc/more-popular-communities-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/more-popular-communities.en.png b/public/images/doc/more-popular-communities.en.png deleted file mode 100644 index 67b082a..0000000 Binary files a/public/images/doc/more-popular-communities.en.png and /dev/null differ diff --git a/public/images/doc/more-popular-communities.pt.png b/public/images/doc/more-popular-communities.pt.png deleted file mode 100644 index 3450281..0000000 Binary files a/public/images/doc/more-popular-communities.pt.png and /dev/null differ diff --git a/public/images/doc/more-popular-people-detail.en.png b/public/images/doc/more-popular-people-detail.en.png deleted file mode 100644 index 6e1b7bc..0000000 Binary files a/public/images/doc/more-popular-people-detail.en.png and /dev/null differ diff --git a/public/images/doc/more-popular-people-detail.pt.png b/public/images/doc/more-popular-people-detail.pt.png deleted file mode 100644 index 06f1745..0000000 Binary files a/public/images/doc/more-popular-people-detail.pt.png and /dev/null differ diff --git a/public/images/doc/more-popular-people-with-example.en.png b/public/images/doc/more-popular-people-with-example.en.png deleted file mode 100644 index 9b7ef12..0000000 Binary files a/public/images/doc/more-popular-people-with-example.en.png and /dev/null differ diff --git a/public/images/doc/more-popular-people-with-example.pt.png b/public/images/doc/more-popular-people-with-example.pt.png deleted file mode 100644 index c7128c8..0000000 Binary files a/public/images/doc/more-popular-people-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/more-popular-people.en.png b/public/images/doc/more-popular-people.en.png deleted file mode 100644 index 2832686..0000000 Binary files a/public/images/doc/more-popular-people.en.png and /dev/null differ diff --git a/public/images/doc/more-popular-people.pt.png b/public/images/doc/more-popular-people.pt.png deleted file mode 100644 index 1b2503a..0000000 Binary files a/public/images/doc/more-popular-people.pt.png and /dev/null differ diff --git a/public/images/doc/more-recent-communities-detail.en.png b/public/images/doc/more-recent-communities-detail.en.png deleted file mode 100644 index 068b152..0000000 Binary files a/public/images/doc/more-recent-communities-detail.en.png and /dev/null differ diff --git a/public/images/doc/more-recent-communities-detail.pt.png b/public/images/doc/more-recent-communities-detail.pt.png deleted file mode 100644 index 0721376..0000000 Binary files a/public/images/doc/more-recent-communities-detail.pt.png and /dev/null differ diff --git a/public/images/doc/more-recent-communities-with-example.en.png b/public/images/doc/more-recent-communities-with-example.en.png deleted file mode 100644 index 2abac00..0000000 Binary files a/public/images/doc/more-recent-communities-with-example.en.png and /dev/null differ diff --git a/public/images/doc/more-recent-communities-with-example.pt.png b/public/images/doc/more-recent-communities-with-example.pt.png deleted file mode 100644 index 09716a1..0000000 Binary files a/public/images/doc/more-recent-communities-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/more-recent-communities.en.png b/public/images/doc/more-recent-communities.en.png deleted file mode 100644 index 0493f25..0000000 Binary files a/public/images/doc/more-recent-communities.en.png and /dev/null differ diff --git a/public/images/doc/more-recent-communities.pt.png b/public/images/doc/more-recent-communities.pt.png deleted file mode 100644 index 8a34986..0000000 Binary files a/public/images/doc/more-recent-communities.pt.png and /dev/null differ diff --git a/public/images/doc/more-recent-people-detail.en.png b/public/images/doc/more-recent-people-detail.en.png deleted file mode 100644 index ae90142..0000000 Binary files a/public/images/doc/more-recent-people-detail.en.png and /dev/null differ diff --git a/public/images/doc/more-recent-people-detail.pt.png b/public/images/doc/more-recent-people-detail.pt.png deleted file mode 100644 index d4db2ed..0000000 Binary files a/public/images/doc/more-recent-people-detail.pt.png and /dev/null differ diff --git a/public/images/doc/more-recent-people-with-example.en.png b/public/images/doc/more-recent-people-with-example.en.png deleted file mode 100644 index 36e2cdc..0000000 Binary files a/public/images/doc/more-recent-people-with-example.en.png and /dev/null differ diff --git a/public/images/doc/more-recent-people-with-example.pt.png b/public/images/doc/more-recent-people-with-example.pt.png deleted file mode 100644 index 5698821..0000000 Binary files a/public/images/doc/more-recent-people-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/more-recent-people.en.png b/public/images/doc/more-recent-people.en.png deleted file mode 100644 index ab7b97d..0000000 Binary files a/public/images/doc/more-recent-people.en.png and /dev/null differ diff --git a/public/images/doc/more-recent-people.pt.png b/public/images/doc/more-recent-people.pt.png deleted file mode 100644 index 7b30cd0..0000000 Binary files a/public/images/doc/more-recent-people.pt.png and /dev/null differ diff --git a/public/images/doc/new-folder.en.png b/public/images/doc/new-folder.en.png deleted file mode 100644 index 634f519..0000000 Binary files a/public/images/doc/new-folder.en.png and /dev/null differ diff --git a/public/images/doc/new-folder.pt.png b/public/images/doc/new-folder.pt.png deleted file mode 100644 index 4653f24..0000000 Binary files a/public/images/doc/new-folder.pt.png and /dev/null differ diff --git a/public/images/doc/open-comment-box-for-logged-in.en.png b/public/images/doc/open-comment-box-for-logged-in.en.png deleted file mode 100644 index ee961b6..0000000 Binary files a/public/images/doc/open-comment-box-for-logged-in.en.png and /dev/null differ diff --git a/public/images/doc/open-comment-box-for-logged-in.pt.png b/public/images/doc/open-comment-box-for-logged-in.pt.png deleted file mode 100644 index 280f91e..0000000 Binary files a/public/images/doc/open-comment-box-for-logged-in.pt.png and /dev/null differ diff --git a/public/images/doc/open-comment-box-for-not-logged-in.en.png b/public/images/doc/open-comment-box-for-not-logged-in.en.png deleted file mode 100644 index 8389815..0000000 Binary files a/public/images/doc/open-comment-box-for-not-logged-in.en.png and /dev/null differ diff --git a/public/images/doc/open-comment-box-for-not-logged-in.pt.png b/public/images/doc/open-comment-box-for-not-logged-in.pt.png deleted file mode 100644 index c7bcb36..0000000 Binary files a/public/images/doc/open-comment-box-for-not-logged-in.pt.png and /dev/null differ diff --git a/public/images/doc/other-person-view-profile-link.en.png b/public/images/doc/other-person-view-profile-link.en.png deleted file mode 100644 index e5cded2..0000000 Binary files a/public/images/doc/other-person-view-profile-link.en.png and /dev/null differ diff --git a/public/images/doc/other-person-view-profile-link.pt.png b/public/images/doc/other-person-view-profile-link.pt.png deleted file mode 100644 index e4397cb..0000000 Binary files a/public/images/doc/other-person-view-profile-link.pt.png and /dev/null differ diff --git a/public/images/doc/people-search-field.en.png b/public/images/doc/people-search-field.en.png deleted file mode 100644 index cf471d3..0000000 Binary files a/public/images/doc/people-search-field.en.png and /dev/null differ diff --git a/public/images/doc/people-search-field.pt.png b/public/images/doc/people-search-field.pt.png deleted file mode 100644 index 57ffc74..0000000 Binary files a/public/images/doc/people-search-field.pt.png and /dev/null differ diff --git a/public/images/doc/people-search-results-with-example.en.png b/public/images/doc/people-search-results-with-example.en.png deleted file mode 100644 index 2b61988..0000000 Binary files a/public/images/doc/people-search-results-with-example.en.png and /dev/null differ diff --git a/public/images/doc/people-search-results-with-example.pt.png b/public/images/doc/people-search-results-with-example.pt.png deleted file mode 100644 index 77d8f18..0000000 Binary files a/public/images/doc/people-search-results-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/person-activities-list.en.png b/public/images/doc/person-activities-list.en.png deleted file mode 100644 index ccc9517..0000000 Binary files a/public/images/doc/person-activities-list.en.png and /dev/null differ diff --git a/public/images/doc/person-activities-list.pt.png b/public/images/doc/person-activities-list.pt.png deleted file mode 100644 index b919a42..0000000 Binary files a/public/images/doc/person-activities-list.pt.png and /dev/null differ diff --git a/public/images/doc/person-balloon-closed-en.png b/public/images/doc/person-balloon-closed-en.png deleted file mode 100644 index 3064935..0000000 Binary files a/public/images/doc/person-balloon-closed-en.png and /dev/null differ diff --git a/public/images/doc/person-balloon-closed.en.png b/public/images/doc/person-balloon-closed.en.png deleted file mode 100644 index 3064935..0000000 Binary files a/public/images/doc/person-balloon-closed.en.png and /dev/null differ diff --git a/public/images/doc/person-balloon-en.png b/public/images/doc/person-balloon-en.png deleted file mode 100644 index 8c4d269..0000000 Binary files a/public/images/doc/person-balloon-en.png and /dev/null differ diff --git a/public/images/doc/person-balloon-pt.png b/public/images/doc/person-balloon-pt.png deleted file mode 100644 index 3760f58..0000000 Binary files a/public/images/doc/person-balloon-pt.png and /dev/null differ diff --git a/public/images/doc/person-balloon.en.png b/public/images/doc/person-balloon.en.png deleted file mode 100644 index 8c4d269..0000000 Binary files a/public/images/doc/person-balloon.en.png and /dev/null differ diff --git a/public/images/doc/person-balloon.pt.png b/public/images/doc/person-balloon.pt.png deleted file mode 100644 index 3760f58..0000000 Binary files a/public/images/doc/person-balloon.pt.png and /dev/null differ diff --git a/public/images/doc/person-delete-profile-confirmation.en.png b/public/images/doc/person-delete-profile-confirmation.en.png deleted file mode 100644 index 616c46a..0000000 Binary files a/public/images/doc/person-delete-profile-confirmation.en.png and /dev/null differ diff --git a/public/images/doc/person-delete-profile-confirmation.pt.png b/public/images/doc/person-delete-profile-confirmation.pt.png deleted file mode 100644 index 95e5534..0000000 Binary files a/public/images/doc/person-delete-profile-confirmation.pt.png and /dev/null differ diff --git a/public/images/doc/person-edit-profile-categories.en.png b/public/images/doc/person-edit-profile-categories.en.png deleted file mode 100644 index 32d966c..0000000 Binary files a/public/images/doc/person-edit-profile-categories.en.png and /dev/null differ diff --git a/public/images/doc/person-edit-profile-categories.pt.png b/public/images/doc/person-edit-profile-categories.pt.png deleted file mode 100644 index dc47ac8..0000000 Binary files a/public/images/doc/person-edit-profile-categories.pt.png and /dev/null differ diff --git a/public/images/doc/person-edit-profile-info-change-picture.en.png b/public/images/doc/person-edit-profile-info-change-picture.en.png deleted file mode 100644 index b7aa99b..0000000 Binary files a/public/images/doc/person-edit-profile-info-change-picture.en.png and /dev/null differ diff --git a/public/images/doc/person-edit-profile-info-change-picture.pt.png b/public/images/doc/person-edit-profile-info-change-picture.pt.png deleted file mode 100644 index 35fa301..0000000 Binary files a/public/images/doc/person-edit-profile-info-change-picture.pt.png and /dev/null differ diff --git a/public/images/doc/person-edit-profile-info-general-informationen.en.png b/public/images/doc/person-edit-profile-info-general-informationen.en.png deleted file mode 100644 index 5af4467..0000000 Binary files a/public/images/doc/person-edit-profile-info-general-informationen.en.png and /dev/null differ diff --git a/public/images/doc/person-edit-profile-info-general-informationen.pt.png b/public/images/doc/person-edit-profile-info-general-informationen.pt.png deleted file mode 100644 index 914deee..0000000 Binary files a/public/images/doc/person-edit-profile-info-general-informationen.pt.png and /dev/null differ diff --git a/public/images/doc/person-edit-profile-privacy-options.en.png b/public/images/doc/person-edit-profile-privacy-options.en.png deleted file mode 100644 index a07b387..0000000 Binary files a/public/images/doc/person-edit-profile-privacy-options.en.png and /dev/null differ diff --git a/public/images/doc/person-edit-profile-privacy-options.pt.png b/public/images/doc/person-edit-profile-privacy-options.pt.png deleted file mode 100644 index 0d5e36e..0000000 Binary files a/public/images/doc/person-edit-profile-privacy-options.pt.png and /dev/null differ diff --git a/public/images/doc/person-view-profile-link.en.png b/public/images/doc/person-view-profile-link.en.png deleted file mode 100644 index d377257..0000000 Binary files a/public/images/doc/person-view-profile-link.en.png and /dev/null differ diff --git a/public/images/doc/person-view-profile-link.pt.png b/public/images/doc/person-view-profile-link.pt.png deleted file mode 100644 index ebbc18c..0000000 Binary files a/public/images/doc/person-view-profile-link.pt.png and /dev/null differ diff --git a/public/images/doc/person-wall-scrap-reply-button.en.png b/public/images/doc/person-wall-scrap-reply-button.en.png deleted file mode 100644 index ece6b73..0000000 Binary files a/public/images/doc/person-wall-scrap-reply-button.en.png and /dev/null differ diff --git a/public/images/doc/person-wall-scrap-reply-form.en.png b/public/images/doc/person-wall-scrap-reply-form.en.png deleted file mode 100644 index 86b3c9d..0000000 Binary files a/public/images/doc/person-wall-scrap-reply-form.en.png and /dev/null differ diff --git a/public/images/doc/person-wall-scrap-reply-form.pt.png b/public/images/doc/person-wall-scrap-reply-form.pt.png deleted file mode 100644 index df274f1..0000000 Binary files a/public/images/doc/person-wall-scrap-reply-form.pt.png and /dev/null differ diff --git a/public/images/doc/person-wall-scrap-reply-sent.en.png b/public/images/doc/person-wall-scrap-reply-sent.en.png deleted file mode 100644 index d6449f9..0000000 Binary files a/public/images/doc/person-wall-scrap-reply-sent.en.png and /dev/null differ diff --git a/public/images/doc/person-wall-scrap-reply-sent.pt.png b/public/images/doc/person-wall-scrap-reply-sent.pt.png deleted file mode 100644 index 6638852..0000000 Binary files a/public/images/doc/person-wall-scrap-reply-sent.pt.png and /dev/null differ diff --git a/public/images/doc/person-wall-scrap-sent.en.png b/public/images/doc/person-wall-scrap-sent.en.png deleted file mode 100644 index 078e429..0000000 Binary files a/public/images/doc/person-wall-scrap-sent.en.png and /dev/null differ diff --git a/public/images/doc/person-wall-scrap-sent.pt.png b/public/images/doc/person-wall-scrap-sent.pt.png deleted file mode 100644 index bb515a3..0000000 Binary files a/public/images/doc/person-wall-scrap-sent.pt.png and /dev/null differ diff --git a/public/images/doc/person-wall-writing-scrap.en.png b/public/images/doc/person-wall-writing-scrap.en.png deleted file mode 100644 index 2cde381..0000000 Binary files a/public/images/doc/person-wall-writing-scrap.en.png and /dev/null differ diff --git a/public/images/doc/person-wall-writing-scrap.pt.png b/public/images/doc/person-wall-writing-scrap.pt.png deleted file mode 100644 index a08711a..0000000 Binary files a/public/images/doc/person-wall-writing-scrap.pt.png and /dev/null differ diff --git a/public/images/doc/products-block.en.png b/public/images/doc/products-block.en.png deleted file mode 100644 index c171cb8..0000000 Binary files a/public/images/doc/products-block.en.png and /dev/null differ diff --git a/public/images/doc/products-block.pt.png b/public/images/doc/products-block.pt.png deleted file mode 100644 index 5717295..0000000 Binary files a/public/images/doc/products-block.pt.png and /dev/null differ diff --git a/public/images/doc/products-search-field.en.png b/public/images/doc/products-search-field.en.png deleted file mode 100644 index d2a880b..0000000 Binary files a/public/images/doc/products-search-field.en.png and /dev/null differ diff --git a/public/images/doc/products-search-field.pt.png b/public/images/doc/products-search-field.pt.png deleted file mode 100644 index a62dd0f..0000000 Binary files a/public/images/doc/products-search-field.pt.png and /dev/null differ diff --git a/public/images/doc/products-search-results-with-example.en.png b/public/images/doc/products-search-results-with-example.en.png deleted file mode 100644 index b4fb506..0000000 Binary files a/public/images/doc/products-search-results-with-example.en.png and /dev/null differ diff --git a/public/images/doc/products-search-results-with-example.pt.png b/public/images/doc/products-search-results-with-example.pt.png deleted file mode 100644 index 18b5dc2..0000000 Binary files a/public/images/doc/products-search-results-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/profile-image-block.en.png b/public/images/doc/profile-image-block.en.png deleted file mode 100644 index 7f619a3..0000000 Binary files a/public/images/doc/profile-image-block.en.png and /dev/null differ diff --git a/public/images/doc/profile-image-block.pt.png b/public/images/doc/profile-image-block.pt.png deleted file mode 100644 index f6e6946..0000000 Binary files a/public/images/doc/profile-image-block.pt.png and /dev/null differ diff --git a/public/images/doc/profile-info-block.en.png b/public/images/doc/profile-info-block.en.png deleted file mode 100644 index 94cbf0d..0000000 Binary files a/public/images/doc/profile-info-block.en.png and /dev/null differ diff --git a/public/images/doc/profile-info-block.pt.png b/public/images/doc/profile-info-block.pt.png deleted file mode 100644 index dcf6748..0000000 Binary files a/public/images/doc/profile-info-block.pt.png and /dev/null differ diff --git a/public/images/doc/profile-with-button-to-add-friends.en.png b/public/images/doc/profile-with-button-to-add-friends.en.png deleted file mode 100644 index 48581d6..0000000 Binary files a/public/images/doc/profile-with-button-to-add-friends.en.png and /dev/null differ diff --git a/public/images/doc/profile-with-button-to-add-friends.pt.png b/public/images/doc/profile-with-button-to-add-friends.pt.png deleted file mode 100644 index 170df82..0000000 Binary files a/public/images/doc/profile-with-button-to-add-friends.pt.png and /dev/null differ diff --git a/public/images/doc/recent-content-block.en.png b/public/images/doc/recent-content-block.en.png deleted file mode 100644 index 67820c1..0000000 Binary files a/public/images/doc/recent-content-block.en.png and /dev/null differ diff --git a/public/images/doc/recent-content-block.pt.png b/public/images/doc/recent-content-block.pt.png deleted file mode 100644 index 82b66df..0000000 Binary files a/public/images/doc/recent-content-block.pt.png and /dev/null differ diff --git a/public/images/doc/remove-comment-confirmation.en.png b/public/images/doc/remove-comment-confirmation.en.png deleted file mode 100644 index 080521e..0000000 Binary files a/public/images/doc/remove-comment-confirmation.en.png and /dev/null differ diff --git a/public/images/doc/remove-comment-confirmation.pt.png b/public/images/doc/remove-comment-confirmation.pt.png deleted file mode 100644 index d18800f..0000000 Binary files a/public/images/doc/remove-comment-confirmation.pt.png and /dev/null differ diff --git a/public/images/doc/remove-friend-confirmation.en.png b/public/images/doc/remove-friend-confirmation.en.png deleted file mode 100644 index 3df6993..0000000 Binary files a/public/images/doc/remove-friend-confirmation.en.png and /dev/null differ diff --git a/public/images/doc/remove-friend-confirmation.pt.png b/public/images/doc/remove-friend-confirmation.pt.png deleted file mode 100644 index ffa872b..0000000 Binary files a/public/images/doc/remove-friend-confirmation.pt.png and /dev/null differ diff --git a/public/images/doc/remove-friend.en.png b/public/images/doc/remove-friend.en.png deleted file mode 100644 index cf49657..0000000 Binary files a/public/images/doc/remove-friend.en.png and /dev/null differ diff --git a/public/images/doc/remove-friend.pt.png b/public/images/doc/remove-friend.pt.png deleted file mode 100644 index d4bd284..0000000 Binary files a/public/images/doc/remove-friend.pt.png and /dev/null differ diff --git a/public/images/doc/search-more-options-open.en.png b/public/images/doc/search-more-options-open.en.png deleted file mode 100644 index bf29bce..0000000 Binary files a/public/images/doc/search-more-options-open.en.png and /dev/null differ diff --git a/public/images/doc/search-more-options-open.pt.png b/public/images/doc/search-more-options-open.pt.png deleted file mode 100644 index 0b01730..0000000 Binary files a/public/images/doc/search-more-options-open.pt.png and /dev/null differ diff --git a/public/images/doc/search-more-options.en.png b/public/images/doc/search-more-options.en.png deleted file mode 100644 index a99e4ba..0000000 Binary files a/public/images/doc/search-more-options.en.png and /dev/null differ diff --git a/public/images/doc/search-more-options.pt.png b/public/images/doc/search-more-options.pt.png deleted file mode 100644 index a7b60af..0000000 Binary files a/public/images/doc/search-more-options.pt.png and /dev/null differ diff --git a/public/images/doc/search-results-with-example.en.png b/public/images/doc/search-results-with-example.en.png deleted file mode 100644 index 3e730dd..0000000 Binary files a/public/images/doc/search-results-with-example.en.png and /dev/null differ diff --git a/public/images/doc/search-results-with-example.pt.png b/public/images/doc/search-results-with-example.pt.png deleted file mode 100644 index 43e8137..0000000 Binary files a/public/images/doc/search-results-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/search-view-all-results-with-example.en.png b/public/images/doc/search-view-all-results-with-example.en.png deleted file mode 100644 index 08ff053..0000000 Binary files a/public/images/doc/search-view-all-results-with-example.en.png and /dev/null differ diff --git a/public/images/doc/search-view-all-results-with-example.pt.png b/public/images/doc/search-view-all-results-with-example.pt.png deleted file mode 100644 index d1c173b..0000000 Binary files a/public/images/doc/search-view-all-results-with-example.pt.png and /dev/null differ diff --git a/public/images/doc/send-message.en.png b/public/images/doc/send-message.en.png deleted file mode 100644 index e6c9ef3..0000000 Binary files a/public/images/doc/send-message.en.png and /dev/null differ diff --git a/public/images/doc/send-message.pt.png b/public/images/doc/send-message.pt.png deleted file mode 100644 index 32ed844..0000000 Binary files a/public/images/doc/send-message.pt.png and /dev/null differ diff --git a/public/images/doc/signup-form.en.png b/public/images/doc/signup-form.en.png deleted file mode 100644 index f489a13..0000000 Binary files a/public/images/doc/signup-form.en.png and /dev/null differ diff --git a/public/images/doc/signup-form.pt.png b/public/images/doc/signup-form.pt.png deleted file mode 100644 index 60ccf71..0000000 Binary files a/public/images/doc/signup-form.pt.png and /dev/null differ diff --git a/public/images/doc/slideshow-block.en.png b/public/images/doc/slideshow-block.en.png deleted file mode 100644 index ad40088..0000000 Binary files a/public/images/doc/slideshow-block.en.png and /dev/null differ diff --git a/public/images/doc/slideshow-block.pt.png b/public/images/doc/slideshow-block.pt.png deleted file mode 100644 index 6539ef1..0000000 Binary files a/public/images/doc/slideshow-block.pt.png and /dev/null differ diff --git a/public/images/doc/system-homepage-top-menu-admin.en.png b/public/images/doc/system-homepage-top-menu-admin.en.png deleted file mode 100644 index f944d32..0000000 Binary files a/public/images/doc/system-homepage-top-menu-admin.en.png and /dev/null differ diff --git a/public/images/doc/system-homepage-top-menu-admin.pt.png b/public/images/doc/system-homepage-top-menu-admin.pt.png deleted file mode 100644 index f8657b5..0000000 Binary files a/public/images/doc/system-homepage-top-menu-admin.pt.png and /dev/null differ diff --git a/public/images/doc/system-homepage-top-menu.en.png b/public/images/doc/system-homepage-top-menu.en.png deleted file mode 100644 index d91ac30..0000000 Binary files a/public/images/doc/system-homepage-top-menu.en.png and /dev/null differ diff --git a/public/images/doc/system-homepage-top-menu.pt.png b/public/images/doc/system-homepage-top-menu.pt.png deleted file mode 100644 index 5be24a0..0000000 Binary files a/public/images/doc/system-homepage-top-menu.pt.png and /dev/null differ diff --git a/public/images/doc/tags-block.en.png b/public/images/doc/tags-block.en.png deleted file mode 100644 index 71e4614..0000000 Binary files a/public/images/doc/tags-block.en.png and /dev/null differ diff --git a/public/images/doc/tags-block.pt.png b/public/images/doc/tags-block.pt.png deleted file mode 100644 index 7fe5c45..0000000 Binary files a/public/images/doc/tags-block.pt.png and /dev/null differ diff --git a/public/images/doc/tasks-list-approval-request.en.png b/public/images/doc/tasks-list-approval-request.en.png deleted file mode 100644 index 86aa0f7..0000000 Binary files a/public/images/doc/tasks-list-approval-request.en.png and /dev/null differ diff --git a/public/images/doc/tasks-list-approval-request.pt.png b/public/images/doc/tasks-list-approval-request.pt.png deleted file mode 100644 index d791c22..0000000 Binary files a/public/images/doc/tasks-list-approval-request.pt.png and /dev/null differ diff --git a/public/images/doc/tasks-list-friendship-request.en.png b/public/images/doc/tasks-list-friendship-request.en.png deleted file mode 100644 index 9eca09b..0000000 Binary files a/public/images/doc/tasks-list-friendship-request.en.png and /dev/null differ diff --git a/public/images/doc/tasks-list-friendship-request.pt.png b/public/images/doc/tasks-list-friendship-request.pt.png deleted file mode 100644 index dba9678..0000000 Binary files a/public/images/doc/tasks-list-friendship-request.pt.png and /dev/null differ diff --git a/public/images/doc/tasks-list-membership-request.en.png b/public/images/doc/tasks-list-membership-request.en.png deleted file mode 100644 index 253131e..0000000 Binary files a/public/images/doc/tasks-list-membership-request.en.png and /dev/null differ diff --git a/public/images/doc/tasks-list-membership-request.pt.png b/public/images/doc/tasks-list-membership-request.pt.png deleted file mode 100644 index 47e5177..0000000 Binary files a/public/images/doc/tasks-list-membership-request.pt.png and /dev/null differ diff --git a/public/images/doc/top-menu.en.png b/public/images/doc/top-menu.en.png deleted file mode 100644 index 8c5ae7b..0000000 Binary files a/public/images/doc/top-menu.en.png and /dev/null differ diff --git a/public/images/doc/top-menu.pt.png b/public/images/doc/top-menu.pt.png deleted file mode 100644 index c2f7dbb..0000000 Binary files a/public/images/doc/top-menu.pt.png and /dev/null differ diff --git a/public/images/doc/uploading-files-to-gallery.en.png b/public/images/doc/uploading-files-to-gallery.en.png deleted file mode 100644 index 39484fd..0000000 Binary files a/public/images/doc/uploading-files-to-gallery.en.png and /dev/null differ diff --git a/public/images/doc/uploading-files-to-gallery.pt.png b/public/images/doc/uploading-files-to-gallery.pt.png deleted file mode 100644 index 70a8139..0000000 Binary files a/public/images/doc/uploading-files-to-gallery.pt.png and /dev/null differ diff --git a/public/images/doc/user-edit-sideboxes.en.png b/public/images/doc/user-edit-sideboxes.en.png deleted file mode 100644 index 20a8544..0000000 Binary files a/public/images/doc/user-edit-sideboxes.en.png and /dev/null differ diff --git a/public/images/doc/user-edit-sideboxes.pt.png b/public/images/doc/user-edit-sideboxes.pt.png deleted file mode 100644 index 56eda23..0000000 Binary files a/public/images/doc/user-edit-sideboxes.pt.png and /dev/null differ diff --git a/public/images/doc/user-friends-with-invitation-button.en.png b/public/images/doc/user-friends-with-invitation-button.en.png deleted file mode 100644 index 6038b0c..0000000 Binary files a/public/images/doc/user-friends-with-invitation-button.en.png and /dev/null differ diff --git a/public/images/doc/user-friends-with-invitation-button.pt.png b/public/images/doc/user-friends-with-invitation-button.pt.png deleted file mode 100644 index ca08852..0000000 Binary files a/public/images/doc/user-friends-with-invitation-button.pt.png and /dev/null differ diff --git a/public/images/doc/user-import-invitation-step-1.en.png b/public/images/doc/user-import-invitation-step-1.en.png deleted file mode 100644 index 3bec3f8..0000000 Binary files a/public/images/doc/user-import-invitation-step-1.en.png and /dev/null differ diff --git a/public/images/doc/user-import-invitation-step-1.pt.png b/public/images/doc/user-import-invitation-step-1.pt.png deleted file mode 100644 index 5179c0d..0000000 Binary files a/public/images/doc/user-import-invitation-step-1.pt.png and /dev/null differ diff --git a/public/images/doc/user-import-invitation-step-2.en.png b/public/images/doc/user-import-invitation-step-2.en.png deleted file mode 100644 index 58be9b7..0000000 Binary files a/public/images/doc/user-import-invitation-step-2.en.png and /dev/null differ diff --git a/public/images/doc/user-import-invitation-step-2.pt.png b/public/images/doc/user-import-invitation-step-2.pt.png deleted file mode 100644 index e617358..0000000 Binary files a/public/images/doc/user-import-invitation-step-2.pt.png and /dev/null differ diff --git a/public/images/doc/user-manually-invitation-step-1.en.png b/public/images/doc/user-manually-invitation-step-1.en.png deleted file mode 100644 index 7148034..0000000 Binary files a/public/images/doc/user-manually-invitation-step-1.en.png and /dev/null differ diff --git a/public/images/doc/user-manually-invitation-step-1.pt.png b/public/images/doc/user-manually-invitation-step-1.pt.png deleted file mode 100644 index 572cda1..0000000 Binary files a/public/images/doc/user-manually-invitation-step-1.pt.png and /dev/null differ diff --git a/public/images/doc/user-manually-invitation-step-2.en.png b/public/images/doc/user-manually-invitation-step-2.en.png deleted file mode 100644 index 5c8e47d..0000000 Binary files a/public/images/doc/user-manually-invitation-step-2.en.png and /dev/null differ diff --git a/public/images/doc/user-manually-invitation-step-2.pt.png b/public/images/doc/user-manually-invitation-step-2.pt.png deleted file mode 100644 index 3f8e07b..0000000 Binary files a/public/images/doc/user-manually-invitation-step-2.pt.png and /dev/null differ diff --git a/public/images/doc/user-network-block.en.png b/public/images/doc/user-network-block.en.png deleted file mode 100644 index 4e55939..0000000 Binary files a/public/images/doc/user-network-block.en.png and /dev/null differ diff --git a/public/images/doc/user-network-block.pt.png b/public/images/doc/user-network-block.pt.png deleted file mode 100644 index 01d89ba..0000000 Binary files a/public/images/doc/user-network-block.pt.png and /dev/null differ diff --git a/public/images/doc/user-sideboxes-add-block.en.png b/public/images/doc/user-sideboxes-add-block.en.png deleted file mode 100644 index eaad923..0000000 Binary files a/public/images/doc/user-sideboxes-add-block.en.png and /dev/null differ diff --git a/public/images/doc/user-sideboxes-add-block.pt.png b/public/images/doc/user-sideboxes-add-block.pt.png deleted file mode 100644 index 2eb9907..0000000 Binary files a/public/images/doc/user-sideboxes-add-block.pt.png and /dev/null differ diff --git a/public/images/doc/wysiwyg-buttons.en.png b/public/images/doc/wysiwyg-buttons.en.png deleted file mode 100644 index dbdf4d2..0000000 Binary files a/public/images/doc/wysiwyg-buttons.en.png and /dev/null differ diff --git a/public/images/doc/wysiwyg-buttons.pt.png b/public/images/doc/wysiwyg-buttons.pt.png deleted file mode 100644 index 8c5faca..0000000 Binary files a/public/images/doc/wysiwyg-buttons.pt.png and /dev/null differ diff --git a/public/images/dotleaders.png b/public/images/dotleaders.png deleted file mode 100644 index 8359ba2..0000000 Binary files a/public/images/dotleaders.png and /dev/null differ diff --git a/public/images/down-arrow.png b/public/images/down-arrow.png deleted file mode 100644 index 9e6b5dc..0000000 Binary files a/public/images/down-arrow.png and /dev/null differ diff --git a/public/images/ecosol-tree-sprite.png b/public/images/ecosol-tree-sprite.png deleted file mode 100644 index 843a71d..0000000 Binary files a/public/images/ecosol-tree-sprite.png and /dev/null differ diff --git a/public/images/fancybox/blank.gif b/public/images/fancybox/blank.gif deleted file mode 100644 index 35d42e8..0000000 Binary files a/public/images/fancybox/blank.gif and /dev/null differ diff --git a/public/images/fancybox/fancy_close.png b/public/images/fancybox/fancy_close.png deleted file mode 100644 index 0703530..0000000 Binary files a/public/images/fancybox/fancy_close.png and /dev/null differ diff --git a/public/images/fancybox/fancy_loading.png b/public/images/fancybox/fancy_loading.png deleted file mode 100644 index 2503017..0000000 Binary files a/public/images/fancybox/fancy_loading.png and /dev/null differ diff --git a/public/images/fancybox/fancy_nav_left.png b/public/images/fancybox/fancy_nav_left.png deleted file mode 100644 index ebaa6a4..0000000 Binary files a/public/images/fancybox/fancy_nav_left.png and /dev/null differ diff --git a/public/images/fancybox/fancy_nav_right.png b/public/images/fancybox/fancy_nav_right.png deleted file mode 100644 index 873294e..0000000 Binary files a/public/images/fancybox/fancy_nav_right.png and /dev/null differ diff --git a/public/images/fancybox/fancy_shadow_e.png b/public/images/fancybox/fancy_shadow_e.png deleted file mode 100644 index 2eda089..0000000 Binary files a/public/images/fancybox/fancy_shadow_e.png and /dev/null differ diff --git a/public/images/fancybox/fancy_shadow_n.png b/public/images/fancybox/fancy_shadow_n.png deleted file mode 100644 index 69aa10e..0000000 Binary files a/public/images/fancybox/fancy_shadow_n.png and /dev/null differ diff --git a/public/images/fancybox/fancy_shadow_ne.png b/public/images/fancybox/fancy_shadow_ne.png deleted file mode 100644 index 79f6980..0000000 Binary files a/public/images/fancybox/fancy_shadow_ne.png and /dev/null differ diff --git a/public/images/fancybox/fancy_shadow_nw.png b/public/images/fancybox/fancy_shadow_nw.png deleted file mode 100644 index 7182cd9..0000000 Binary files a/public/images/fancybox/fancy_shadow_nw.png and /dev/null differ diff --git a/public/images/fancybox/fancy_shadow_s.png b/public/images/fancybox/fancy_shadow_s.png deleted file mode 100644 index d8858bf..0000000 Binary files a/public/images/fancybox/fancy_shadow_s.png and /dev/null differ diff --git a/public/images/fancybox/fancy_shadow_se.png b/public/images/fancybox/fancy_shadow_se.png deleted file mode 100644 index 541e3ff..0000000 Binary files a/public/images/fancybox/fancy_shadow_se.png and /dev/null differ diff --git a/public/images/fancybox/fancy_shadow_sw.png b/public/images/fancybox/fancy_shadow_sw.png deleted file mode 100644 index b451689..0000000 Binary files a/public/images/fancybox/fancy_shadow_sw.png and /dev/null differ diff --git a/public/images/fancybox/fancy_shadow_w.png b/public/images/fancybox/fancy_shadow_w.png deleted file mode 100644 index 8a4e4a8..0000000 Binary files a/public/images/fancybox/fancy_shadow_w.png and /dev/null differ diff --git a/public/images/fancybox/fancy_title_left.png b/public/images/fancybox/fancy_title_left.png deleted file mode 100644 index 6049223..0000000 Binary files a/public/images/fancybox/fancy_title_left.png and /dev/null differ diff --git a/public/images/fancybox/fancy_title_main.png b/public/images/fancybox/fancy_title_main.png deleted file mode 100644 index 8044271..0000000 Binary files a/public/images/fancybox/fancy_title_main.png and /dev/null differ diff --git a/public/images/fancybox/fancy_title_over.png b/public/images/fancybox/fancy_title_over.png deleted file mode 100644 index d9f458f..0000000 Binary files a/public/images/fancybox/fancy_title_over.png and /dev/null differ diff --git a/public/images/fancybox/fancy_title_right.png b/public/images/fancybox/fancy_title_right.png deleted file mode 100644 index e36d9db..0000000 Binary files a/public/images/fancybox/fancy_title_right.png and /dev/null differ diff --git a/public/images/fancybox/fancybox-x.png b/public/images/fancybox/fancybox-x.png deleted file mode 100644 index c2130f8..0000000 Binary files a/public/images/fancybox/fancybox-x.png and /dev/null differ diff --git a/public/images/fancybox/fancybox-y.png b/public/images/fancybox/fancybox-y.png deleted file mode 100644 index 7ef399b..0000000 Binary files a/public/images/fancybox/fancybox-y.png and /dev/null differ diff --git a/public/images/fancybox/fancybox.png b/public/images/fancybox/fancybox.png deleted file mode 100644 index 65e14f6..0000000 Binary files a/public/images/fancybox/fancybox.png and /dev/null differ diff --git a/public/images/fff.gif b/public/images/fff.gif deleted file mode 100644 index 81240ae..0000000 Binary files a/public/images/fff.gif and /dev/null differ diff --git a/public/images/field-bg.png b/public/images/field-bg.png deleted file mode 100644 index 12acff2..0000000 Binary files a/public/images/field-bg.png and /dev/null differ diff --git a/public/images/forum-activity-bg-onecol.png b/public/images/forum-activity-bg-onecol.png deleted file mode 100644 index 2973d35..0000000 Binary files a/public/images/forum-activity-bg-onecol.png and /dev/null differ diff --git a/public/images/forum-activity-bg.png b/public/images/forum-activity-bg.png deleted file mode 100644 index b6e7926..0000000 Binary files a/public/images/forum-activity-bg.png and /dev/null differ diff --git a/public/images/forum-activity-icon.png b/public/images/forum-activity-icon.png deleted file mode 100644 index acadece..0000000 Binary files a/public/images/forum-activity-icon.png and /dev/null differ diff --git a/public/images/gallery-image-activity-border-big-onecol.png b/public/images/gallery-image-activity-border-big-onecol.png deleted file mode 100644 index 56692b8..0000000 Binary files a/public/images/gallery-image-activity-border-big-onecol.png and /dev/null differ diff --git a/public/images/gallery-image-activity-border-big.png b/public/images/gallery-image-activity-border-big.png deleted file mode 100644 index 358302c..0000000 Binary files a/public/images/gallery-image-activity-border-big.png and /dev/null differ diff --git a/public/images/gallery-image-activity-border-onecol.png b/public/images/gallery-image-activity-border-onecol.png deleted file mode 100644 index 113d269..0000000 Binary files a/public/images/gallery-image-activity-border-onecol.png and /dev/null differ diff --git a/public/images/gallery-image-activity-border.png b/public/images/gallery-image-activity-border.png deleted file mode 100644 index 5662e5d..0000000 Binary files a/public/images/gallery-image-activity-border.png and /dev/null differ diff --git a/public/images/grip-clue.png b/public/images/grip-clue.png deleted file mode 100644 index 05daab5..0000000 Binary files a/public/images/grip-clue.png and /dev/null differ diff --git a/public/images/hachure.png b/public/images/hachure.png deleted file mode 100644 index 176275e..0000000 Binary files a/public/images/hachure.png and /dev/null differ diff --git a/public/images/help-avatar.gif b/public/images/help-avatar.gif deleted file mode 100644 index 32712f7..0000000 Binary files a/public/images/help-avatar.gif and /dev/null differ diff --git a/public/images/icon_filter_exclude.png b/public/images/icon_filter_exclude.png deleted file mode 100644 index e5a39da..0000000 Binary files a/public/images/icon_filter_exclude.png and /dev/null differ diff --git a/public/images/icon_more_options.png b/public/images/icon_more_options.png deleted file mode 100644 index 742f0a4..0000000 Binary files a/public/images/icon_more_options.png and /dev/null differ diff --git a/public/images/icons-app/alert.png b/public/images/icons-app/alert.png deleted file mode 120000 index a540276..0000000 --- a/public/images/icons-app/alert.png +++ /dev/null @@ -1 +0,0 @@ -emblem-important.png \ No newline at end of file diff --git a/public/images/icons-app/article-minor.png b/public/images/icons-app/article-minor.png deleted file mode 100644 index 04f2680..0000000 Binary files a/public/images/icons-app/article-minor.png and /dev/null differ diff --git a/public/images/icons-app/article-portrait.png b/public/images/icons-app/article-portrait.png deleted file mode 100644 index 339c3ca..0000000 Binary files a/public/images/icons-app/article-portrait.png and /dev/null differ diff --git a/public/images/icons-app/article-thumb.png b/public/images/icons-app/article-thumb.png deleted file mode 100644 index 0580ccb..0000000 Binary files a/public/images/icons-app/article-thumb.png and /dev/null differ diff --git a/public/images/icons-app/chat-22x22.png b/public/images/icons-app/chat-22x22.png deleted file mode 120000 index dcd54db..0000000 --- a/public/images/icons-app/chat-22x22.png +++ /dev/null @@ -1 +0,0 @@ -gnome-irc-22x22.png \ No newline at end of file diff --git a/public/images/icons-app/community-big.png b/public/images/icons-app/community-big.png deleted file mode 100644 index 31cbd3f..0000000 Binary files a/public/images/icons-app/community-big.png and /dev/null differ diff --git a/public/images/icons-app/community-icon.png b/public/images/icons-app/community-icon.png deleted file mode 100644 index 67137bf..0000000 Binary files a/public/images/icons-app/community-icon.png and /dev/null differ diff --git a/public/images/icons-app/community-minor.png b/public/images/icons-app/community-minor.png deleted file mode 100644 index b591795..0000000 Binary files a/public/images/icons-app/community-minor.png and /dev/null differ diff --git a/public/images/icons-app/community-portrait.png b/public/images/icons-app/community-portrait.png deleted file mode 100644 index 5f5e7d2..0000000 Binary files a/public/images/icons-app/community-portrait.png and /dev/null differ diff --git a/public/images/icons-app/community-thumb.png b/public/images/icons-app/community-thumb.png deleted file mode 100644 index f952fba..0000000 Binary files a/public/images/icons-app/community-thumb.png and /dev/null differ diff --git a/public/images/icons-app/design-editor.png b/public/images/icons-app/design-editor.png deleted file mode 100644 index 3cec8f4..0000000 Binary files a/public/images/icons-app/design-editor.png and /dev/null differ diff --git a/public/images/icons-app/emblem-important.png b/public/images/icons-app/emblem-important.png deleted file mode 100644 index 6ee4565..0000000 Binary files a/public/images/icons-app/emblem-important.png and /dev/null differ diff --git a/public/images/icons-app/enterprise-big.png b/public/images/icons-app/enterprise-big.png deleted file mode 100644 index 551bdb1..0000000 Binary files a/public/images/icons-app/enterprise-big.png and /dev/null differ diff --git a/public/images/icons-app/enterprise-icon.png b/public/images/icons-app/enterprise-icon.png deleted file mode 100644 index aed1b99..0000000 Binary files a/public/images/icons-app/enterprise-icon.png and /dev/null differ diff --git a/public/images/icons-app/enterprise-minor.png b/public/images/icons-app/enterprise-minor.png deleted file mode 100644 index 1f40c91..0000000 Binary files a/public/images/icons-app/enterprise-minor.png and /dev/null differ diff --git a/public/images/icons-app/enterprise-portrait.png b/public/images/icons-app/enterprise-portrait.png deleted file mode 100644 index 75c9803..0000000 Binary files a/public/images/icons-app/enterprise-portrait.png and /dev/null differ diff --git a/public/images/icons-app/enterprise-registration.png b/public/images/icons-app/enterprise-registration.png deleted file mode 120000 index 9850e17..0000000 --- a/public/images/icons-app/enterprise-registration.png +++ /dev/null @@ -1 +0,0 @@ -gnome-settings-theme.png \ No newline at end of file diff --git a/public/images/icons-app/enterprise-thumb.png b/public/images/icons-app/enterprise-thumb.png deleted file mode 100644 index ba3a6f1..0000000 Binary files a/public/images/icons-app/enterprise-thumb.png and /dev/null differ diff --git a/public/images/icons-app/gnome-irc-22x22.png b/public/images/icons-app/gnome-irc-22x22.png deleted file mode 100644 index 3624f0e..0000000 Binary files a/public/images/icons-app/gnome-irc-22x22.png and /dev/null differ diff --git a/public/images/icons-app/gnome-irc.png b/public/images/icons-app/gnome-irc.png deleted file mode 100644 index f036cf5..0000000 Binary files a/public/images/icons-app/gnome-irc.png and /dev/null differ diff --git a/public/images/icons-app/gnome-settings-theme.png b/public/images/icons-app/gnome-settings-theme.png deleted file mode 100644 index 9f4d59b..0000000 Binary files a/public/images/icons-app/gnome-settings-theme.png and /dev/null differ diff --git a/public/images/icons-app/gtk-folder.png b/public/images/icons-app/gtk-folder.png deleted file mode 100644 index 51fb7da..0000000 Binary files a/public/images/icons-app/gtk-folder.png and /dev/null differ diff --git a/public/images/icons-app/ico-female.png b/public/images/icons-app/ico-female.png deleted file mode 100644 index 963ea0b..0000000 Binary files a/public/images/icons-app/ico-female.png and /dev/null differ diff --git a/public/images/icons-app/ico-male.png b/public/images/icons-app/ico-male.png deleted file mode 100644 index af13933..0000000 Binary files a/public/images/icons-app/ico-male.png and /dev/null differ diff --git a/public/images/icons-app/ico-sex-undef.png b/public/images/icons-app/ico-sex-undef.png deleted file mode 100644 index ba8f653..0000000 Binary files a/public/images/icons-app/ico-sex-undef.png and /dev/null differ diff --git a/public/images/icons-app/image-loading-big.png b/public/images/icons-app/image-loading-big.png deleted file mode 100644 index b5c8fbe..0000000 Binary files a/public/images/icons-app/image-loading-big.png and /dev/null differ diff --git a/public/images/icons-app/image-loading-display.png b/public/images/icons-app/image-loading-display.png deleted file mode 100644 index 4c7573f..0000000 Binary files a/public/images/icons-app/image-loading-display.png and /dev/null differ diff --git a/public/images/icons-app/image-loading-icon.png b/public/images/icons-app/image-loading-icon.png deleted file mode 100644 index 08319c3..0000000 Binary files a/public/images/icons-app/image-loading-icon.png and /dev/null differ diff --git a/public/images/icons-app/image-loading-minor.png b/public/images/icons-app/image-loading-minor.png deleted file mode 100644 index 1c9a14d..0000000 Binary files a/public/images/icons-app/image-loading-minor.png and /dev/null differ diff --git a/public/images/icons-app/image-loading-portrait.png b/public/images/icons-app/image-loading-portrait.png deleted file mode 100644 index 479ce45..0000000 Binary files a/public/images/icons-app/image-loading-portrait.png and /dev/null differ diff --git a/public/images/icons-app/image-loading-slideshow.png b/public/images/icons-app/image-loading-slideshow.png deleted file mode 100644 index 80f63f1..0000000 Binary files a/public/images/icons-app/image-loading-slideshow.png and /dev/null differ diff --git a/public/images/icons-app/image-loading-small.png b/public/images/icons-app/image-loading-small.png deleted file mode 100644 index 587902e..0000000 Binary files a/public/images/icons-app/image-loading-small.png and /dev/null differ diff --git a/public/images/icons-app/image-loading-thumb.png b/public/images/icons-app/image-loading-thumb.png deleted file mode 100644 index 0642df1..0000000 Binary files a/public/images/icons-app/image-loading-thumb.png and /dev/null differ diff --git a/public/images/icons-app/person-big.png b/public/images/icons-app/person-big.png deleted file mode 100644 index 2b0bd4d..0000000 Binary files a/public/images/icons-app/person-big.png and /dev/null differ diff --git a/public/images/icons-app/person-icon.png b/public/images/icons-app/person-icon.png deleted file mode 100644 index 9d48ccf..0000000 Binary files a/public/images/icons-app/person-icon.png and /dev/null differ diff --git a/public/images/icons-app/person-minor.png b/public/images/icons-app/person-minor.png deleted file mode 100644 index 9527557..0000000 Binary files a/public/images/icons-app/person-minor.png and /dev/null differ diff --git a/public/images/icons-app/person-portrait.png b/public/images/icons-app/person-portrait.png deleted file mode 100644 index 240502c..0000000 Binary files a/public/images/icons-app/person-portrait.png and /dev/null differ diff --git a/public/images/icons-app/person-thumb.png b/public/images/icons-app/person-thumb.png deleted file mode 100644 index 1946f29..0000000 Binary files a/public/images/icons-app/person-thumb.png and /dev/null differ diff --git a/public/images/icons-app/product-default-pic-big.png b/public/images/icons-app/product-default-pic-big.png deleted file mode 100644 index b7ec210..0000000 Binary files a/public/images/icons-app/product-default-pic-big.png and /dev/null differ diff --git a/public/images/icons-app/product-default-pic-minor.png b/public/images/icons-app/product-default-pic-minor.png deleted file mode 100644 index 03c796a..0000000 Binary files a/public/images/icons-app/product-default-pic-minor.png and /dev/null differ diff --git a/public/images/icons-app/product-default-pic-portrait.png b/public/images/icons-app/product-default-pic-portrait.png deleted file mode 100644 index 960ccef..0000000 Binary files a/public/images/icons-app/product-default-pic-portrait.png and /dev/null differ diff --git a/public/images/icons-app/product-default-pic-thumb.png b/public/images/icons-app/product-default-pic-thumb.png deleted file mode 100644 index f654580..0000000 Binary files a/public/images/icons-app/product-default-pic-thumb.png and /dev/null differ diff --git a/public/images/icons-app/user_icon.png b/public/images/icons-app/user_icon.png deleted file mode 100644 index b1f88eb..0000000 Binary files a/public/images/icons-app/user_icon.png and /dev/null differ diff --git a/public/images/icons-app/user_icon.svg b/public/images/icons-app/user_icon.svg deleted file mode 100644 index 684c446..0000000 --- a/public/images/icons-app/user_icon.svg +++ /dev/null @@ -1,529 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - People - - - Jakub Steiner - - - http://jimmac.musichall.cz - - - users - people - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/icons-app/users.svg b/public/images/icons-app/users.svg deleted file mode 100644 index a7ba359..0000000 --- a/public/images/icons-app/users.svg +++ /dev/null @@ -1,863 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - People - - - Jakub Steiner - - - http://jimmac.musichall.cz - - - users - people - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/icons-bar/accessibility.png b/public/images/icons-bar/accessibility.png deleted file mode 100644 index a0aa27e..0000000 Binary files a/public/images/icons-bar/accessibility.png and /dev/null differ diff --git a/public/images/icons-bar/admin.png b/public/images/icons-bar/admin.png deleted file mode 100644 index f362e72..0000000 Binary files a/public/images/icons-bar/admin.png and /dev/null differ diff --git a/public/images/icons-bar/go-content.png b/public/images/icons-bar/go-content.png deleted file mode 100644 index 386b187..0000000 Binary files a/public/images/icons-bar/go-content.png and /dev/null differ diff --git a/public/images/icons-bar/go-home.png b/public/images/icons-bar/go-home.png deleted file mode 100644 index 5734022..0000000 Binary files a/public/images/icons-bar/go-home.png and /dev/null differ diff --git a/public/images/icons-bar/help.png b/public/images/icons-bar/help.png deleted file mode 100644 index 5c266e6..0000000 Binary files a/public/images/icons-bar/help.png and /dev/null differ diff --git a/public/images/icons-bar/login.png b/public/images/icons-bar/login.png deleted file mode 100644 index f2023e8..0000000 Binary files a/public/images/icons-bar/login.png and /dev/null differ diff --git a/public/images/icons-bar/logout.png b/public/images/icons-bar/logout.png deleted file mode 100644 index 502e206..0000000 Binary files a/public/images/icons-bar/logout.png and /dev/null differ diff --git a/public/images/icons-bar/logout2.png b/public/images/icons-bar/logout2.png deleted file mode 100644 index 473e7bc..0000000 Binary files a/public/images/icons-bar/logout2.png and /dev/null differ diff --git a/public/images/icons-cat/Agropecuária_extrativismo_e_pesca.png b/public/images/icons-cat/Agropecuária_extrativismo_e_pesca.png deleted file mode 100644 index 9cbed3f..0000000 Binary files a/public/images/icons-cat/Agropecuária_extrativismo_e_pesca.png and /dev/null differ diff --git a/public/images/icons-cat/Alimentos_e_bebidas.png b/public/images/icons-cat/Alimentos_e_bebidas.png deleted file mode 100644 index 5ad5810..0000000 Binary files a/public/images/icons-cat/Alimentos_e_bebidas.png and /dev/null differ diff --git a/public/images/icons-cat/Artefatos_artesanais.png b/public/images/icons-cat/Artefatos_artesanais.png deleted file mode 100644 index 1324701..0000000 Binary files a/public/images/icons-cat/Artefatos_artesanais.png and /dev/null differ diff --git a/public/images/icons-cat/Ação_comunitária.png b/public/images/icons-cat/Ação_comunitária.png deleted file mode 100644 index f6ee209..0000000 Binary files a/public/images/icons-cat/Ação_comunitária.png and /dev/null differ diff --git a/public/images/icons-cat/Coleta_e_reciclagem_de_materiais.png b/public/images/icons-cat/Coleta_e_reciclagem_de_materiais.png deleted file mode 100644 index d13568c..0000000 Binary files a/public/images/icons-cat/Coleta_e_reciclagem_de_materiais.png and /dev/null differ diff --git a/public/images/icons-cat/Crédito_e_finanças.png b/public/images/icons-cat/Crédito_e_finanças.png deleted file mode 100644 index d7e10d7..0000000 Binary files a/public/images/icons-cat/Crédito_e_finanças.png and /dev/null differ diff --git a/public/images/icons-cat/Fitoterápicos_e_produtos_de_limpeza_e_higiene.png b/public/images/icons-cat/Fitoterápicos_e_produtos_de_limpeza_e_higiene.png deleted file mode 100644 index 11a560e..0000000 Binary files a/public/images/icons-cat/Fitoterápicos_e_produtos_de_limpeza_e_higiene.png and /dev/null differ diff --git a/public/images/icons-cat/Prestação_de_serviços_diversos.png b/public/images/icons-cat/Prestação_de_serviços_diversos.png deleted file mode 100644 index 49c3e71..0000000 Binary files a/public/images/icons-cat/Prestação_de_serviços_diversos.png and /dev/null differ diff --git a/public/images/icons-cat/Produção_industrial.png b/public/images/icons-cat/Produção_industrial.png deleted file mode 100644 index 209775b..0000000 Binary files a/public/images/icons-cat/Produção_industrial.png and /dev/null differ diff --git a/public/images/icons-cat/Produção_têxtil_e_confecção.png b/public/images/icons-cat/Produção_têxtil_e_confecção.png deleted file mode 100644 index 86271e9..0000000 Binary files a/public/images/icons-cat/Produção_têxtil_e_confecção.png and /dev/null differ diff --git a/public/images/icons-cat/Software.png b/public/images/icons-cat/Software.png deleted file mode 100644 index 048da5b..0000000 Binary files a/public/images/icons-cat/Software.png and /dev/null differ diff --git a/public/images/icons-cat/Software_Livre.png b/public/images/icons-cat/Software_Livre.png deleted file mode 100644 index 02e6608..0000000 Binary files a/public/images/icons-cat/Software_Livre.png and /dev/null differ diff --git a/public/images/icons-cat/undefined.png b/public/images/icons-cat/undefined.png deleted file mode 100644 index a8ac82a..0000000 Binary files a/public/images/icons-cat/undefined.png and /dev/null differ diff --git a/public/images/icons-map/enterprise.png b/public/images/icons-map/enterprise.png deleted file mode 100644 index b131338..0000000 Binary files a/public/images/icons-map/enterprise.png and /dev/null differ diff --git a/public/images/icons-map/enterprise_shadow.png b/public/images/icons-map/enterprise_shadow.png deleted file mode 100644 index 521bca1..0000000 Binary files a/public/images/icons-map/enterprise_shadow.png and /dev/null differ diff --git a/public/images/icons-mime/README b/public/images/icons-mime/README deleted file mode 100644 index 7248846..0000000 --- a/public/images/icons-mime/README +++ /dev/null @@ -1,93 +0,0 @@ -mime icons in Noosfero -====================== - -Icon Source Theme License ------------------------- -------------- ------- -gnome-mime-text-html.png dlg-neu GPLV2+ -gnome-mime-empty.png Nuovo GPLV2+ -ico-feed-on.png GPLv3 - -The icons in this directory are taken from some GNOME theme with compatible -license (i.e. GPLV2+ or GPLv3), section "mimetypes/". We take the SVG files and -convert to 24x24 PNG images, so these icons are in fact derived works of those -in the themes. - -Some icons are not taken from themes (e.g. ico-feed-on.png was made by Aurélio -A. Heckert and is licensed under the GNU General -Public License, version 3.) - -Structure -========= - -To keep a trace back to original themes, when rasterizing the SVG files we keep -the original filenames (replacing .svg by .png, obviously) and create symbolic -links with names more sensible for Noosfero. - -Icons rasterization -=================== - -With rsvg, from the librsvg2-bin package (i.e. we use the same rasterization -library as GNOME, so the icons must look like they do in GNOME). - -$ rsvg -w 24 -h 24 .svg .png - -Licensing -========= - -dlg-neu icons (according to /usr/share/doc/gnome-icon-theme-dlg-neu/copyright -on a Debian system): - - Copyright Holders: Silvestre Herrera (silvestre.herrera@gmail.com) - - This package is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA - -Nuovo icons (according to /usr/share/doc/gnome-icon-theme-nuovo/copyright on a -Debian system): - - Copyright Holders: Silvestre Herrera - - This package is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - 02110-1301 USA - -ico-feed-on.png: - - Copyright holders: Aurélio A. Heckert - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - diff --git a/public/images/icons-mime/empty.png b/public/images/icons-mime/empty.png deleted file mode 100644 index 9f56b72..0000000 Binary files a/public/images/icons-mime/empty.png and /dev/null differ diff --git a/public/images/icons-mime/event.png b/public/images/icons-mime/event.png deleted file mode 120000 index c258d1d..0000000 --- a/public/images/icons-mime/event.png +++ /dev/null @@ -1 +0,0 @@ -../calendar_date_select/calendar.png \ No newline at end of file diff --git a/public/images/icons-mime/folder.png b/public/images/icons-mime/folder.png deleted file mode 120000 index 0bd6da1..0000000 --- a/public/images/icons-mime/folder.png +++ /dev/null @@ -1 +0,0 @@ -gnome-folder.png \ No newline at end of file diff --git a/public/images/icons-mime/gnome-folder.png b/public/images/icons-mime/gnome-folder.png deleted file mode 100644 index b624ae8..0000000 Binary files a/public/images/icons-mime/gnome-folder.png and /dev/null differ diff --git a/public/images/icons-mime/gnome-mime-empty.png b/public/images/icons-mime/gnome-mime-empty.png deleted file mode 100644 index 2a2727e..0000000 Binary files a/public/images/icons-mime/gnome-mime-empty.png and /dev/null differ diff --git a/public/images/icons-mime/gnome-mime-text-html.png b/public/images/icons-mime/gnome-mime-text-html.png deleted file mode 100644 index 5693e7a..0000000 Binary files a/public/images/icons-mime/gnome-mime-text-html.png and /dev/null differ diff --git a/public/images/icons-mime/ico-feed-on.png b/public/images/icons-mime/ico-feed-on.png deleted file mode 100644 index e6e6edd..0000000 Binary files a/public/images/icons-mime/ico-feed-on.png and /dev/null differ diff --git a/public/images/icons-mime/rss-feed-16.png b/public/images/icons-mime/rss-feed-16.png deleted file mode 100644 index f1b8742..0000000 Binary files a/public/images/icons-mime/rss-feed-16.png and /dev/null differ diff --git a/public/images/icons-mime/rss-feed.png b/public/images/icons-mime/rss-feed.png deleted file mode 120000 index e96cb3b..0000000 --- a/public/images/icons-mime/rss-feed.png +++ /dev/null @@ -1 +0,0 @@ -ico-feed-on.png \ No newline at end of file diff --git a/public/images/icons-mime/text-html.png b/public/images/icons-mime/text-html.png deleted file mode 120000 index 16cc51f..0000000 --- a/public/images/icons-mime/text-html.png +++ /dev/null @@ -1 +0,0 @@ -gnome-mime-text-html.png \ No newline at end of file diff --git a/public/images/icons-mime/unknown.png b/public/images/icons-mime/unknown.png deleted file mode 120000 index 3a18748..0000000 --- a/public/images/icons-mime/unknown.png +++ /dev/null @@ -1 +0,0 @@ -gnome-mime-empty.png \ No newline at end of file diff --git a/public/images/icons-task/closed-arrow-hover.png b/public/images/icons-task/closed-arrow-hover.png deleted file mode 100644 index a797866..0000000 Binary files a/public/images/icons-task/closed-arrow-hover.png and /dev/null differ diff --git a/public/images/icons-task/closed-arrow.png b/public/images/icons-task/closed-arrow.png deleted file mode 100644 index e2a51f7..0000000 Binary files a/public/images/icons-task/closed-arrow.png and /dev/null differ diff --git a/public/images/icons-task/opened-arrow-hover.png b/public/images/icons-task/opened-arrow-hover.png deleted file mode 100644 index db9e2fe..0000000 Binary files a/public/images/icons-task/opened-arrow-hover.png and /dev/null differ diff --git a/public/images/icons-task/opened-arrow.png b/public/images/icons-task/opened-arrow.png deleted file mode 100644 index 72f3edf..0000000 Binary files a/public/images/icons-task/opened-arrow.png and /dev/null differ diff --git a/public/images/input-bg.gif b/public/images/input-bg.gif deleted file mode 100644 index a9a3051..0000000 Binary files a/public/images/input-bg.gif and /dev/null differ diff --git a/public/images/loading-dark.gif b/public/images/loading-dark.gif deleted file mode 100644 index e017d5d..0000000 Binary files a/public/images/loading-dark.gif and /dev/null differ diff --git a/public/images/loading-small-dark.gif b/public/images/loading-small-dark.gif deleted file mode 100644 index c5fa56d..0000000 Binary files a/public/images/loading-small-dark.gif and /dev/null differ diff --git a/public/images/loading-small.gif b/public/images/loading-small.gif deleted file mode 100644 index 085ccae..0000000 Binary files a/public/images/loading-small.gif and /dev/null differ diff --git a/public/images/loading.gif b/public/images/loading.gif deleted file mode 100644 index 5bb90fd..0000000 Binary files a/public/images/loading.gif and /dev/null differ diff --git a/public/images/login_checking.png b/public/images/login_checking.png deleted file mode 100644 index 5dd52f1..0000000 Binary files a/public/images/login_checking.png and /dev/null differ diff --git a/public/images/logo-anhetegua-200x50.png b/public/images/logo-anhetegua-200x50.png deleted file mode 100644 index fb7ca53..0000000 Binary files a/public/images/logo-anhetegua-200x50.png and /dev/null differ diff --git a/public/images/logo-anhetegua.png b/public/images/logo-anhetegua.png deleted file mode 100644 index 11ba6b8..0000000 Binary files a/public/images/logo-anhetegua.png and /dev/null differ diff --git a/public/images/noosfero-network.png b/public/images/noosfero-network.png deleted file mode 100644 index 355d576..0000000 Binary files a/public/images/noosfero-network.png and /dev/null differ diff --git a/public/images/noosfero-network.svg b/public/images/noosfero-network.svg deleted file mode 100755 index 319c97e..0000000 --- a/public/images/noosfero-network.svg +++ /dev/null @@ -1,4618 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/orange-balloon.png b/public/images/orange-balloon.png deleted file mode 100644 index 6a5540c..0000000 Binary files a/public/images/orange-balloon.png and /dev/null differ diff --git a/public/images/orange-bg.png b/public/images/orange-bg.png deleted file mode 100644 index e3b1979..0000000 Binary files a/public/images/orange-bg.png and /dev/null differ diff --git a/public/images/passwords_match.png b/public/images/passwords_match.png deleted file mode 100644 index a837436..0000000 Binary files a/public/images/passwords_match.png and /dev/null differ diff --git a/public/images/passwords_nomatch.png b/public/images/passwords_nomatch.png deleted file mode 100644 index 1cc786b..0000000 Binary files a/public/images/passwords_nomatch.png and /dev/null differ diff --git a/public/images/rails.png b/public/images/rails.png deleted file mode 100644 index b8441f1..0000000 Binary files a/public/images/rails.png and /dev/null differ diff --git a/public/images/scrap-bg-gray.png b/public/images/scrap-bg-gray.png deleted file mode 100644 index b10351f..0000000 Binary files a/public/images/scrap-bg-gray.png and /dev/null differ diff --git a/public/images/scrap-bg.png b/public/images/scrap-bg.png deleted file mode 100644 index c2637ab..0000000 Binary files a/public/images/scrap-bg.png and /dev/null differ diff --git a/public/images/solidarity-economy.png b/public/images/solidarity-economy.png deleted file mode 100644 index b29f07a..0000000 Binary files a/public/images/solidarity-economy.png and /dev/null differ diff --git a/public/images/top-arrow.png b/public/images/top-arrow.png deleted file mode 100644 index 9b2b158..0000000 Binary files a/public/images/top-arrow.png and /dev/null differ diff --git a/public/images/white-pixel.gif b/public/images/white-pixel.gif deleted file mode 100644 index 08fc23e..0000000 Binary files a/public/images/white-pixel.gif and /dev/null differ diff --git a/public/images/zoom-dark.png b/public/images/zoom-dark.png deleted file mode 100644 index f1e89b3..0000000 Binary files a/public/images/zoom-dark.png and /dev/null differ diff --git a/public/images/zoom.png b/public/images/zoom.png deleted file mode 100644 index 750e6bd..0000000 Binary files a/public/images/zoom.png and /dev/null differ diff --git a/public/javascripts/add-and-join.js b/public/javascripts/add-and-join.js deleted file mode 100644 index 9055491..0000000 --- a/public/javascripts/add-and-join.js +++ /dev/null @@ -1,103 +0,0 @@ -jQuery(function($) { - - $(".add-friend").live('click', function(){ - clicked = $(this) - url = clicked.attr("href"); - loading_for_button(this); - $.post(url, function(data){ - clicked.fadeOut(); - display_notice(data); - }); - return false; - }) - - $(".join-community").live('click', function(){ - clicked = $(this) - url = clicked.attr("href"); - loading_for_button(this); - $.post(url, function(data){ - clicked.fadeOut(function(){ - clicked.css("display","none"); - clicked.parent().parent().find(".leave-community").fadeIn(); - clicked.parent().parent().find(".leave-community").css("display", ""); - }); - clicked.css("cursor",""); - $(".small-loading").remove(); - display_notice(data.message); - }, "json"); - return false; - }) - - $(".leave-community").live('click', function(){ - clicked = $(this) - url = clicked.attr("href"); - loading_for_button(this); - $.post(url, function(data){ - if(data.redirect_to){ - document.location.href = data.redirect_to; - } - else if(data.reload){ - document.location.reload(true); - } - else{ - clicked.fadeOut(function(){ - clicked.css("display","none"); - clicked.parent().parent().find(".join-community").fadeIn(); - clicked.parent().parent().find(".join-community").css("display", ""); - }); - clicked.css("cursor",""); - $(".small-loading").remove(); - - display_notice(data.message); - } - }, "json"); - return false; - }) - - $(".person-trigger").click(function(){ - clicked = $(this); - url = clicked.attr("url"); - $.get(url, function(data){ - if(data == "true"){ - clicked.parent().find(".add-friend").fadeOut(function(){ - clicked.parent().find(".send-an-email").fadeIn(); - }) - } - else if(data == "false"){ - clicked.parent().find(".send-an-email").fadeOut(function(){ - clicked.parent().find(".add-friend").fadeIn(); - }); - } - }) - }) - - $(".community-trigger").click(function(){ - clicked = $(this); - url = clicked.attr("url"); - $.get(url, function(data){ - if(data == "true"){ - clicked.parent().find(".join-community").fadeOut(function(){ - clicked.parent().find(".leave-community").fadeIn(); - clicked.parent().find(".send-an-email").fadeIn(); - }); - } - else if(data == "false"){ - clicked.parent().find(".send-an-email").fadeOut(); - clicked.parent().find(".leave-community").fadeOut(function(){ - clicked.parent().find(".join-community").fadeIn(); - }); - } - }) - }) - - $(".enterprise-trigger").click(function(){ - clicked = $(this); - url = clicked.attr("url"); - $.get(url, function(data){ - if(data == "true") - clicked.parent().find(".send-an-email").fadeIn(); - else if(data == "false") - clicked.parent().find(".send-an-email").fadeOut(); - }) - }) -}); diff --git a/public/javascripts/application.js b/public/javascripts/application.js deleted file mode 100644 index 9c271ee..0000000 --- a/public/javascripts/application.js +++ /dev/null @@ -1,937 +0,0 @@ -// Place your application-specific JavaScript functions and classes here -// This file is automatically included by javascript_include_tag :defaults - -function noosfero_init() { - // focus_first_field(); it is moving the page view when de form is down. -} - -/* If applicable, find the first field in which the user can type and move the - * keyboard focus to it. - * - * ToDo: focus only inside the view box to do not roll the page. - */ -function focus_first_field() { - form = document.forms[0]; - if (form == undefined) { - return; - } - - for (var i = 0; i < form.elements.length; i++) { - field = form.elements[i]; - if (field.type == 'text' || field.type == 'textarea') { - try { - field.focus(); - return; - } catch(e) { } - } - } -} - -/* * * Convert a string to a valid login name * * */ -function convToValidLogin( str ) { - return convToValidIdentifier(str, '') -} - -/* * * Convert a string to a valid login name * * */ -function convToValidIdentifier( str, sep ) { - return str.toLowerCase() - .replace( /@.*$/, "" ) - .replace( /á|à|ã|â/g, "a" ) - .replace( /é|ê/g, "e" ) - .replace( /í/g, "i" ) - .replace( /ó|ô|õ|ö/g, "o" ) - .replace( /ú|ũ|ü/g, "u" ) - .replace( /ñ/g, "n" ) - .replace( /ç/g, "c" ) - .replace( /[^-_a-z0-9.]+/g, sep ) -} - -function updateUrlField(name_field, id) { - url_field = $(id); - old_url_value = url_field.value; - new_url_value = convToValidIdentifier(name_field.value, "-"); - - url_field.value = new_url_value; - - if (!/^\s*$/.test(old_url_value) - && old_url_value != new_url_value - ) { - warn_value_change(url_field); - } -} - -function show_warning(field, message) { - new Effect.Highlight(field, {duration:3}); - $(message).show(); -} - -function hide_warning(field) { - $(field).hide(); -} - -function enable_button(button) { - button.enable(); - button.removeClassName("disabled"); -} - -function disable_button(button) { - button.disable(); - button.addClassName("disabled"); -} - -function toggleDisabled(enable, element) { - if (enable) { - enable_button(element); - } - else { - disable_button(element); - } -} - -/* ICON SELECTOR - LinkListBlock */ - -function showIconSelector(main_div) { - iconSelector = jQuery(main_div).children('.icon-selector')[0]; - jQuery(iconSelector).toggle(); -} - -function changeIcon(iconSelected, iconName) { - iconSelector = iconSelected.parentNode; - setTimeout('iconSelector.style.display = "none"', 100); - main_div = iconSelector.parentNode; - span = main_div.getElementsByTagName('span')[0]; - span.className = iconSelected.className; - iconInput = main_div.getElementsByTagName('input')[0]; - iconInput.value = iconName; -} - -function hideOthersIconSelector(current_div) { - jQuery('.icon-selector').not(jQuery(current_div).children('.icon-selector')).hide(); -} - -function loading(element_id, message) { - $(element_id).addClassName('loading'); - if (message) { - $(element_id).update(message); - } -} -function small_loading(element_id, message) { - $(element_id).addClassName('small-loading'); - if (message) { - $(element_id).update(message); - } -} -function loading_done(element_id) { - $(element_id).removeClassName('loading'); - $(element_id).removeClassName('small-loading'); - $(element_id).removeClassName('small-loading-dark'); -} -function open_loading(message) { - jQuery('body').append("